Zhvilluesit e SQLite po zhvillojnë backend-in HC-tree me mbështetje për operacione të shumta shkrimi

Zhvilluesit e projektit SQLite kanë filluar testimin e backend-it eksperimental HCtree, i cili mbështet bllokimin në nivelin e rreshtave dhe ofron një nivel të lartë paralelizimi gjatë përpunimit të pyetjeve. Backend-i i ri është orientuar për të rritur efikasitetin e përdorimit të SQLite në sistemet klient-server, ku duhet të përpunohen një numër i madh kërkesash të përsëritura për shkrim në bazën e të dhënave.

Strukturat b-tree, të cilat initially janë përdorur në SQLite për ruajtjen e të dhënave, nuk janë dizajnuar për llojin e tillë të ngarkesës, duke kufizuar SQLite në shkrimin vetëm në një rrjedhë. Si një eksperiment, zhvilluesit kanë filluar të zhvillojnë një zgjidhje alternative që përdor strukturën HC-tree për ruajtje, më të përshtatshme për paralelizimin e operacioneve të shkrimit.

Për të organizuar ekzekutimin paralel të disa operacioneve në HCtree, regjistrimet përdorin një mekanizëm ndarjeje transaksionesh, i cili përdor bllokime në nivelin e faqeve dhe është i ngjashëm me MVCC (menaxhimi shumë-versional i aksesit konkurrues), por përdor kontrollin e transaksioneve në bazë të çelësave dhe intervaleve të çelësave në vend të grupeve të faqeve. Operacionet e leximit dhe shkrimit ekzekutohen në lidhje me snapshot-in e bazës së të dhënave, ndryshimi i të cilit bëhet i dukshëm në bazën e të dhënave kryesore vetëm pas përfundimit të transaksionit.

Klientët mund të përdorin tre operacione për hapjen e transaksioneve:

  • «BEGIN» — transaksionet nuk marrin parasysh tĂ« dhĂ«nat e aksesit nga klientĂ« tĂ« tjerĂ«. NĂ« rastin e ekzekutimit tĂ« operacioneve tĂ« shkrimit brenda transaksionit, transaksioni mund tĂ« konfirmohet vetĂ«m nĂ«se gjatĂ« kohĂ«s sĂ« realizimit tĂ« tij nuk ka pasur operacione tĂ« tjera shkrimi nĂ« bazĂ«n e tĂ« dhĂ«nave.
  • «BEGIN CONCURRENT» — transaksionet mbledhin informacion mbi aksesin e klientĂ«ve tĂ« tjerĂ«. NĂ« rastin e ekzekutimit tĂ« operacioneve tĂ« shkrimit brenda transaksionit, transaksioni mund tĂ« konfirmohet nĂ«se nga momenti i krijimit tĂ« snapshot-it nĂ« bazĂ«n e tĂ« dhĂ«nave janĂ« konfirmuar transaksione tĂ« tjera.
  • «BEGIN EXCLUSIVE» — pas hapjes sĂ« transaksionit, bllokon operacionet nga transaksione tĂ« tjera deri nĂ« pĂ«rfundimin e tij.

HCtree mbĂ«shtet replikimin nĂ« stilin "master-slave", duke lejuar transferimin e transaksioneve nĂ« njĂ« bazĂ« tjetĂ«r tĂ« dhĂ«nash dhe mbĂ«shtetje pĂ«r bazat e tĂ« dhĂ«nave dytĂ«sore nĂ« njĂ« gjendje tĂ« sinkronizuar me bazĂ«n kryesore. HCtree gjithashtu heq kufizimin nĂ« madhĂ«sinĂ« e bazĂ«s sĂ« tĂ« dhĂ«nave — pĂ«rveç identifikuesve tĂ« dhĂ«nave 32-bitĂ«, HCtree pĂ«rdor identifikues 48-bitĂ«, gjĂ« qĂ« rrit madhĂ«sinĂ« maksimale tĂ« bazĂ«s sĂ« tĂ« dhĂ«nave nga 16 tebibit nĂ« 1 eksibit (njĂ« milion tebibit). Pritet qĂ« performanca e SQLite me backend-in HCtree tĂ« mos jetĂ« mĂ« e ulĂ«t se backend-i klasik me njĂ« pĂ«rdorim tĂ« vetĂ«m. KlientĂ«t e SQLite me mbĂ«shtetje pĂ«r HCtree do tĂ« kenĂ« qasje si nĂ« bazĂ«n e tĂ« dhĂ«nave tĂ« bazuara nĂ« strukturĂ«n HC-tree ashtu edhe nĂ« bazat e vjetra tĂ« tĂ« dhĂ«nave SQLite.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster