Phát hành DBMS nhúng nhỏ gọn libmdbx 0.9.1

Phát hành thư viện phiên bản 0.9.1 libmdbx (MDBX) triển khai cơ sở dữ liệu khóa-giá trị nhúng nhỏ gọn, hiệu suất cao. Mã libmdbx được phân phối theo giấy phép Giấy phép công cộng OpenLDAP.

Phiên bản hiện tại là sự thỏa hiệp giữa ý định phát hành phiên bản 1.0 ổn định lâu dài với sự hỗ trợ đầy đủ của C++ và việc miễn cưỡng trì hoãn việc phát hành do chưa chuẩn bị cho việc đóng băng API C++ mới. Bản phát hành được trình bày là kết quả của 9 tháng làm việc nhằm ổn định thư viện và cải thiện khả năng sử dụng của nó, đồng thời cũng bao gồm một phiên bản sơ bộ. API C ++.

Thư viện libmdbx không chỉ là một “fork”, mà là một hậu duệ được thiết kế lại hoàn toàn LMĐB - DBMS nhúng giao dịch thuộc lớp “khóa-giá trị” dựa trên cây B+ mà không ghi nhật ký chủ động, cho phép các quy trình đa luồng hoạt động cạnh tranh và hiệu quả với cơ sở dữ liệu được chia sẻ cục bộ (không phải mạng) mà không cần quy trình máy chủ chuyên dụng. libmdbx về cơ bản mở rộng năng lực của tổ tiên, đồng thời loại bỏ hoặc giảm thiểu những nhược điểm. Đồng thời, theo các nhà phát triển, libmdbx nhanh hơn một chút và đáng tin cậy hơn LMDB một chút.

libmdbx gợi ý ACID, tuần tự hóa nghiêm ngặt các thay đổi và đọc không chặn với tỷ lệ tuyến tính trên các lõi CPU. Kết quả test hiệu năng (gửi yêu cầu đọc/tìm kiếm song song theo luồng 1-2-4-8 trên CPU i7-4600U 2 nhân vật lý ở chế độ HyperThread 4 luồng):

Phát hành DBMS nhúng nhỏ gọn libmdbx 0.9.1

Sự khác biệt quan trọng nhất giữa MDBX và LMDB:

  • Về cơ bản, người ta chú ý nhiều hơn đến chất lượng mã, tính nhất quán của API, kiểm tra và kiểm tra tự động.
  • Kiểm soát nhiều hơn đáng kể trong quá trình vận hành, từ kiểm tra tham số đến kiểm tra nội bộ cấu trúc cơ sở dữ liệu.
  • Tự động nén và quản lý kích thước cơ sở dữ liệu tự động.
  • Một định dạng cơ sở dữ liệu duy nhất cho các cụm 32 bit và 64 bit.
  • Ước tính khối lượng mẫu theo phạm vi (ước tính truy vấn phạm vi).
  • Hỗ trợ các khóa dài gấp đôi và kích thước trang cơ sở dữ liệu do người dùng lựa chọn.
  • Một tiện ích để kiểm tra tính toàn vẹn của cấu trúc cơ sở dữ liệu với một số khả năng khôi phục.

Những cải tiến và cải tiến chính sau tin tức trước đó với sự ra mắt của phiên bản 0.5 vào tháng 2020 năm XNUMX:

  • Một hệ thống mở đã được tạo ra để hỗ trợ nhanh chóng và giải đáp các thắc mắc. Nhóm điện tín.
  • Hơn một chục lỗi và thiếu sót đã được loại bỏ (xem. changelog).
  • Rất nhiều lỗi chính tả và lỗi chính tả đã được sửa và nhiều cải tiến về mặt thẩm mỹ đã được thực hiện.
  • Kịch bản thử nghiệm đã được mở rộng.
  • Hỗ trợ iOS, Android, xây dựng, xạ hương, uClibc, WSL1 и Rượu nho.
  • Bản xem trước API C++ được phát hành vào một tập tin tiêu đề.
  • Tài liệu tích hợp ở định dạng Doxygen và tạo tự động Tài liệu trực tuyến.
  • Tự động tạo các kho lưu trữ với các văn bản nguồn được hợp nhất được cung cấp.
  • Đã thêm hỗ trợ để chuẩn bị giao dịch và con trỏ, bối cảnh người dùng cho giao dịch và con trỏ.
  • Các phương pháp bổ sung đã được triển khai để kiểm soát tính toàn vẹn tham chiếu trong ảnh chụp nhanh MVCC của cây B+.
  • Đã thêm hỗ trợ để kiểm tra ảnh chụp nhanh MVCC của cơ sở dữ liệu, có thể truy cập được thông qua bất kỳ trang meta nào có khả năng chuyển đổi để khôi phục.
  • Đã triển khai hỗ trợ để mở lại cơ sở dữ liệu từ một quy trình cho mục đích thử nghiệm, v.v.
  • Đã triển khai xử lý tự động tùy chọn MDBX_NOSUBDIR khi mở cơ sở dữ liệu.
  • Đã thêm các chức năng để tạo khóa số nguyên từ các giá trị dấu phẩy động và số “phổ quát” JavaScript.
  • Tổng cộng, 430 thay đổi đã được thực hiện ảnh hưởng đến 93 tệp, hơn 25 nghìn dòng được thêm vào, hơn 8.5 nghìn dòng bị xóa.

Sự phát triển tiếp theo của libmdbx sẽ tập trung vào API C++ cuối cùng, ổn định hơn nữa mã cơ sở, cải thiện khả năng sử dụng của thư viện và đóng gói cho các bản phân phối Linux phổ biến. Trong số các cải tiến được đề xuất, điều đáng chú ý là hỗ trợ các khóa ở định dạng gói tin nhắn.

Nguồn: opennet.ru

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