Bản phát hành ổn định đầu tiên của FerretDB, triển khai MongoDB dựa trên PostgreSQL DBMS

Bản phát hành dự án FerretDB 1.0 đã được xuất bản, cho phép bạn thay thế DBMS MongoDB định hướng tài liệu bằng PostgreSQL mà không cần thực hiện thay đổi đối với mã ứng dụng. FerretDB được triển khai như một máy chủ proxy chuyển các cuộc gọi đến MongoDB thành các truy vấn SQL sang PostgreSQL, cho phép bạn sử dụng PostgreSQL làm bộ lưu trữ thực tế. Phiên bản 1.0 được đánh dấu là bản phát hành ổn định đầu tiên sẵn sàng để sử dụng rộng rãi. Mã được viết bằng Go và được phân phối theo giấy phép Apache 2.0.

Đối tượng mục tiêu chính của FerretDB là những người dùng không sử dụng các khả năng nâng cao của MongoDB trong ứng dụng của họ nhưng muốn sử dụng một ngăn xếp phần mềm hoàn toàn mở. Ở giai đoạn phát triển hiện tại, FerretDB hỗ trợ một tập hợp con các khả năng của MongoDB được sử dụng phổ biến nhất trong các ứng dụng thông thường. Nhu cầu triển khai FerretDB có thể phát sinh liên quan đến việc chuyển đổi MongoDB sang giấy phép SSPL độc quyền, dựa trên giấy phép AGPLv3, nhưng không mở, vì nó chứa yêu cầu phân biệt đối xử để phân phối theo giấy phép SSPL không chỉ mã ứng dụng của chính nó mà còn cả 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 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 khóa/giá trị và các DBMS quan hệ có chức năng và dễ truy vấn. MongoDB hỗ trợ lưu trữ tài liệu ở định dạng giống như 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 lưu trữ hiệu quả các đối tượng nhị phân lớn, hỗ trợ ghi nhật ký 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ấu hình chịu lỗi.

Trong số những thay đổi trong FerretDB 1.0:

  • Các lệnh createIndexes và dropIndexes đã được triển khai để tạo và xóa một hoặc nhiều chỉ mục trên một bộ sưu tập.
  • Lệnh getMore đã được triển khai để hiển thị một phần mới của kết quả thu được từ việc thực thi các lệnh trả về con trỏ, chẳng hạn như tìm và tổng hợp.
  • Đã thêm hỗ trợ cho toán tử tổng hợp $sum để tính tổng các giá trị nhóm.
  • Đã thêm hỗ trợ cho các toán tử $limit và $skip để giới hạn số lượng và bỏ qua tài liệu trong quá trình tổng hợp.
  • Đã thêm hỗ trợ cho toán tử $count để đếm tài liệu trong quá trình tổng hợp.
  • Đã thêm hỗ trợ cho toán tử $unwind để phân tích các trường mảng trong tài liệu đến và tạo danh sách có tài liệu riêng cho từng thành phần mảng.
  • Đã thêm hỗ trợ một phần cho các lệnh collStats, dbStats và dataSize để lấy số liệu thống kê về bộ sưu tập và cơ sở dữ liệu cũng như kích thước dữ liệu.

Nguồn: opennet.ru

Thêm một lời nhận xét