Rilaxx ta' rqlite 6.0, DBMS distribwit u tolleranti għall-ħsarat ibbażat fuq SQLite

Jiġi ppreżentat ir-rilaxx tad-DBMS rqlite 6.0 distribwit, li juża SQLite bħala magna tal-ħażna u jippermettilek torganizza x-xogħol ta 'grupp ta' ħażniet sinkronizzati. Waħda mill-karatteristiċi ta 'rqlite hija l-faċilità ta' installazzjoni, skjerament u manutenzjoni ta 'ħażna mqassma tolleranti għall-ħsarat, kemmxejn simili għal etcd u Consul, iżda bl-użu ta' mudell ta 'dejta relazzjonali minflok format ta' ċavetta/valur. Il-kodiċi tal-proġett huwa miktub f'Go u mqassam taħt il-liċenzja MIT.

Biex in-nodi kollha jinżammu fi stat sinkronizzat, jintuża l-algoritmu tal-kunsens Raft. Rqlite juża l-librerija oriġinali SQLite u s-sewwieq standard go-sqlite3, li fuqu jitnieda saff li jipproċessa t-talbiet tal-klijenti, iwettaq replikazzjoni għal nodi oħra u jimmonitorja l-kisba ta 'kunsens dwar l-għażla ta' nodu ewlieni.

Bidliet fid-database jistgħu jsiru biss min-node li jintgħażel bħala l-mexxej, iżda konnessjonijiet ma 'operazzjonijiet ta' kitba jistgħu wkoll jintbagħtu lil nodi oħra fil-cluster, li jirritorna l-indirizz tal-mexxej biex jirrepeti t-talba (fil-verżjoni li jmiss huma wegħda li żżid it-trażmissjoni awtomatika tat-talbiet lill-mexxej). L-enfasi ewlenija hija fuq it-tolleranza tal-ħsarat, għalhekk id-DBMS tiskala biss b'operazzjonijiet ta 'qari, u operazzjonijiet ta' kitba huma l-konġestjoni. Huwa possibbli li titħaddem cluster rqlite minn nodu wieħed u din is-soluzzjoni tista 'tintuża biex tipprovdi aċċess għal SQLite fuq HTTP mingħajr ma tipprovdi tolleranza għall-ħsarat.

Id-dejta SQLite fuq kull node mhix maħżuna f'fajl, iżda fil-memorja. Fil-livell tas-saff bl-implimentazzjoni tal-protokoll Raft, jinżamm log tal-kmandi SQLite kollha li jwasslu għal bidliet fid-database. Dan il-ġurnal jintuża waqt ir-replikazzjoni (replikazzjoni fil-livell tar-riproduzzjoni ta 'talbiet fuq nodi oħra), il-bidu ta' nodu ġdid, jew l-irkupru minn telf ta 'konnettività. Biex jitnaqqas id-daqs tal-ġurnal, jintuża ippakkjar awtomatiku, li jibda wara numru speċifikat ta' bidliet u jwassal biex tiġi ffissata snapshot fuq disk, li fir-rigward tiegħu jibda jinżamm log ġdid (l-istat tad-database fil-memorja hija identika għall-istampa + ir-reġistru tal-bidliet akkumulat).

Karatteristiċi ta 'rqlite:

  • Faċli biex tuża cluster, mingħajr il-ħtieġa għal installazzjoni separata ta 'SQLite.
  • Kapaċità li tikseb malajr ħażna SQL replikata.
  • Lest għall-użu fi proġetti ta 'ħidma (grad ta' Produzzjoni).
  • Il-preżenza ta 'HTTP(S) API li tippermettilek taġġorna d-dejta fil-modalità tal-lott u tiddetermina n-nodu ewlieni tal-cluster. Jipprovdi wkoll interface tal-linja tal-kmand u l-abbiltà li tuża diversi libreriji tal-klijenti mibnija għal SQLite.
  • Disponibbiltà ta 'servizz għall-identifikazzjoni ta' nodi oħra, li jippermettilek toħloq clusters b'mod dinamiku.
  • Appoġġ għall-kodifikazzjoni tal-iskambju tad-dejta bejn in-nodi.
  • Kapaċità li tikkonfigura l-livell ta 'verifika tar-rilevanza u l-konsistenza tad-dejta meta taqra.
  • Kapaċità fakultattiva li tikkonnettja nodi fil-modalità ta 'qari biss, li ma jipparteċipawx fid-determinazzjoni tal-kunsens u huma użati biex iżidu l-iskalabbiltà tal-cluster għal operazzjonijiet ta' qari.
  • Appoġġ għall-forma tiegħek ta' tranżazzjonijiet ibbażati fuq il-kombinazzjoni ta' kmandi f'talba waħda (tranżazzjonijiet ibbażati fuq BEGIN, COMMIT, ROLLBACK, SAVEPOINT u RELEASE mhumiex appoġġjati).
  • Appoġġ għall-ħolqien ta 'backups sħun.

Ir-rilaxx il-ġdid jintroduċi bidliet arkitettoniċi sinifikanti mmirati biex iżidu l-affidabbiltà tal-clusters billi jtejbu l-proċess tar-routing tat-talbiet għall-qari u l-kitba għan-nodi tal-clusters korretti. Nodi rqlite issa jistgħu multiplika konnessjonijiet loġiċi multipli bejniethom billi jużaw konnessjonijiet TCP stabbiliti bejn in-nodi mill-protokoll Raft. Jekk talba teħtieġ awtorità tal-mexxej iżda tintbagħat lil nodu sekondarju, in-nodu sekondarju jista 'jiddetermina l-indirizz tal-mexxej u jgħaddih lill-klijent mingħajr ma jwettaq kalkoli ta' kunsens Raft.

Il-bidla eliminat ukoll il-ħtieġa għal komponent ta 'sinkronizzazzjoni tal-metadata separat u eliminat l-immaniġġjar separat tal-istat u l-metadata ta' Raft. Nodi sekondarji issa jibagħtu talbiet lin-nodu mexxej biss meta jkun meħtieġ, meta jkollhom bżonn isibu l-indirizz tan-nodu mexxej. L-API tipprovdi l-abbiltà li tikseb informazzjoni dwar l-istat ta 'nodi oħra fil-cluster. Il-kmand ".sysdump" ġie miżjud mal-interface tal-linja tal-kmand.

Sors: opennet.ru

Żid kumment