Rhyddhau rqlite 6.0, DBMS dosbarthedig sy'n goddef namau yn seiliedig ar SQLite

Cyflwynir rhyddhau'r DBMS rqlite 6.0 dosbarthedig, sy'n defnyddio SQLite fel injan storio ac yn caniatáu ichi drefnu gwaith clwstwr o storfeydd cydamserol. Un o nodweddion rqlite yw rhwyddineb gosod, lleoli a chynnal storfa ddosbarthedig sy'n goddef namau, braidd yn debyg i etcd a Consul, ond gan ddefnyddio model data perthynol yn lle fformat allwedd / gwerth. Mae cod y prosiect wedi'i ysgrifennu yn Go a'i ddosbarthu o dan y drwydded MIT.

Er mwyn cadw pob nod mewn cyflwr cydamserol, defnyddir algorithm consensws Raft. Mae Rqlite yn defnyddio'r llyfrgell SQLite wreiddiol a'r gyrrwr go-sqlite3 safonol, ac ar ben hynny mae haen yn cael ei lansio sy'n prosesu ceisiadau cleientiaid, yn perfformio atgynhyrchu i nodau eraill ac yn monitro cyflawniad consensws ar y dewis o nod blaenllaw.

Dim ond gan y nod a ddewisir fel yr arweinydd y gellir gwneud newidiadau i'r gronfa ddata, ond gellir anfon cysylltiadau â gweithrediadau ysgrifennu hefyd i nodau eraill yn y clwstwr, a fydd yn dychwelyd cyfeiriad yr arweinydd i ailadrodd y cais (yn y fersiwn nesaf maent addo ychwanegu anfon ceisiadau ymlaen yn awtomatig at yr arweinydd). Mae'r prif bwyslais ar oddefgarwch bai, felly dim ond gyda gweithrediadau darllen a gweithrediadau ysgrifennu y mae graddfeydd DBMS yn dagfa. Mae'n bosibl rhedeg clwstwr rqlite o un nod a gellir defnyddio'r ateb hwn i ddarparu mynediad i SQLite dros HTTP heb ddarparu goddefgarwch bai.

Nid yw'r data SQLite ar bob nod yn cael ei storio mewn ffeil, ond yn y cof. Ar y lefel haen gyda gweithrediad y protocol Raft, cedwir log o'r holl orchmynion SQLite sy'n arwain at newidiadau yn y gronfa ddata. Defnyddir y log hwn yn ystod atgynhyrchu (dyblygiad ar lefel ceisiadau atgynhyrchu ar nodau eraill), cychwyn nod newydd, neu adfer ar ôl colli cysylltedd. Er mwyn lleihau maint y log, defnyddir pecynnu awtomatig, sy'n dechrau ar ôl nifer penodol o newidiadau ac yn arwain at osod ciplun ar ddisg, y mae log newydd yn dechrau cael ei gadw mewn perthynas ag ef (cyflwr y gronfa ddata yn y cof yn union yr un fath â'r ciplun + y log newid cronedig).

Nodweddion rqlite:

  • Mae'n hawdd defnyddio clwstwr, heb fod angen gosodiad SQLite ar wahân.
  • Y gallu i gael storfa SQL wedi'i dyblygu yn gyflym.
  • Yn barod i'w ddefnyddio mewn prosiectau gwaith (gradd Cynhyrchu).
  • Presenoldeb API HTTP(S) sy'n eich galluogi i ddiweddaru data yn y modd swp a phennu nod arweiniol y clwstwr. Mae hefyd yn darparu rhyngwyneb llinell orchymyn a'r gallu i ddefnyddio amrywiol lyfrgelloedd cleientiaid a adeiladwyd ar gyfer SQLite.
  • Argaeledd gwasanaeth ar gyfer adnabod nodau eraill, sy'n eich galluogi i greu clystyrau yn ddeinamig.
  • Cefnogaeth i amgryptio cyfnewid data rhwng nodau.
  • Y gallu i ffurfweddu lefel gwirio perthnasedd a chysondeb data wrth ddarllen.
  • Gallu dewisol i gysylltu nodau yn y modd darllen yn unig, nad ydynt yn cymryd rhan mewn pennu consensws ac a ddefnyddir i gynyddu scalability y clwstwr ar gyfer gweithrediadau darllen.
  • Cefnogaeth i'ch ffurf eich hun o drafodion yn seiliedig ar gyfuno gorchmynion mewn un cais (ni chefnogir trafodion yn seiliedig ar BEGIN, COMMIT, ROLLback, SAVEPOINT a RELEASE).
  • Cefnogaeth ar gyfer creu copïau wrth gefn poeth.

Mae'r datganiad newydd yn cyflwyno newidiadau pensaernïol sylweddol gyda'r nod o gynyddu dibynadwyedd clystyrau trwy wella'r broses o lwybro ceisiadau darllen ac ysgrifennu i'r nodau clwstwr cywir. Bellach gall nodau rqlite amlblethu cysylltiadau rhesymegol lluosog ymhlith ei gilydd gan ddefnyddio cysylltiadau TCP a sefydlwyd rhwng nodau gan y protocol Raft. Os oes angen awdurdod arweinydd ar gais ond caiff ei anfon i nod eilaidd, gall y nod eilaidd bennu cyfeiriad yr arweinydd a'i drosglwyddo i'r cleient heb wneud cyfrifiadau consensws Raft.

Roedd y newid hefyd yn dileu'r angen am gydran cydamseru metadata ar wahân ac yn dileu trin cyflwr Raft a metadata ar wahân. Mae nodau uwchradd bellach yn anfon ceisiadau at y nod arweinydd dim ond pan fo angen, pan fydd angen iddynt ddarganfod cyfeiriad y nod arweinydd. Mae'r API yn darparu'r gallu i gael gwybodaeth am gyflwr nodau eraill yn y clwstwr. Mae'r gorchymyn ".sysdump" wedi'i ychwanegu at y rhyngwyneb llinell orchymyn.

Ffynhonnell: opennet.ru

Ychwanegu sylw