Ukukhutshwa kwe-rqlite 6.0, i-DBMS esasaziweyo, enokunyamezela impazamo esekwe kwiSQLite

Ukukhutshwa kwe-DBMS rqlite 6.0 esasazwayo iye yaboniswa, esebenzisa iSQLite njengenjini yokugcina kwaye ikuvumela ukuba uququzelele umsebenzi weqela elivela kwiindawo zokugcina ezihambelanayo. Enye yeempawu ze-rqlite kukulula kofakelo, ukuthunyelwa kunye nokugcinwa kwendawo yokugcina i-fault-tolerant storage, efana ne-etcd kunye ne-Consul, kodwa usebenzisa imodeli yedatha ehambelanayo endaweni yesitshixo / ifomathi yexabiso. Ikhowudi yeprojekthi ibhaliwe kwi-Go kwaye isasazwe phantsi kwelayisenisi ye-MIT.

Ukugcina zonke ii-nodes kwisimo esivumelanisiweyo, i-algorithm ye-Raft ye-consuss isetyenziswa. I-Rqlite isebenzisa ilayibrari ye-SQLite yokuqala kunye nomqhubi we-go-sqlite3 oqhelekileyo, phezu kwayo i-layer iqaliswe eqhuba izicelo zabaxhasi, yenza ukuphindaphinda kwezinye iindawo kunye nokubeka iliso kwimpumelelo yemvumelwano ekukhethweni kwendawo ehamba phambili.

Utshintsho kwi-database lunokwenziwa kuphela nge-node ekhethiweyo njengenkokeli, kodwa uxhulumaniso kunye nemisebenzi yokubhala ingathunyelwa kwezinye iindawo kwiqela, eliya kubuyisela idilesi yenkokeli ukuphinda isicelo (kwinguqu elandelayo bona. thembisa ukongeza ugqithiso oluzenzekelayo lwezicelo kwinkokeli). Ugxininiso oluphambili kukunyamezela impazamo, ngoko i-DBMS ilinganisa kuphela ngemisebenzi yokufunda, kwaye imisebenzi yokubhala yi-bottleneck. Kuyakwazi ukuqhuba i-rqlite cluster ukusuka kwindawo enye kwaye esi sisombululo singasetyenziselwa ukubonelela ukufikelela kwi-SQLite phezu kwe-HTTP ngaphandle kokubonelela ukunyamezela impazamo.

Idatha yeSQLite kwindawo nganye ayigcinwanga kwifayile, kodwa kwimemori. Kwinqanaba lomaleko kunye nokuphunyezwa kwe-protocol ye-Raft, i-log yayo yonke imiyalelo ye-SQLite ekhokelela kwiinguqu kwi-database igcinwa. Le log isetyenziswa ngexesha lokuphindaphinda (ukuphindaphinda kwinqanaba lokuvelisa izicelo kwezinye iindawo), ukuqala i-node entsha, okanye ukubuyisela ekulahlekeni koqhagamshelwano. Ukunciphisa ubungakanani belog, ukupakishwa okuzenzekelayo kusetyenziswa, eqala emva kwenani elichaziweyo lotshintsho kwaye ikhokelela kwi-snapshot eqiniweyo kwidisk, ngokubhekiselele apho ilogi entsha iqala ukugcinwa (imeko yogcino lwedatha kwimemori. iyafana nesnapshot + ilog yotshintsho eqokelelweyo).

Iimpawu ze-rqlite:

  • Kulula ukuhambisa iqela, ngaphandle kwesidingo sofakelo olwahlukileyo lweSQLite.
  • Ukukwazi ukufumana ngokukhawuleza ukugcinwa kweSQL okuphindaphindwayo.
  • Ukulungele ukusetyenziswa kwiiprojekthi zokusebenza (Ibakala lokuvelisa).
  • Ubukho be-HTTP (S) API evumela ukuba uhlaziye idatha kwimodi ye-batch kwaye unqume i-node ehamba phambili yeqela. Ikwabonelela ngojongano lwelayini yomyalelo kunye nokukwazi ukusebenzisa iilayibrari ezahlukeneyo zabathengi ezakhelwe iSQLite.
  • Ubukho benkonzo yokuchonga ezinye iindawo, okukuvumela ukuba wenze amaqela ngokuguquguqukayo.
  • Inkxaso yoguqulelo oluntsonkothileyo lwedatha phakathi kweendawo zokuhlala.
  • Ukukwazi ukuqwalasela inqanaba lokujonga ukufaneleka kunye nokuhambelana kwedatha xa ufunda.
  • Ikhono lokukhetha ukudibanisa i-nodes kwimodi yokufunda kuphela, engathathi nxaxheba ekunqumeni ukuvumelana kwaye isetyenziselwa ukunyusa ukulinganisa kweqela lemisebenzi yokufunda.
  • Inkxaso yendlela yakho yokuthengiselana ngokusekelwe ekudibaniseni imiyalelo kwisicelo esinye (intengiselwano esekelwe kwi-BEGIN, COMMIT, ROLLBACK, SAVEPOINT kunye ne-RELEASE ayixhaswanga).
  • Inkxaso yokudala i-backups eshushu.

Ukukhutshwa okutsha kwazisa utshintsho olubalulekileyo lolwakhiwo olujolise ekwandiseni ukuthembeka kweqela ngokuphucula inkqubo yokufunda nokubhala izicelo kwii-cluster nodes ezichanekileyo. Iinodi ze-rqlite ngoku zinokuphinda-phinda uqhagamshelo olunengqiqo phakathi kwabo kusetyenziswa uqhagamshelo lwe-TCP olusekwe phakathi kweenodi ngeRaft protocol. Ukuba isicelo sidinga igunya lenkokeli kodwa sithunyelwa kwi-node yesibini, i-node yesibini inokumisela idilesi yenkokeli kwaye idlulisele kumxhasi ngaphandle kokwenza izibalo zokuvumelana kweRaft.

Olu tshintsho luphinde lwaphelisa imfuno yecandelo elihlukeneyo longqamaniso lwemetadata kwaye lwaphelisa ukuphathwa okwahlukileyo kweRaft state kunye nemetadata. Iinqununu zeSekondari ngoku zithumela izicelo kwi-node yenkokeli kuphela xa kuyimfuneko, xa kufuneka bafumane idilesi yenkokheli. I-API inika amandla okufumana ulwazi malunga nemeko yezinye iinodi kwiqela. Umyalelo othi ".sysdump" wongezwe kujongano lomgca womyalelo.

umthombo: opennet.ru

Yongeza izimvo