Lage rqlite 6.0, yon DBMS distribye ki toleran fay ki baze sou SQLite.

Yo prezante liberasyon distribiye DBMS rqlite 6.0, ki sèvi ak SQLite kòm yon motè depo epi ki pèmèt ou òganize travay yon gwoup depo senkronize. Youn nan karakteristik yo nan rqlite se fasilite nan enstalasyon, deplwaman ak antretyen nan yon distribiye depo toleran fay, yon ti jan menm jan ak etcd ak Consul, men lè l sèvi avèk yon modèl done relasyon olye pou yo yon fòma kle / valè. Kòd pwojè a ekri nan Go epi distribye anba lisans MIT.

Pou kenbe tout nœuds yo nan yon eta senkronize, yo itilize algorithm konsansis Raft la. Rqlite sèvi ak bibliyotèk orijinal SQLite ak chofè estanda go-sqlite3, sou tèt li yo lanse yon kouch ki trete demann kliyan yo, fè replikasyon nan lòt nœuds ak kontwole reyalizasyon konsansis sou chwa a nan yon ne dirijan.

Chanjman nan baz done a kapab fèt sèlman pa ne ke yo chwazi kòm lidè a, men koneksyon ak operasyon ekriti yo ka voye tou nan lòt nœuds nan gwoup la, ki pral retounen adrès lidè a pou repete demann lan (nan pwochen vèsyon an yo pwomès pou ajoute otomatik voye demann bay lidè a). Anfaz prensipal la se sou tolerans fòt, kidonk DBMS yo balanse sèlman ak operasyon lekti, ak operasyon ekriti yo se kou boutèy la. Li posib pou kouri yon gwoup rqlite soti nan yon sèl ne ak solisyon sa a ka itilize pou bay aksè a SQLite sou HTTP san yo pa bay tolerans fay.

Done SQLite yo sou chak ne yo pa estoke nan yon dosye, men nan memwa. Nan nivo kouch ak aplikasyon pwotokòl Raft la, yo kenbe yon boutèy demi lit tout kòmandman SQLite ki mennen nan chanjman nan baz done a. Jounal sa a yo itilize pandan replikasyon (replikasyon nan nivo repwodiksyon demann sou lòt nœuds), kòmanse yon nouvo ne, oswa rekipere nan yon pèt koneksyon. Pou diminye gwosè boutèy la, yo itilize anbalaj otomatik, ki kòmanse apre yon kantite chanjman espesifik epi ki mennen nan yon snapshot yo fiks sou disk, an relasyon ak yon nouvo boutèy demi lit kòmanse kenbe (eta a nan baz done a nan memwa. se ki idantik ak snapshot la + akimile jounal chanjman an).

Karakteristik nan rqlite:

  • Fasil pou deplwaye yon gwoup, san yo pa bezwen yon enstalasyon SQLite separe.
  • Kapasite byen vit jwenn replike depo SQL.
  • Pare pou itilize nan pwojè k ap travay (Pwodiksyon-klas).
  • Prezans yon HTTP(S) API ki pèmèt ou mete ajou done yo nan mòd pakèt epi detèmine ne ki mennen nan gwoup la. Li bay tou yon koòdone liy lòd ak kapasite pou sèvi ak divès kalite bibliyotèk kliyan ki te bati pou SQLite.
  • Disponibilite yon sèvis pou idantifye lòt nœuds, ki pèmèt ou kreye grap dinamik.
  • Sipò pou chifreman echanj done ant nœuds.
  • Abilite pou configure nivo tcheke enpòtans ak konsistans done lè lecture.
  • Kapasite opsyonèl pou konekte nœuds nan mòd lekti sèlman, ki pa patisipe nan detèmine konsansis epi yo itilize pou ogmante évolutivité nan gwoup la pou operasyon lekti.
  • Sipò pou pwòp fòm tranzaksyon ou ki baze sou konbine kòmandman nan yon sèl demann (tranzaksyon ki baze sou BEGIN, COMMIT, ROLLBACK, SAVEPOINT ak RELEASE pa sipòte).
  • Sipò pou kreye sovgad cho.

Nouvo lage a entwodui chanjman achitekti enpòtan ki vize pou ogmante fyab gwoup la nan amelyore pwosesis routage demann lekti ak ekri nan nœud grap ki kòrèk yo. nœuds rqlite kapab kounye a multiplex plizyè koneksyon lojik nan mitan tèt yo lè l sèvi avèk koneksyon TCP ki etabli ant nœuds pa pwotokòl Raft la. Si yon demann mande otorite lidè men li voye nan yon ne segondè, nod segondè a ka detèmine adrès lidè a epi pase li sou kliyan an san yo pa fè kalkil konsansis Raft.

Chanjman an tou elimine nesesite pou yon eleman senkronizasyon metadata separe epi elimine manyen separe eta Raft ak metadata. Nœuds segondè yo kounye a voye demann nan ne lidè a sèlman lè sa nesesè, lè yo bezwen chèche konnen adrès la nan ne lidè a. API a bay kapasite pou jwenn enfòmasyon sou eta lòt nœuds nan gwoup la. Yo te ajoute kòmand ".sysdump" nan koòdone liy lòd la.

Sous: opennet.ru

Add nouvo kòmantè