Tôi đang làm việc trên một dự án mà chúng tôi thu thập định kỳ số lượng lớn e-mail qua IMAP hoặc POP, thực hiện phân tích trên đó (chẳng hạn như phân nhóm thành các cuộc hội thoại, trích xuất các câu quan trọng, v.v.) và sau đó trình bày các lượt xem qua web cho người dùng cuối.Làm thế nào để MonogoDB xếp chồng lên các tập dữ liệu rất lớn mà chỉ một số dữ liệu dễ bay hơi
Chế độ xem chính sẽ là trang tiểu sử giống như facebook cho mỗi liên hệ của cuộc hội thoại gần đây nhất (20 hoặc hơn) mà mỗi người trong số họ đã có từ e-mail mà chúng tôi chụp.
Đối với chúng tôi, điều quan trọng là bạn có thể truy xuất trang tiểu sử và 20 mục gần đây một cách thường xuyên và nhanh chóng. Chúng tôi cũng có thể thường xuyên chèn các e-mail gần đây vào nguồn cấp dữ liệu này. Đối với điều này, lưu trữ tài liệu và viết nguyên tử chi phí thấp của MongoDB có vẻ khá hấp dẫn.
Tuy nhiên, chúng tôi cũng sẽ có một lượng lớn các cuộc hội thoại e-mail cũ sẽ không được truy cập thường xuyên (vì chúng sẽ không xuất hiện trong 20 mục gần đây nhất, mọi người sẽ chỉ nhìn thấy chúng nếu họ tìm kiếm chúng , sẽ tương đối hiếm). Hơn nữa, kích thước của dữ liệu này sẽ phát triển nhanh hơn so với cửa hàng liên lạc theo thời gian. Từ những gì tôi đã đọc, MongoDB dường như ít nhiều đòi hỏi toàn bộ dữ liệu được đặt trong RAM, và cách duy nhất để giải quyết vấn đề này là sử dụng bộ nhớ ảo, có thể mang lại một chi phí đáng kể. Đặc biệt nếu Mongo không thể phân biệt giữa dữ liệu dễ bay hơi (profile/feed) và dữ liệu không bay hơi (email cũ), điều này có thể sẽ khá khó chịu (và vì nó dường như phân phối cấp phát bộ nhớ ảo cho hệ điều hành, Tôi không thấy Mongo sẽ làm được điều này như thế nào. Có vẻ như các lựa chọn duy nhất là (a) mua đủ RAM để lưu trữ mọi thứ, điều này là tốt cho dữ liệu dễ bay hơi, nhưng hầu như không hiệu quả về chi phí để chụp TB e-mail, hoặc (b) sử dụng ảo bộ nhớ và xem lần đọc/ghi trên dữ liệu dễ bay hơi của chúng tôi chậm để thu thập thông tin.
Điều này có đúng không, hoặc tôi có thiếu gì đó không? MongoDB có phù hợp với vấn đề cụ thể này không? Nếu vậy, cấu hình sẽ trông như thế nào?
Cảm ơn câu trả lời này. Có công bằng để giả định rằng các bộ sưu tập là mức độ chi tiết nhất của việc quản lý bộ nhớ đệm (ví dụ: một bộ sưu tập cho dữ liệu dễ bay hơi sẽ được đọc/ghi thường xuyên và một bộ sưu tập riêng biệt thường nằm trên đĩa)? –