Liberasyon distribiye DBMS rqlite 7.0 la te fèt, ki itilize SQLite kòm yon motè depo epi ki pèmèt ou òganize travay yon gwoup ki soti nan depo senkronize youn ak lòt. 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 SQLite orijinal la ak chofè go-sqlite3, sou tèt li yo lanse yon kouch ki trete demann kliyan yo, fè replikasyon sou lòt nĹuds, epi kontwole siksè konsansis sou chwa yon nĹud 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 epi yo ka itilize solisyon sa a 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), lè yo kòmanse yon nouvo ne, oswa pou retabli de 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 fikse yon snapshot, an relasyon ak yon nouvo boutèy demi lit kòmanse kenbe (eta a nan baz done a nan memwa). ki idantik ak snapshot la + boutèy demi lit chanjman akimile).
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è pwodiksyon (klas pwodiksyon).
- 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. Yo bay yon koòdone liy lòd ak bibliyotèk kliyan pou divès lang pwogramasyon tou.
- 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.
Nan nouvo lage a:
- Te ajoute sipò pou gwoupman otomatik rqlite lè l sèvi avèk yon nouvo sèvis dekouvèt nĹud ki ka fonksyone sou depo distribye tankou Consul ak etcd. Sèvis sa a pèmèt nĹud rqlite yo jwenn youn lòt otomatikmanâadministratè a sèlman bezwen lanse plizyè nĹud sou diferan sèvè. sèvè, espesifye adrès pataje gwoup Consul la oswa etcd a (pa egzanp, "example.com:8500"), epi nĹuds yo pral otomatikman rantre nan gwoup la. NĹud lidè a mete enfòmasyon adrès li ajou detanzantan nan depo Consul la oswa etcd a, sa ki pèmèt ou chanje lidè a pita san ou pa bezwen rekonfigure lòt nĹuds yo, epi tou ajoute nouvo nĹuds menm apre lidè a fin chanje. Sipò pou ansyen sèvis dekouvèt nĹuds la (mòd Dekouvèt), ki mache ak AWS Lambda, sispann.
- Koòdone CLI a pèmèt espesifye plizyè lame nan yon fwa - si premye ne a pa disponib, pwochen lame yo pral kontakte.
- Retravay kòd la pou analize agiman liy lòd rqlited.
- Pake protobuf ki demode yo sispann.
- Depo BoltDB yo itilize nan aplikasyon pwotokòl Raft la te ranplase pa bbolt, yon fouchèt ki soti nan pwojè etcd la.
Sous: opennet.ru
