Tại MongoDB World tháng trước, người sáng lập MongoDB và CTO Eliot Horowitz đã công bố hỗ trợ cho các công cụ lưu trữ có thể cắm được dự kiến cho bản phát hành 2.8. Đây là một công cụ thú vị vì nó có nghĩa là người dùng mongo giờ đây sẽ có thể chọn một công cụ lưu trữ phù hợp nhất với khối lượng công việc của họ và với API được lên kế hoạch hỗ trợ đầy đủ các tính năng của Tất cả MongoDB, trong khi không phải từ bỏ bất kỳ chức năng hiện tại nào mà họ vui thích. Không chỉ vậy, các nút trong cùng một tập hợp bản sao sẽ có thể sử dụng các công cụ lưu trữ khác nhau, cho phép tất cả các loại cấu hình thú vị cho các nhu cầu khác nhau.
Điều tuyệt vời về việc MongoDB là mã nguồn mở hoàn toàn là chúng ta không phải đợi đến khi phiên bản 2.8 thực sự được phát hành để sử dụng các tính năng rất thử nghiệm này. Toàn bộ mã nguồn MongoDB có thể được sao chép từ GitHub và được biên dịch để bao gồm bất kỳ tính năng thử nghiệm nào hiện đang được thực hiện.
Trong ví dụ dưới đây, tôi sẽ chỉ cho bạn cách tạo mongo với công cụ lưu trữ ví dụ stonedb được trình bày tại MongoDB world.
Bắt đầu từ phiên bản đám mây CentOS 6.5 mới được cài đặt, chúng tôi sẽ lấy các yếu tố phụ thuộc cơ bản:
$ yum groupinstall 'Development Tools'
$ yum install git glibc-devel scons`
Tiếp theo sẽ lấy mã nguồn MongoDB từ GitHub:
$ git clone https://github.com/mongodb/mongo.git
Bây giờ tất cả những gì còn lại là biên dịch nguồn với hỗ trợ RocksDB được bật:
$ scons --rocksdb=ROCKSDB mongo mongod
Hoặc tăng tốc bằng cách sử dụng tùy chọn -j để chỉ định số lượng công việc song song sẽ sử dụng, nếu bạn định dành hệ thống mà bạn đang biên dịch vào lúc này, một chỉ báo tốt là số lõi trong máy của bạn +1, tôi đã xem xét như:
$ scons -j 17 --rocksdb=ROCKSDB mongo mongod
Điều đáng chú ý là tại thời điểm này, hỗ trợ công cụ lưu trữ có thể cắm và công cụ RocksDB hoàn toàn là thử nghiệm nên rất có thể bạn sẽ gặp lỗi và không thể biên dịch từ bản chính, điều đó có thể xảy ra ở giai đoạn này. Nếu bạn muốn theo dõi mọi thứ đang tiến triển như thế nào thì danh sách gửi thư của nhà phát triển MongoDB là một nơi tốt để bắt đầu.
Sau khi quá trình biên dịch hoàn tất, bạn sẽ muốn bắt đầu một quy trình mongod bằng cách sử dụng tham số new –storageEngine:
$ ./mongod --storageEngine rocksExperiment
Và cuối cùng bạn có thể kiểm tra mọi thứ bằng cách kết nối và chèn một tài liệu đơn giản, sau đó sử dụng db.stats (). Bạn sẽ thấy số liệu thống kê RocksDB được gửi lại cho bạn nếu mọi thứ diễn ra như kế hoạch.
Như bạn có thể thấy, khá đơn giản để thiết lập và chạy với các tính năng thử nghiệm được bật. Tôi rất vui mừng khi thấy tiến trình mã công cụ lưu trữ có thể cắm được và xem nhiều công cụ mới hơn được công bố khi chúng ta tiến gần hơn đến bản phát hành 2.8.