L-iżviluppaturi ta 'SQLite jiżviluppaw backend tas-siġra HC b'appoġġ għal kitbiet paralleli

L-iżviluppaturi tal-proġett SQLite bdew jittestjaw backend HCtree sperimentali li jappoġġja l-illokkjar fil-livell ta 'ringiela u jipprovdi livell għoli ta' parallelizzazzjoni meta jipproċessa l-mistoqsijiet. Il-backend il-ġdid huwa mmirat biex itejjeb l-effiċjenza tal-użu ta 'SQLite f'sistemi klijent-server li jridu jipproċessaw numru kbir ta' talbiet simultanji ta 'kitba fid-database.

L-istrutturi b-siġra użati b'mod nattiv fl-SQLite biex jaħżnu d-dejta mhumiex iddisinjati għal dan it-tip ta 'tagħbija, li jillimita SQLite biex jikteb għal ħajt wieħed biss. Bħala esperiment, l-iżviluppaturi bdew jiżviluppaw soluzzjoni alternattiva li tuża strutturi HC-siġra għall-ħażna, li huma aktar adattati għall-parallelizzazzjoni tal-operazzjonijiet tal-kitba.

Biex tippermetti operazzjonijiet multipli jaħdmu fl-istess ħin, rekord HCtree juża mekkaniżmu ta 'qsim tat-tranżazzjonijiet li juża l-illokkjar fil-livell tal-paġna u huwa simili għal MVCC (Kontroll tal-Konkorrenza Multi-Verżjoni) iżda juża kontrolli tat-tranżazzjonijiet ibbażati fuq ċwievet u firxiet ewlenin minflok settijiet ta' paġni. L-operazzjonijiet ta 'qari u kitba jitwettqu b'konnessjoni ma' snapshot ta 'database, li l-bidliet li jsiru viżibbli fid-database prinċipali biss wara li titlesta t-tranżazzjoni.

Il-klijenti jistgħu jużaw tliet operazzjonijiet ta’ tranżazzjoni miftuħa:

  • “BEGIN”—tranżazzjonijiet ma jqisux data ta’ aċċess ta’ klijenti oħra. Jekk isiru operazzjonijiet ta' kitba fi ħdan tranżazzjoni, it-tranżazzjoni tista' tiġi impenjata biss jekk matul l-eżekuzzjoni tagħha ma kienx hemm operazzjonijiet ta' kitba oħra fid-database.
  • "BEGIN CONCURRENT" - transazzjonijiet jiġbru informazzjoni dwar l-aċċess ta 'klijenti oħra. Jekk isiru operazzjonijiet ta' kitba fi ħdan tranżazzjoni, it-tranżazzjoni tista' tiġi impenjata jekk ikunu ġew impenjati tranżazzjonijiet oħra fid-database minn meta nħolqot l-istampa.
  • "TIBDA ESKLUSSIVA" - wara li tiftaħ transazzjoni, timblokka operazzjonijiet minn tranżazzjonijiet oħra sakemm titlesta.

HCtree jappoġġja r-replikazzjoni master-slave, li tippermettilek temigra tranżazzjonijiet għal database oħra u żżomm databases sekondarji sinkronizzati mad-database primarja. HCtree tneħħi wkoll il-limitazzjoni fuq id-daqs tad-database - minflok identifikaturi tal-paġna tad-data ta '32 bit, HCtree juża dawk ta' 48 bit, li jżid id-daqs massimu tad-database minn 16 tebibytes għal 1 exbibyte (miljun tebibytes). Huwa mistenni li l-prestazzjoni ta 'SQLite mal-backend HCtree ma tkunx aktar baxxa mill-backend klassiku b'ħajt wieħed. Klijenti SQLite b'appoġġ HCtree se jkunu jistgħu jaċċessaw kemm databases bbażati fuq siġar HC kif ukoll databases SQLite legacy.

Sors: opennet.ru

Żid kumment