Cá nhân, tôi thích công cụ lưu trữ mmapv1 hơn bây giờ vì ba lý do.
Lý do 1: đáo hạn
Không phải là WiredTiger chưa trưởng thành. Nhưng mmapv1 được hiểu rõ và trận chiến đã được thử nghiệm tất cả các cách lên xuống, qua lại và trên và trên và ngoài. WiredTiger đã có một số vấn đề nghiêm trọng (xem http://jira.mongodb.com để biết chi tiết) gần đây và tôi không sẵn sàng để khách hàng của mình tìm thấy vấn đề tiếp theo một cách khó khăn.
Lý do 2: Tính năng
Cho, WT có một số tính năng tuyệt vời. Vấn đề là: Tôi chưa thấy ai được hưởng lợi từ họ. Nén? Dù bằng cách nào, bạn hy sinh khá khó khăn để đạt được hiệu suất cho không gian đĩa khá rẻ. Thiếu vấn đề di chuyển tài liệu để mở rộng tài liệu? Chà, chúng tôi vẫn có giới hạn kích thước 16 MB và thêm độ phức tạp cho các tài liệu nhúng, đặc biệt là khi nhúng quá mức.
Có những tính năng khác, nhưng nhìn chung: Tôi không thấy đến nhiều lợi ích từ họ như bây giờ .
Lý do 3: Tổng chi phí sở hữu
Đối với các dự án mới, WT có thể ổn, đặc biệt là từ 3.2, vì những điều sau đây không được áp dụng.
Thực hiện di chuyển dữ liệu là tốn kém. Nó cần phải được lên kế hoạch, kế hoạch cần phải được sự đồng ý của tất cả các bên liên quan, kế hoạch dự phòng khẩn cấp phải được tạo ra và thống nhất, việc di chuyển cần phải được chuẩn bị, thực hiện và xem xét. Bây giờ nhân thời gian cần thiết với các bên liên quan là một phần của quá trình này và chi phí cho việc di chuyển dữ liệu tăng vọt. Mặt khác, lợi tức đầu tư có vẻ khá nhỏ. Bạn có thể mở rộng quy mô khá một chút thay vì thực hiện di chuyển nếu bạn tính đến các yếu tố đó. Để tạo cho bạn một ấn tượng: Tôi ước tính khoảng một "tuần-tuần" cho mỗi bên liên quan nếu việc di chuyển được lên kế hoạch, thực hiện và xem xét đúng. Với chi phí 100 đô la mỗi giờ mỗi người và chỉ có ba người tham gia (người quản lý, DBA và nhà phát triển), số tiền đó lên tới 12.000 đô la. Lưu ý rằng đây là một ước tính bảo thủ.
Phần kết luận
Tất cả những yếu tố trên đã đưa tôi đến kết luận không sử dụng WT gì. Hiện tại.
Cập nhật
Bài viết này đã được vài tháng tuổi, vì vậy nó xứng đáng được cập nhật
Khi trưởng thành
Nhận xét ban đầu của tôi về sự trưởng thành là loại lỗi thời. WiredTiger đã không có bất kỳ vấn đề lớn nào trong một thời gian và đã trở thành công cụ lưu trữ mặc định kể từ MongoDB 3.2
Về tính năng
Nhận xét ban đầu của tôi vẫn còn một số giá trị, imho.
Nén
Tuy nhiên, khi eo hẹp về ngân sách hay nói chung hơn, hiệu suất không phải là mối quan tâm chính, sự đánh đổi hiệu suất khá nhỏ và về cơ bản bạn giao dịch các tác động hiệu suất nhẹ (khi so sánh với WT không nén) cho không gian đĩa, sử dụng những gì khác sẽ nhàn rỗi xung quanh: CPU.
Mã hóa
MongoDB 3.2 Enterprise giới thiệu khả năng mã hóa kho lưu trữ WiredTiger. Đối với dữ liệu có nhu cầu bảo mật nâng cao, đây là một tính năng giết người và làm cho WT trở thành công cụ lưu trữ duy nhất được lựa chọn, cả về mặt kỹ thuật (MMAPv1 không hỗ trợ mã hóa) và về mặt khái niệm. Dĩ nhiên, bỏ qua khả năng phân vùng đĩa được mã hóa, mặc dù bạn có thể không có tùy chọn đó trong một số môi trường.
Khóa cấp độ tài liệu
Tôi phải thừa nhận rằng về cơ bản tôi đã bỏ qua tính năng đó của WT trong phân tích ở trên, chủ yếu là vì nó không áp dụng cho tôi hoặc khách hàng của tôi khi tôi viết câu trả lời ban đầu.
Tùy thuộc vào thiết lập của bạn, chủ yếu là khi bạn có nhiều máy khách viết đồng thời, tính năng này có thể cung cấp một hiệu suất tuyệt vời.
Trên tổng chi phí sở hữu
Làm di cư vẫn còn tốn kém. Tuy nhiên, tính đến các thay đổi về thời gian đáo hạn và quan điểm đã thay đổi về các tính năng, việc di chuyển có thể đáng để đầu tư nếu:
- Bạn cần mã hóa (Chỉ phiên bản doanh nghiệp!)
- Hiệu suất không phải là mối quan tâm chính tuyệt đối của bạn và bạn có thể tiết kiệm tiền trong thời gian dài (tính toán một cách bảo thủ) bằng cách sử dụng nén
- Bạn có rất nhiều quy trình viết đồng thời, vì việc tăng hiệu suất có thể giúp bạn tiết kiệm được tỷ lệ dọc hoặc ngang.
Cập nhật kết luận
Đối với các dự án mới, tôi sử dụng WiredTiger ngay bây giờ. Do việc di chuyển từ bộ nén sang bộ lưu trữ WiredTiger không nén khá dễ dàng, tôi có xu hướng bắt đầu với việc nén để tăng cường việc sử dụng CPU ("kiếm được nhiều tiền hơn cho buck"). Nếu việc nén có tác động rõ rệt đến hiệu suất hoặc UX, tôi chuyển sang WiredTiger không nén.
Đối với các dự án có nhiều nhà văn đồng thời, câu trả lời cho việc di chuyển hay không hầu như luôn luôn là "Có" - trừ khi ngân sách của dự án cấm đầu tư. Về lâu dài, việc tăng hiệu suất sẽ tự chi trả, nếu việc triển khai được lên kế hoạch hợp lý. Tuy nhiên, bạn cần thêm một số thời gian phát triển vào tính toán, vì trong một số trường hợp, trình điều khiển cần được cập nhật và có thể có vấn đề cần được xử lý.
Đối với các dự án có ngân sách eo hẹp và không thể dành nhiều dung lượng đĩa hơn vào lúc này, việc di chuyển sang WiredTiger có thể là một tùy chọn, nhưng việc nén sẽ gây ra một chút tải cho CPU, một điều chưa từng thấy với MMAPv1. Hơn nữa, chi phí di chuyển có thể rất tốn kém cho một dự án như vậy.