MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tại sao chúng ta cần một 'trọng tài viên' trong việc nhân rộng MongoDB?

Tôi đã tạo một bảng tính để minh họa rõ hơn tác dụng của các nút Arbiter trong Tập hợp bản sao.

Về cơ bản, nó đi đến những điểm sau:

  1. Với RS gồm 2 nút dữ liệu , việc mất 1 máy chủ khiến bạn thấp hơn mức tối thiểu bỏ phiếu ("lớn hơn N / 2"). Trọng tài giải quyết vấn đề này.
  2. Với RS gồm các nút dữ liệu được đánh số chẵn , việc thêm Người phân tích sẽ tăng khả năng chịu lỗi của bạn lên 1 mà không làm cho 2 cụm biểu quyết có thể bị phân tách.
  3. Với RS gồm các nút dữ liệu được đánh số lẻ , việc thêm một Arbiter sẽ cho phép sự phân tách để tạo ra 2 cụm riêng biệt có số phiếu "lớn hơn N / 2" và do đó, một kịch bản não bị chia rẽ.

Các cuộc bầu cử được giải thích [chi tiết] ở đây. Trong tài liệu đó nêu rõ RS có thể có 50 thành viên (số chẵn) và 7 thành viên biểu quyết. Tôi nhấn mạnh "trạng thái" vì nó không giải thích làm thế nào nó hoạt động. Đối với tôi, có vẻ như nếu bạn có sự chia rẽ xảy ra với 4 thành viên (tất cả đều bỏ phiếu) ở một bên và 46 thành viên (3 bỏ phiếu) ở bên kia, bạn muốn 46 người bầu chọn sơ bộ và 4 người được đọc- chỉ cụm. Nhưng, đó chính xác là điều mà "bỏ phiếu hạn chế" ngăn cản. Trong tình huống đó, bạn thực sự sẽ có một cụm 4 thành viên với một cụm chính và một cụm 46 thành viên chỉ được đọc. Việc giải thích điều đó có ý nghĩa như thế nào nằm ngoài phạm vi của câu hỏi này và nằm ngoài tầm hiểu biết của tôi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ứng dụng giống Twitter sử dụng MongoDB

  2. ký tự đại diện tiền tố mongoDB:fulltext-search ($ text) tìm một phần với chuỗi tìm kiếm

  3. MongoDB:Sử dụng khớp với các biến tài liệu đầu vào

  4. sắp xếp theo độ dài chuỗi trong Mongodb / pymongo

  5. Chỉ mục MongoDB trên các loại khác nhau