Daniel Bernstein đã cập nhật thư viện cdb

Daniel J. Bernstein, một chuyên gia nổi tiếng về mật mã học và phát triển phần mềm bảo mật, người đã phát triển các dự án như qmail, djbdns, NaCl, Ed25519, Curve25519 và ChaCha20-Poly1305, đã phát hành cdb 20250121, một định dạng lưu trữ dữ liệu và thư viện đi kèm để nhúng các hàm cơ sở dữ liệu khóa/giá trị vào các ứng dụng. Bản phát hành này ra mắt hơn 25 năm sau bản cập nhật trước đó, cdb 0.75, được phát hành vào tháng 2 năm 2000.

Phiên bản mới triển khai định dạng cdb64, được dịch sang cấu trúc dữ liệu 64-bit. Trên nền tảng 64-bit, định dạng mới cho phép cơ sở dữ liệu có kích thước lên đến một exabyte (trước đây, kích thước cơ sở dữ liệu bị giới hạn ở mức 4 GB). Cơ sở dữ liệu rất nhỏ gọn và sử dụng tiêu đề 4096 byte và 48 byte chi phí bổ sung cho mỗi bản ghi (đối với phiên bản 32-bit, tiêu đề là 2048 byte và 24 byte cho mỗi bản ghi). Việc truy cập cơ sở dữ liệu chỉ yêu cầu hai thao tác truy cập đĩa nếu có khóa và một thao tác nếu không có khóa. Tính năng thay thế cơ sở dữ liệu nguyên tử được hỗ trợ, tính năng này chống lỗi và không chặn quyền truy cập đọc.

Những thay đổi khác:

  • Hỗ trợ xây dựng bằng cách sử dụng tập lệnh cấu hình và cài đặt bằng lệnh "make install".
  • Đã xóa ràng buộc của tập lệnh kiểm tra với csh.
  • Tất cả các giá trị số nguyên bên trong đã được thay thế bằng kiểu "num", được định nghĩa là "long long". Các hàm uint32, fmt và scan đã được thay thế bằng các hàm hoạt động với kiểu num.
  • API quản lý bộ đệm đã được chia thành inbuf và outbuf. Giao diện hier đã được dọn dẹp.
  • Các định nghĩa hàm không sử dụng đã bị xóa khỏi mã.
  • Việc sử dụng các ràng buộc như str_len, alloc, uint32, exit, error và systype đã lỗi thời.
  • Mã đã được tái cấu trúc để loại bỏ việc sử dụng các cấu trúc C không còn được khuyến khích như kiểu định nghĩa hàm cũ, nguyên mẫu rỗng và kiểu định nghĩa main() cũ.
  • Sử dụng định nghĩa của const và static.
  • Cờ "-Wall" được bật trong quá trình lắp ráp và mã được dọn dẹp để loại bỏ các cảnh báo.
  • Các tùy chọn -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing và -fno-strict-overflow được bật trong quá trình biên dịch.

Nguồn: opennet.ru

Mua dịch vụ lưu trữ đáng tin cậy cho các trang web có bảo vệ DDoS, máy chủ VPS VDS 🔥 Mua dịch vụ hosting website đáng tin cậy với bảo vệ DDoS, máy chủ VPS VDS | ProHoster