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

Sự khác biệt giữa đa số và tuyến tính

" Có thể phân tích tuyến tính "đọc mối quan tâm đã được giới thiệu trong MongoDb 3.4 để giải quyết vấn đề có thể xảy ra với" đa số "Bạn đọc quan tâm.

Hãy cố gắng hiểu vấn đề với " đa số "đọc mối quan tâm để hiểu điều gì" Có thể phân tích tuyến tính "mang đến cho chúng tôi.

Giả sử, chúng ta có một bản sao gồm 3 nút, trông giống như sau:

Ở đâu, A là Chính, B là Phụ, C là phụ

Cho phép cũng có hai người dùng Alice Bob , sẽ thực hiện một số thao tác trên tài liệu sau đây nằm trong " người dùng "bộ sưu tập.

{
 "_id": 100234,
 "name": "Katelyn"
}

Tại thời điểm tức thì T0:

sau đây sẽ xảy ra,

  1. Alice được kết nối với A (chính) và các vấn đề sau lệnh.

Đầu ra:

  1. B C nhận ra rằng A đã ngừng phản hồi và bắt đầu thủ tục bầu cử. ( Có thể do phân vùng mạng ).

Tại thời điểm tức thì T1:

sau đây sẽ xảy ra,

  1. Do quy trình bầu cử, B là một bầu cử sơ bộ mới .

Tuy nhiên, cho đến thời điểm A không được giao tiếp hoặc A bản thân nhận ra rằng nó cần phải tự hạ cấp xuống thứ cấp, nó vẫn tiếp tục đóng vai trò chính (mặc dù điều này thường xảy ra trong một khoảng thời gian rất nhỏ).

Tại thời điểm tức thì T2:

  1. Bob được kết nối với B (chính mới) và các vấn đề sau lệnh.
  1. Bob được thừa nhận về khả năng viết.

Vào thời điểm tức thì T3:

  1. Alice được kết nối với A (chính cũ) và các vấn đề sau lệnh.

Đầu ra:

Alice ở đây nhận được dữ liệu cũ ngay cả sau khi đưa ra mối quan tâm đọc phần lớn, tức là phần viết do Bob thực hiện không hiển thị cho Alice. Do đó, thuộc tính " Tính tuyến tính "được bồi thường trong trường hợp này.

Do đó, giải pháp xuất hiện, tức là " tuyến tính được "read lo ngại. Với thuộc tính này, mongod kiểm tra chính của nó và có thể thấy phần lớn các nút trước khi đưa ra kết quả của hoạt động đọc. mối quan tâm của "đa số" đọc.

Về writeConcernMajorityJournalDefault tài sản, nó chỉ là một tùy chọn cấu hình tập hợp bản sao. Nó chấp nhận giá trị boolean .

Đúng có nghĩa là, MongoDB thừa nhận thao tác ghi sau khi đa số thành viên biểu quyết đã ghi vào tạp chí trên đĩa.

Sai có nghĩa là, MongoDB thừa nhận thao tác ghi sau khi đa số thành viên biểu quyết đã áp dụng thao tác đó trong bộ nhớ.

Thuộc tính trên chỉ có thể áp dụng khi, ghi mối quan tâm "đa số" được sử dụng và cờ tạp chí không được chỉ định.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để thiết lập cơ sở dữ liệu MongoDB trên Heroku với MongoLab?

  2. mongodb cập nhật phần tử mảng cuối cùng

  3. Cập nhật vai trò người dùng:không được ủy quyền trên quản trị viên để thực thi lệnh

  4. Cơ sở dữ liệu truy vấn Mongoid theo thuộc tính ảo

  5. Vệ sinh thông tin nhập của người dùng trong Mongoose