Điều này phụ thuộc rất nhiều vào hệ thống, nhưng rất có thể chúng ta sẽ vượt qua một số vách đá tùy ý và gặp rắc rối thực sự. Tôi tò mò không biết loại quy tắc ngón tay cái nào tồn tại cho tỷ lệ RAM trên không gian đĩa tốt. Chúng tôi đang lên kế hoạch cho các hệ thống tiếp theo của mình và cần đưa ra một số lựa chọn liên quan đến RAM, SSD và số lượng mỗi nút mới sẽ nhận được.
Nhưng bây giờ cho một số chi tiết hiệu suất!
Trong quy trình làm việc bình thường của một lần chạy dự án, MongoDB bị ảnh hưởng với tỷ lệ ghi rất cao (70-80%). Khi giai đoạn thứ hai của đường ống xử lý đạt, nó sẽ được đọc rất cao vì nó cần phải sao chép các bản ghi được xác định trong nửa đầu của quá trình xử lý. Đây là quy trình làm việc "giữ cho bộ làm việc của bạn trong RAM" được tạo ra và chúng tôi đang thiết kế xung quanh giả định đó.
Toàn bộ dữ liệu được liên tục nhấn với các truy vấn ngẫu nhiên từ các nguồn có nguồn gốc từ người dùng cuối; mặc dù tần số không đều, kích thước thường khá nhỏ (nhóm 10 tài liệu). Vì đây là hướng tới người dùng, nên các phản hồi cần phải ở dưới ngưỡng "chán bây giờ" là 3 giây. Mẫu truy cập này ít có khả năng nằm trong bộ đệm, do đó sẽ rất có thể phải chịu các lần truy cập đĩa.
Một quy trình xử lý thứ cấp là đọc nhiều các lần xử lý trước đó có thể là vài ngày, vài tuần hoặc thậm chí vài tháng và được chạy không thường xuyên nhưng vẫn cần phải nhanh chóng. Lên đến 100% tài liệu trong lần xử lý trước sẽ được truy cập. Tôi không nghi ngờ gì về việc làm ấm bộ đệm.
Kích thước tài liệu hoàn thành rất khác nhau, nhưng kích thước trung bình là khoảng 8K.
Phần đọc cao của xử lý dự án thông thường gợi ý mạnh mẽ việc sử dụng Bản sao để giúp phân phối lưu lượng Đọc. Tôi đã đọc ở nơi khác rằng 1:10 RAM-GB đến HD-GB là một quy tắc tốt cho các đĩa chậm, Vì chúng tôi đang cân nhắc nghiêm túc về việc sử dụng SSD nhanh hơn nhiều, tôi muốn biết liệu có quy tắc tương tự không của ngón tay cái cho đĩa nhanh.
Tôi biết chúng ta đang sử dụng Mongo theo cách mà bộ nhớ cache - mọi thứ thực sự sẽ không hoạt động, đó là lý do tại sao tôi đang tìm cách để thiết kế một hệ thống có thể tồn tại trong việc sử dụng như vậy. Các toàn bộ dữ liệu có thể sẽ nhất của một lao trong vòng nửa năm và liên tục tăng.