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