Đây sẽ không phải là một câu trả lời đầy đủ cho đến nay, có quá nhiều chi tiết và tôi có thể viết toàn bộ một bài luận về câu hỏi này như nhiều người khác, tuy nhiên, vì tôi không có nhiều thời gian rảnh rỗi, tôi sẽ thêm một số bình luận về những gì tôi thấy.
Các bộ bản sao không được thiết kế để hoạt động như vậy. Nếu bạn muốn cân bằng tải, trên thực tế, bạn có thể đang tìm kiếm sharding để cho phép bạn làm điều này.
Bản sao dành cho chuyển đổi dự phòng tự động.
Vì, để luôn cập nhật, các thành viên của bạn sẽ nhận được nhiều hoạt động như ban đầu, có vẻ như điều này có thể không giúp ích quá nhiều.
Trong thực tế, thay vì có một máy chủ với nhiều kết nối được xếp hàng đợi, bạn có nhiều kết nối trên nhiều máy chủ đang xếp hàng chờ dữ liệu cũ vì tính nhất quán của thành viên là cuối cùng, không giống như các công nghệ ACID, tuy nhiên, điều đó được cho là cuối cùng chúng chỉ nhất quán trong 32 mili giây mà có nghĩa là chúng không đủ trễ để cung cấp thông lượng tốt nếu tải chính.
Vì đọc ĐƯỢC đồng thời, bạn sẽ nhận được cùng một tốc độ cho dù bạn đang đọc từ chính hay phụ. Tôi cho rằng bạn có thể trì hoãn nô lệ để tạo tạm dừng các OP nhưng điều đó sẽ mang lại dữ liệu cũ rất lớn.
Chưa kể MongoDB không phải là multi-master, do đó bạn chỉ có thể ghi vào một nút mỗi lần khiến slaveOK không phải là cài đặt hữu ích nhất trên thế giới nữa và tôi đã thấy nhiều lần 10gen khuyên bạn nên sử dụng sharding trên cài đặt này.
Điều này sẽ yêu cầu bạn viết mã riêng. Tại thời điểm đó, bạn có thể muốn xem xét thực sự sử dụng cơ sở dữ liệu hỗ trợ http://en.wikipedia .org / wiki / Multi-master_replication
Điều này là do tốc độ bạn đang tìm kiếm rất có thể trên thực tế khi ghi không phải là đọc như tôi đã thảo luận ở trên.
Đây là cách được khuyến nghị nhưng bạn đã tìm thấy sự báo trước với nó. Thật không may, đây là một điều gì đó vẫn chưa được giải quyết mà sao chép nhiều chủ được cho là phải giải quyết, tuy nhiên, sao chép nhiều chủ thực sự đưa thêm một con tàu bệnh dịch chuột vào chính châu Âu và tôi thực sự khuyên bạn nên thực hiện một số nghiên cứu nghiêm túc trước khi bạn nghĩ xem liệu MongoDB hiện không thể đáp ứng nhu cầu của bạn.
Bạn có thể không lo lắng về điều gì thực sự vì hàng đợi fsync được thiết kế để đối phó với nút cổ chai IO làm chậm quá trình ghi của bạn như trong SQL và quá trình đọc diễn ra đồng thời, vì vậy nếu bạn lập kế hoạch lược đồ và tập hợp làm việc phù hợp, bạn sẽ có thể nhận được một khối lượng lớn số lượng OP.
Trên thực tế, có một câu hỏi được liên kết ở đây từ một nhân viên 10gen rất hay để đọc: https:/ /stackoverflow.com/a/17459488/383478 và nó chỉ ra mức thông lượng mà MongoDB có thể đạt được khi tải.
Nó sẽ sớm phát triển với khóa cấp độ tài liệu mới đã có trong nhánh nhà phát triển.