2013-06-20 22 views
8

Theo tài liệu elasticsearch, các quy tắc cho mức write_consistency đại biểu là:Undestanding các write_consistency và quy tắc đại biểu của Elasticsearch

đại biểu (> bản sao/2 + 1)

Sử dụng ES 0.19.10, trên một thiết lập với 16 mảnh/3 bản sao, chúng tôi sẽ nhận được 16 phần chính 48 bản sao

Chạy 2 nút, chúng tôi sẽ có 16 (chính) + 16 (bản sao) = 32 mảnh hoạt động.

Để đáp ứng quy tắc đại biểu, số đại biểu> 48/2 + 1 = 25 phân đoạn hoạt động.

Bây giờ, thử nghiệm điều này chứng minh bằng không, mức write_consistency không được đáp ứng (ghi thời gian hoạt động) cho đến khi chúng tôi có 3 nút đang chạy. Đây là loại có ý nghĩa, vì chúng ta có thể có được một bộ não giữa các nhóm của 2 nút trong mỗi thiết lập này, nhưng tôi không hoàn toàn hiểu làm thế nào quy tắc này là nghĩa vụ phải làm việc? Tôi có sử dụng số sai ở đây không?

+0

Cảm giác như bạn đã viết tính nhất quán. Kiểm tra xem bài viết của bạn có 'nhất quán' hay không: tất cả – chaos

+0

^Tôi muốn nói đến từng yêu cầu chỉ mục riêng lẻ. – chaos

Trả lời

5

đếm mảnh tiểu học không thực sự quan trọng, vì vậy tôi sẽ thay thế nó với N.

Nếu bạn có một chỉ số với N mảnh và 2 bản sao, có ba mảnh trong nhóm sao chép. Điều này có nghĩa là số đại biểu là hai: phần chính cộng với một trong các bản sao. Bạn cần hai mảnh hoạt động, thường có nghĩa là hai máy hoạt động, để đáp ứng thông số nhất quán ghi

Chỉ mục có phân đoạn N và 3 bản sao có bốn mảnh trong nhóm sao chép (ba bản chính), do đó số đại biểu là ba .

Chỉ mục có phân đoạn N và 1 bản sao là trường hợp đặc biệt vì bạn thực sự không thể có số đại biểu chỉ có hai phân đoạn. Chỉ với một bản sao, Elasticsearch chỉ yêu cầu một phân đoạn đang hoạt động (ví dụ: chính), do đó cài đặt quorum giống hệt với cài đặt one cho sắp xếp cụ thể này.

Một vài lưu ý:

  • 0,19 thực sự là cũ, bạn nên chắc chắn, hoàn toàn, tích cực nâng cấp. Tôi thậm chí không thể đếm số lượng sửa lỗi và cải tiến hiệu suất đã được thêm kể từ bản phát hành đó :)

  • Viết tính nhất quán chỉ đơn thuần là kiểm tra cổng. Trước khi thực hiện yêu cầu lập chỉ mục, nút sẽ thực hiện cuộc thăm dò ý kiến ​​bằng rơm để xem liệu write_consistency có được đáp ứng hay không. Nếu có, nó sẽ cố gắng thực hiện chỉ mục và đẩy bản sao. Điều này không đảm bảo rằng các bản sao sẽ thành công ... chúng có thể dễ dàng thất bại và bạn sẽ thấy nó trong phản hồi. Nó chỉ đơn giản là một cơ chế để ngăn chặn quá trình lập chỉ mục nếu cài đặt nhất quán không thỏa mãn.

  • Thiết lập "được sao chép đầy đủ" với hai nút là 1 phân đoạn chính + 1 bản sao. Mỗi nút có một bộ dữ liệu hoàn chỉnh. Không có lý do gì để có thêm bản sao, vì ES từ chối đưa các bản sao của cùng một dữ liệu trên cùng một máy (không có ý nghĩa, không giúp HA). Không có khả năng lập chỉ mục chỉ là tác dụng phụ của việc viết tính nhất quán, nhưng nó chỉ ra một vấn đề lớn hơn với thiết lập của bạn :)

Các vấn đề liên quan