Pembangun SQLite membangunkan bahagian belakang pokok HC dengan sokongan untuk penulisan selari

Pembangun projek SQLite telah mula menguji bahagian belakang HCtree eksperimen yang menyokong penguncian peringkat baris dan menyediakan paralel tahap tinggi semasa memproses pertanyaan. Bahagian belakang baharu ini bertujuan untuk meningkatkan kecekapan penggunaan SQLite dalam sistem pelayan pelanggan yang perlu memproses sejumlah besar permintaan tulis serentak ke pangkalan data.

Struktur b-tree yang digunakan secara asli dalam SQLite untuk menyimpan data tidak direka bentuk untuk jenis beban ini, yang mengehadkan SQLite untuk menulis hanya kepada satu utas. Sebagai percubaan, pembangun mula membangunkan penyelesaian alternatif yang menggunakan struktur pokok HC untuk penyimpanan, yang lebih sesuai untuk menyelaraskan operasi tulis.

Untuk membenarkan berbilang operasi dijalankan serentak, rekod HCtree menggunakan mekanisme pembahagian transaksi yang menggunakan penguncian peringkat halaman dan serupa dengan MVCC (Multi-Version Concurrency Control) tetapi menggunakan semakan transaksi berdasarkan kekunci dan julat kekunci dan bukannya set halaman. Operasi baca dan tulis dilakukan berkaitan dengan petikan pangkalan data, perubahan yang menjadi kelihatan dalam pangkalan data utama hanya selepas transaksi selesai.

Pelanggan boleh menggunakan tiga operasi transaksi terbuka:

  • β€œMULAI”—transaksi tidak mengambil kira data akses pelanggan lain. Jika operasi tulis dilakukan dalam transaksi, transaksi boleh dilakukan hanya jika semasa pelaksanaannya tiada operasi tulis lain dalam pangkalan data.
  • "MULAKAN SERENDAH" - urus niaga mengumpul maklumat tentang akses pelanggan lain. Jika operasi tulis dilakukan dalam transaksi, transaksi boleh dilakukan jika transaksi lain telah dilakukan dalam pangkalan data sejak syot kilat dicipta.
  • β€œMULAI EKSKLUSIF” - selepas membuka transaksi, ia menyekat operasi daripada transaksi lain sehingga ia selesai.

HCtree menyokong replikasi tuan-hamba, yang membolehkan anda memindahkan transaksi ke pangkalan data lain dan memastikan pangkalan data sekunder segerak dengan pangkalan data utama. HCtree juga mengalih keluar had pada saiz pangkalan data - bukannya pengecam halaman data 32-bit, HCtree menggunakan 48-bit, yang meningkatkan saiz pangkalan data maksimum daripada 16 tebibait kepada 1 exbibait (juta tebibait). Dijangkakan bahawa prestasi SQLite dengan hujung belakang HCtree tidak akan lebih rendah daripada hujung belakang berulir tunggal klasik. Pelanggan SQLite dengan sokongan HCtree akan dapat mengakses kedua-dua pangkalan data berasaskan pokok HC dan pangkalan data SQLite lama.

Sumber: opennet.ru

Tambah komen