Pangembang SQLite ngembangake backend wit HC kanthi dhukungan kanggo tulisan paralel

Pangembang proyek SQLite wis miwiti nguji backend HCtree eksperimen sing ndhukung ngunci tingkat baris lan nyedhiyakake paralelisasi tingkat dhuwur nalika ngolah pitakon. Backend anyar ditujokake kanggo ningkatake efisiensi nggunakake SQLite ing sistem klien-server sing kudu ngolah akeh panjalukan nulis simultan menyang database.

Struktur b-wit asli digunakake ing SQLite kanggo nyimpen data ora dirancang kanggo jinis mbukak, kang mbatesi SQLite nulis mung siji thread. Minangka eksperimen, pangembang wiwit ngembangake solusi alternatif sing nggunakake struktur HC-wit ​​kanggo panyimpenan, sing luwih cocok kanggo operasi nulis paralel.

Kanggo ngidini sawetara operasi bisa mlaku bebarengan, rekaman HCtree nggunakake mekanisme pemisahan transaksi sing nggunakake kunci tingkat kaca lan padha karo MVCC (Multi-Version Concurrency Control) nanging nggunakake pamriksa transaksi adhedhasar tombol lan kisaran tombol tinimbang set kaca. Operasi maca lan nulis dileksanakake ing sambungan karo snapshot database, owah-owahan sing dadi katon ing database utama mung sawise transaksi rampung.

Klien bisa nggunakake telung operasi transaksi mbukak:

  • "MULAI" -transaksi ora njupuk data akses akun klien liyane. Yen operasi nulis ditindakake sajrone transaksi, transaksi kasebut mung bisa ditindakake yen sajrone eksekusi ora ana operasi nulis liyane ing basis data.
  • "BEGIN CONCURRENT" - transaksi ngumpulake informasi babagan akses klien liyane. Yen operasi nulis ditindakake sajrone transaksi, transaksi kasebut bisa ditindakake yen transaksi liyane wis ditindakake ing basis data wiwit snapshot digawe.
  • "MULAI EKSKLUSIF" - sawise mbukak transaksi, mblokir operasi saka transaksi liyane nganti rampung.

HCtree ndhukung replikasi master-slave, sing ngidini sampeyan migrasi transaksi menyang database liyane lan supaya database sekunder sinkron karo database utami. HCtree uga mbusak watesan ing ukuran database - tinimbang 32-dicokot pengenal kaca data, HCtree nggunakake 48-dicokot, kang nambah ukuran database maksimum saka 16 tebibyte kanggo 1 exbibyte (yuta tebibyte). Dikarepake yen kinerja SQLite karo backend HCtree ora luwih murah tinimbang backend single-threaded klasik. Klien SQLite kanthi dhukungan HCtree bakal bisa ngakses basis data basis wit HC lan database SQLite warisan.

Source: opennet.ru

Add a comment