Phát hành DBMS Apache CouchDB 3.0 hướng tài liệu

diễn ra phát hành cơ sở dữ liệu định hướng tài liệu phân tán Apache CouchDB 3.0, thuộc lớp hệ thống NoSQL. Nguồn dự án lây lan được cấp phép theo Apache 2.0.

Cải tiếnđược triển khai trong Apache CouchDB 3.0:

  • Cấu hình mặc định đã được nâng cao.
    Khi bắt đầu, người dùng quản trị viên bây giờ phải được xác định, nếu không máy chủ sẽ kết thúc với lỗi (cho phép bạn giải quyết các vấn đề khi khởi chạy máy chủ vô tình để lại quyền truy cập mà không cần xác thực). Các lệnh gọi tới "/_all_dbs" hiện yêu cầu quyền quản trị và tất cả cơ sở dữ liệu được tạo theo mặc định chỉ người dùng quản trị mới có thể truy cập được (các tham số truy cập có thể được thay đổi thông qua đối tượng "_security"). Theo mặc định, việc chỉnh sửa các đối tượng trong cơ sở dữ liệu _users bị cấm;

  • Thêm khả năng tạo cơ sở dữ liệu được phân đoạn (được phân vùng) do người dùng xác định, giúp bạn có thể xác định các quy tắc của riêng mình để phân phối tài liệu trên các phân đoạn (phạm vi phân đoạn). Đã thêm các tối ưu hóa đặc biệt cho cơ sở dữ liệu được phân chia vào chế độ xem và chỉ mục Mango;
  • thực hiện chế độ phân chia tự động trong quá trình phân đoạn (sharding). Trong cơ sở dữ liệu, giờ đây có thể phân phối lại dữ liệu giữa các phân đoạn, có tính đến sự gia tăng giá trị của hệ số q được sử dụng để xác định mức độ phân tích;
  • Thêm hệ thống con ken để lập chỉ mục nền tự động và giữ cho các chỉ mục phụ (JavaScript, Mango, chỉ mục tìm kiếm văn bản) được cập nhật mà không cần khởi chạy rõ ràng các hoạt động xây dựng của chúng;
  • Quy trình smoosh được sử dụng để đóng gói cơ sở dữ liệu tự động đã được viết lại hoàn toàn;
  • Hệ thống con mới được đề xuất Hàng đợi IO, được sử dụng để thay đổi mức độ ưu tiên I/O cho một số thao tác nhất định;
  • Triển khai hệ thống kiểm tra hồi quy;
  • Đã thêm hỗ trợ chính thức cho nền tảng arm64v8 (aarch64) và ppc64le (ppc64el);
  • Đã thêm hỗ trợ liên kết với công cụ JavaScript SpiderMonkey 1.8.5 (nhánh ESR của Firefox 60) với sự hỗ trợ được cải thiện cho ES5, ES6 và ES2016+;
  • Bao gồm công cụ tìm kiếm Dreyfus dựa trên Lucene, giúp đơn giản hóa đáng kể việc triển khai công cụ tìm kiếm dựa trên CouchDB;
  • Đã thêm phần phụ trợ để ghi nhật ký bằng systemd-journald;
  • Đã thêm cài đặt “[couchdb] single_node”, khi được đặt, CouchDB sẽ tự động tạo cơ sở dữ liệu hệ thống nếu chúng bị thiếu;
  • Hiệu suất của quy trình couch_server đã được tối ưu hóa;
  • Trình cài đặt cho nền tảng Windows đã được cải tiến đáng kể;
  • Lượt xem được giới hạn ở 2^28 (268435456) kết quả. Giới hạn này có thể được định cấu hình riêng cho các chế độ xem thông thường và được phân đoạn bằng cách sử dụng các tùy chọn query_limit và phân vùng_query_limit trong phần “[query_server_config]”;
  • Giao diện quản lý nút cục bộ HTTP riêng biệt, được khởi chạy trên cổng mạng 5986, đã bị xóa, chức năng của giao diện này hiện có sẵn thông qua giao diện quản lý cụm chung;
  • Kích thước tài liệu tối đa đã giảm xuống còn 8 MB, điều này có thể gây ra sự cố khi sao chép dữ liệu từ các máy chủ cũ hơn sau khi nâng cấp lên CouchDB 3.0. Để tăng giới hạn, bạn có thể sử dụng cài đặt “[couchdb] max_document_size”;
  • Việc dọn dẹp chính các tính năng lỗi thời đã được thực hiện, chẳng hạn như các cuộc gọi _replicator và _external, các trường disk_size và data_size cũng như tùy chọn delay_commits;
  • Việc chạy CouchDB hiện yêu cầu Erlang/OTP 20.3.8.11+, 21.2.3+ hoặc 22.0.5. Về mặt lý thuyết, chức năng của nhánh Erlang/OTP 19 được giữ nguyên nhưng bị kiểm tra bởi các thử nghiệm.

Chúng ta hãy nhớ lại rằng CouchDB lưu trữ dữ liệu ở định dạng danh sách có thứ tự và cho phép sao chép một phần dữ liệu giữa một số cơ sở dữ liệu ở chế độ chính-chính với khả năng phát hiện và giải quyết đồng thời các tình huống xung đột. Mỗi máy chủ lưu trữ bộ dữ liệu cục bộ của riêng mình, được đồng bộ hóa với các máy chủ khác, có thể được đưa ngoại tuyến và sao chép các thay đổi theo định kỳ. Đặc biệt, tính năng này khiến CouchDB trở thành giải pháp hấp dẫn trong việc đồng bộ cài đặt chương trình giữa các máy tính khác nhau. Các giải pháp dựa trên CouchDB đã được triển khai ở các công ty như BBC, Apple và CERN.

Các truy vấn và lập chỉ mục dữ liệu của CouchDB có thể được thực hiện theo mô hình Bản đồGiảm, sử dụng JavaScript để tạo logic lấy mẫu dữ liệu. Lõi hệ thống được viết bằng Erlang, được tối ưu hóa để tạo các hệ thống phân tán phục vụ nhiều yêu cầu song song. Máy chủ xem được viết bằng C và dựa trên công cụ JavaScript từ dự án Mozilla. Việc truy cập vào cơ sở dữ liệu được thực hiện bằng giao thức HTTP sử dụng API RESTful JSON, cho phép bạn truy cập dữ liệu, bao gồm cả từ các ứng dụng web chạy trong trình duyệt.

Đơn vị lưu trữ dữ liệu là một tài liệu có mã định danh, phiên bản duy nhất và chứa một tập hợp các trường được đặt tên tùy ý ở định dạng khóa/giá trị. Để tổ chức một tập hợp dữ liệu có cấu trúc giả từ các tài liệu tùy ý (tổng hợp và lựa chọn), khái niệm hình thành các chế độ xem (chế độ xem) được sử dụng để xác định ngôn ngữ JavaScript nào được sử dụng. JavaScript cũng có thể xác định các hàm để xác thực dữ liệu khi thêm tài liệu mới trong một chế độ xem cụ thể.

Nguồn: opennet.ru

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