Sau một năm phát triển, việc phát hành DBMS MongoDB 6.0 hướng tài liệu đã được trình làng, chiếm một vị trí thích hợp giữa các hệ thống nhanh và có thể mở rộng hoạt động trên dữ liệu ở định dạng khóa / giá trị và DBMS quan hệ, có chức năng và thuận tiện trong việc tạo truy vấn. Mã MongoDB được viết bằng C++ và được phân phối theo giấy phép SSPL, dựa trên giấy phép AGPLv3, nhưng không phải là nguồn mở, vì nó chứa yêu cầu phân biệt đối xử để cung cấp theo giấy phép SSPL không chỉ bản thân mã ứng dụng mà còn cả mã ứng dụng. mã nguồn của tất cả các thành phần liên quan đến việc cung cấp dịch vụ đám mây.
MongoDB hỗ trợ lưu trữ tài liệu ở định dạng giống JSON, có ngôn ngữ tạo truy vấn khá linh hoạt, có thể tạo chỉ mục cho các thuộc tính được lưu trữ khác nhau, cung cấp khả năng lưu trữ hiệu quả các đối tượng nhị phân lớn, hỗ trợ ghi nhật ký các hoạt động để thay đổi và thêm dữ liệu vào cơ sở dữ liệu, có thể hoạt động theo mô hình Map/Reduce, hỗ trợ sao chép và xây dựng các cấu hình có khả năng chịu lỗi.
MongoDB có tính năng phân mảnh dữ liệu tích hợp (phân phối tập dữ liệu trên các máy chủ dựa trên một khóa cụ thể), khi kết hợp với sao chép dữ liệu, cho phép bạn xây dựng một cụm lưu trữ có khả năng mở rộng theo chiều ngang mà không có điểm lỗi duy nhất (lỗi của bất kỳ nút nào cũng không ảnh hưởng đến hoạt động của cơ sở dữ liệu), hỗ trợ phục hồi lỗi tự động và chuyển tải từ nút bị lỗi. Mở rộng cụm hoặc chuyển đổi một cụm người phục vụ Cụm máy chủ được tạo mà không cần dừng cơ sở dữ liệu bằng cách đơn giản là thêm các máy mới.
Các tính năng chính của phiên bản mới:
- Đã triển khai khả năng thực hiện các truy vấn bao gồm dữ liệu được lưu trữ ở dạng mã hóa (Mã hóa có thể truy vấn). Dữ liệu được giải mã từ phía người dùng và vẫn được mã hóa trong quá trình xử lý yêu cầu (yêu cầu được thực hiện trên dữ liệu được mã hóa mà không cần giải mã trước). Ở dạng hiện tại, chỉ cho phép các biểu thức so sánh trong các truy vấn, nhưng trong tương lai, nó được lên kế hoạch để thêm hỗ trợ cho việc kiểm tra phạm vi, tiền tố, hậu tố, chuỗi con và các hoạt động khác.
- Các khả năng liên quan đến việc lưu trữ dữ liệu dưới dạng chuỗi thời gian (bộ sưu tập chuỗi thời gian) đã được mở rộng, tối ưu hóa để lưu trữ các lát giá trị tham số được ghi trong các khoảng thời gian nhất định (thời gian và tập hợp các giá trị tương ứng với thời điểm này) , ví dụ, nhu cầu lưu trữ dữ liệu đó phát sinh trong các hệ thống giám sát, nền tảng tài chính, hệ thống thăm dò trạng thái của cảm biến. Bản phát hành mới cung cấp khả năng sử dụng các chỉ mục phụ và chỉ mục tổng hợp với các bộ sưu tập dữ liệu dưới dạng chuỗi thời gian. Đã thêm hỗ trợ để đính kèm dữ liệu bổ sung, chẳng hạn như thông tin địa lý để tính khoảng cách và vị trí. Cải thiện hiệu suất để đọc, truy vấn và sắp xếp.
- Đã thêm các công cụ mới để theo dõi các thay đổi (“luồng thay đổi”, Luồng thay đổi API), nhờ đó bạn có thể tổ chức gửi thông báo tới các ứng dụng về các thay đổi dữ liệu trong cơ sở dữ liệu. Các thay đổi được báo cáo theo thời gian thực và cho phép bạn xây dựng ứng dụng bằng kỹ thuật lập trình phản ứng và theo hướng sự kiện. Các sự kiện được xử lý bằng phương thức watch, khi các sự kiện cần thiết có thể được lọc và tổng hợp bằng cách sử dụng các toán tử $match, $project và $redact. Phiên bản mới cung cấp khả năng lấy trạng thái trước đó và sau đó của tài liệu (ví dụ: khi tài liệu bị xóa hoặc thay đổi). Ngoài các hoạt động của ngôn ngữ thao tác dữ liệu (DML), còn có hỗ trợ cho các hoạt động DDL (ngôn ngữ định nghĩa dữ liệu) chẳng hạn như tạo và xóa các chỉ mục và bộ sưu tập. Đã thêm công cụ để lọc các thông báo liên quan.
- Các toán tử $lookup và $graphlookup có hỗ trợ đầy đủ cho bộ nhớ phân đoạn. Hiệu suất của thao tác $lookup đã được tối ưu hóa, ví dụ: khi có một chỉ mục trên khóa ngoại, việc khớp một số lượng nhỏ tài liệu hiện nhanh hơn 5-10 lần và số lượng lớn nhanh gấp đôi. Đối với ánh xạ không sử dụng chỉ mục, hiệu suất đạt được có thể lên tới 100 lần.
- Khả năng thực hiện các truy vấn phân tích phức tạp trên các lát cắt nhất quán (ảnh chụp nhanh) về trạng thái dữ liệu sản xuất được cung cấp. Các truy vấn phân tích như thế này có thể trải rộng trên nhiều phân đoạn trong cấu hình MongoDB phân tán lớn.
- Các toán tử mới $maxN , $minN và $lastN đã được thêm vào để xác định các giá trị trong tập dữ liệu, cũng như toán tử $sortArray để sắp xếp các phần tử mảng.
- Hiệu quả của việc phân đoạn đã được cải thiện đáng kể. Kích thước khối mặc định cho bộ sưu tập phân đoạn đã được tăng lên 128 MB. Đã thêm lệnh configureCollectionBalancing để chống phân mảnh bộ sưu tập đã phân mảnh.
- Hỗ trợ dành cho các nhà cung cấp khóa tuân thủ KMIP đã được thêm vào mã hóa cấp trường phía máy khách (CSFLE).
- Đã thêm khả năng nén và mã hóa nhật ký kiểm tra, phản ánh hoạt động của người dùng DBMS.
- Chế độ đồng bộ hóa dữ liệu thử nghiệm giữa các cụm MongoDB (Đồng bộ hóa giữa các cụm) đã được triển khai.
Nguồn: opennet.ru
