libmdbx 0.11.7 đến với việc di chuyển dự án sang GitFlic, sửa lỗi và hơn thế nữa

Các phát hành thư viện libmdbx mới phiên bản 0.11.7, sự ra mắt nổi bật với việc chuyển dự án sang dịch vụ GitFlic sau khi chính quyền GitHub loại bỏ libmdbx cùng với một số dự án khác vào ngày 15 tháng 2022 năm XNUMX mà không có bất kỳ cảnh báo hoặc giải thích nào, đồng thời chặn quyền truy cập của nhiều nhà phát triển liên kết với các công ty đã bị Mỹ trừng phạt.

Theo quan điểm của người dùng, tất cả các trang, kho lưu trữ và các nhánh của dự án đột nhiên biến thành trang “404”, không có khả năng giao tiếp và không tìm ra lý do.

Thật không may, hầu hết tất cả các phiên bản đã bị mất, trong đó có nhiều câu hỏi có đáp án chi tiết, cũng như nhiều ý kiến ​​thảo luận. Việc mất thông tin này là thiệt hại khách quan duy nhất mà ban quản trị GitHub gây ra cho dự án, mặc dù các bản sao một phần của các cuộc thảo luận vẫn có sẵn trong kho lưu trữ archive.org.

Việc mất cơ sở hạ tầng CI và tập lệnh cài sẵn (có sẵn miễn phí cho các dự án OpenSource) buộc chúng tôi phải xem xét, thống nhất và loại bỏ một chút nợ kỹ thuật. Bây giờ CI đã được khôi phục về cùng một khối lượng (khoảng 100 cấu hình bản dựng), ngoại trừ việc xây dựng và chạy thử nghiệm cho tất cả các biến thể BSD và Solaris. Đáng chú ý là sau hành động của GitHub, không có thông báo hay giải thích nào được nhận, ngoài lời nhắc nhở về việc cần phải thanh toán.

Các tính năng mới chính của libmdbx 0.11.7

Kể từ tin tức mới nhất về việc phát hành libmdbx v0.11.3, ngoài việc khôi phục từ các hành động GitHub, các bản sửa lỗi và cải tiến sau đây đáng chú ý:

Tổng cộng 185 thay đổi đã được thực hiện đối với 89 tệp, khoảng 3300 dòng đã được thêm vào, khoảng 4100 đã bị xóa. Bị xóa chủ yếu do xóa các tệp công nghệ vốn đã vô dụng được liên kết với GitHub và các dịch vụ phụ thuộc.

Đã thêm một sửa lỗi / hiệu ứng không nhất quán được phát hiện trong trang đã hợp nhất và bộ nhớ cache của bộ đệm trong nhân Linux. Trên các hệ thống mà trang và bộ đệm đệm thực sự thống nhất, việc hạt nhân lãng phí bộ nhớ trên hai bản sao dữ liệu bằng cách ghi vào một tệp đã được cấp phát bộ nhớ sẽ không có nghĩa lý gì. Do đó, dữ liệu được ghi sẽ hiển thị thông qua cấp phát bộ nhớ trước khi lệnh gọi hệ thống write () hoàn tất, ngay cả khi dữ liệu chưa được ghi vào đĩa.

Nhìn chung các hành vi khác không hợp lý, bởi vì với quá trình hợp nhất bị trì hoãn, bạn vẫn phải bắt các khóa cho danh sách trang, sao chép dữ liệu hoặc điều chỉnh các PTE. Do đó, quy tắc bất thành văn về tính nhất quán đã được áp dụng kể từ năm 1989, khi bộ đệm đệm hợp nhất xuất hiện trong SVR4. Do đó, việc tìm ra các lỗi kỳ lạ trong các kịch bản sản xuất libmdbx bận rộn là rất nhiều công việc. Đầu tiên, tái tạo vấn đề, sau đó xác minh các giả thuyết và kiểm tra các cải tiến.

Giờ đây, chúng tôi có thể tự tin nói rằng vấn đề đã được xác định, định vị và loại bỏ một cách đáng tin cậy, bất chấp sự phức tạp và đặc thù của kịch bản phát lại. Ngoài ra, công việc của cơ chế bỏ qua đã được xác nhận bởi một trong những nhà phát triển Erigon (Ethereum), trong trường hợp của anh ta, trong bản dựng gỡ lỗi, biện pháp bảo vệ được kích hoạt như một hồi quy do kiểm tra xác nhận bổ sung.

Cần lưu ý rằng trong bối cảnh libmdbx được sử dụng rộng rãi trong các dự án làm việc, về cơ bản, điều quan trọng hơn là đảm bảo hoạt động đáng tin cậy, hơn là tìm hiểu xem đó là lỗi hay một tính năng và liệu có thể dựa vào tính nhất quán đó hay không đặc biệt là không tìm kiếm nguyên nhân của sự không nhất quán trong nhân Linux. Vì vậy, ở đây chúng ta đang nói về việc khắc phục sự cố có thể ảnh hưởng đến người dùng.

Đã sửa lỗi hồi quy của lỗi EXDEV (liên kết giữa các thiết bị) khi sao chép nóng cơ sở dữ liệu mà không nén sang hệ thống tệp khác, cả thông qua API và bằng tiện ích mdbx_copy.
Kris Zyp đã triển khai hỗ trợ libmdbx trên Deno.

Đã sửa lỗi xử lý giá trị do tùy chọn MDBX_opt_rp_augment_limit đặt khi xử lý các giao dịch lớn trên cơ sở dữ liệu lớn. Trước đây, do một lỗi, các hành động không cần thiết có thể được thực hiện, đôi khi ảnh hưởng đến hiệu suất trên việc triển khai Ethereum (Erigon / Akula / Silkworm) và các dự án Binance Chain.

Nhiều lỗi đã được sửa, bao gồm cả những thứ cho API C ++ và đã khắc phục nhiều sự cố xây dựng trên các cấu hình hiếm và lạ. Danh sách đầy đủ tất cả các cải tiến quan trọng có sẵn trên ChangeLog.

Cuối cùng, nếu bạn quan tâm muốn biết thêm về nó, bạn có thể tham khảo chi tiết Trong liên kết sau.


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.