Các nhà phát triển SQLite phát triển chương trình phụ trợ cây HC với sự hỗ trợ ghi song song

Các nhà phát triển dự án SQLite đã bắt đầu thử nghiệm chương trình phụ trợ HCtree thử nghiệm hỗ trợ khóa cấp hàng và cung cấp mức độ song song cao khi xử lý truy vấn. Phần phụ trợ mới nhằm mục đích nâng cao hiệu quả sử dụng SQLite trong các hệ thống máy khách-máy chủ phải xử lý một số lượng lớn yêu cầu ghi đồng thời vào cơ sở dữ liệu.

Các cấu trúc cây b vốn được sử dụng trong SQLite để lưu trữ dữ liệu không được thiết kế cho loại tải này, điều này hạn chế SQLite chỉ ghi vào một luồng. Như một thử nghiệm, các nhà phát triển bắt đầu phát triển một giải pháp thay thế sử dụng cấu trúc cây HC để lưu trữ, phù hợp hơn cho việc song song hóa các hoạt động ghi.

Để cho phép nhiều hoạt động chạy đồng thời, bản ghi HCtree sử dụng cơ chế phân vùng giao dịch sử dụng khóa cấp trang và tương tự như MVCC (Kiểm soát đồng thời nhiều phiên bản) nhưng sử dụng kiểm tra giao dịch dựa trên khóa và phạm vi khóa thay vì bộ trang. Các hoạt động đọc và ghi được thực hiện liên quan đến ảnh chụp nhanh cơ sở dữ liệu, những thay đổi này chỉ hiển thị trong cơ sở dữ liệu chính sau khi giao dịch hoàn tất.

Khách hàng có thể sử dụng ba hoạt động giao dịch mở:

  • “BEGIN”—các giao dịch không tính đến dữ liệu truy cập của các khách hàng khác. Nếu các thao tác ghi được thực hiện trong một giao dịch thì giao dịch đó chỉ có thể được thực hiện nếu trong quá trình thực hiện không có thao tác ghi nào khác trong cơ sở dữ liệu.
  • "BEGIN CONCURRENT" - giao dịch thu thập thông tin về quyền truy cập của các khách hàng khác. Nếu các thao tác ghi được thực hiện trong một giao dịch thì giao dịch đó có thể được thực hiện nếu các giao dịch khác đã được thực hiện trong cơ sở dữ liệu kể từ khi ảnh chụp nhanh được tạo.
  • “BEGIN ĐỘC QUYỀN” - sau khi mở một giao dịch, nó sẽ chặn các hoạt động của các giao dịch khác cho đến khi hoàn thành.

HCtree hỗ trợ sao chép chủ-phụ, cho phép bạn di chuyển các giao dịch sang cơ sở dữ liệu khác và giữ cho cơ sở dữ liệu thứ cấp đồng bộ với cơ sở dữ liệu chính. HCtree cũng loại bỏ giới hạn về kích thước cơ sở dữ liệu - thay vì số nhận dạng trang dữ liệu 32 bit, HCtree sử dụng số nhận dạng 48 bit, giúp tăng kích thước cơ sở dữ liệu tối đa từ 16 tebibyte lên 1 exbibyte (triệu tebibyte). Dự kiến, hiệu suất của SQLite với phần phụ trợ HCtree sẽ không thấp hơn phần phụ trợ đơn luồng cổ điển. Các máy khách SQLite có hỗ trợ HCtree sẽ có thể truy cập cả cơ sở dữ liệu dựa trên cây HC và cơ sở dữ liệu SQLite kế thừa.

Nguồn: opennet.ru

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