pamekar SQLite ngamekarkeun HC-tangkal backend kalayan rojongan pikeun paralel nulis

Pangembang proyék SQLite parantos ngamimitian nguji backend HCtree ékspérimén anu ngadukung ngonci tingkat baris sareng nyayogikeun tingkat paralelisasi anu luhur nalika ngolah patarosan. The backend anyar ieu aimed dina ngaronjatkeun efisiensi ngagunakeun SQLite dina sistem klien-server nu kudu ngolah angka nu gede ngarupakeun requests nulis simultaneous kana database.

Struktur b-tangkal asli dipaké dina SQLite pikeun nyimpen data teu dirancang pikeun jenis ieu beban, nu watesan SQLite nulis ka ngan hiji thread. Salaku percobaan, pamekar mimiti ngembangkeun hiji solusi alternatif anu ngagunakeun struktur HC-tangkal pikeun neundeun, nu leuwih cocog pikeun operasi nulis parallelizing.

Pikeun ngidinan sababaraha operasi pikeun ngajalankeun concurrently, hiji catetan HCtree ngagunakeun mékanisme partisi transaksi anu ngagunakeun konci kaca-tingkat tur sarupa jeung MVCC (Multi-Vérsi Concurrency Control) tapi ngagunakeun cék transaksi dumasar kana konci na rentang konci tinimbang susunan kaca. Operasi maca jeung nulis dipigawé dina sambungan jeung snapshot database, parobahan nu jadi katingali dina database utama ngan sanggeus urus geus réngsé.

Klién tiasa nganggo tilu operasi transaksi kabuka:

  • "MULAI" -transaksi henteu tumut kana akun data aksés klien séjén. Lamun operasi nulis dipigawé dina urus, urus bisa dipigawé ngan lamun salila palaksanaan na teu aya operasi nulis sejenna dina database.
  • "Mimitian babarengan" - transaksi ngumpulkeun informasi ngeunaan aksés klien séjén. Lamun operasi nulis dipigawé dina urus, urus bisa komitmen lamun transaksi séjén geus komitmen dina database saprak snapshot dijieun.
  • "MULAI EKSKLUSIF" - saatos muka transaksi, éta ngablokir operasi tina transaksi anu sanés dugi ka réngsé.

HCtree ngadukung réplikasi master-slave, anu ngamungkinkeun anjeun migrasi transaksi ka pangkalan data anu sanés sareng ngajaga pangkalan data sekundér singkronisasi sareng pangkalan data primér. HCtree ogé ngaleungitkeun watesan dina ukuran database - tinimbang 32-bit data kaca identifiers, HCtree ngagunakeun 48-bit, nu ngaronjatkeun ukuran database maksimum ti 16 tebibytes ka 1 exbibyte (juta tebibytes). Ieu diperkirakeun yén kinerja SQLite kalawan backend HCtree moal leuwih handap ti backend single-threaded Palasik. Klién SQLite kalayan dukungan HCtree bakal tiasa ngaksés pangkalan data basis tangkal HC sareng pangkalan data SQLite warisan.

sumber: opennet.ru

Tambahkeun komentar