rqlite, isang mahusay na ibinahagi at magaan na pamamagitang DBMS

Si naghahanap ka para sa isang ipinamahaging DBMS na gumagamit ng SQLite bilang isang imbakan engine, hayaan mong sabihin ko sa iyo iyon ang rqlite ang para sa iyo, dahil pinapayagan nitong ayusin ang gawain ng isang kumpol mula sa mga pag-iimbak na na-synchronize sa bawat isa.

Mula sa mga tampok na rqlite, kadalian ng pag-install, pagpapatupad at pagpapanatili ay naka-highlight ng ipinamahaging imbakan mapagparaya sa kasalanan, na kung saan ay katulad ng etcd at Consul, ngunit gumagamit ito ng isang modelo ng pamamagitang data sa halip na isang key / halaga na format.

Tungkol sa rqlite

Ginagamit ang Raft consensus algorithm upang mapanatili ang lahat ng mga node na naka-sync. Rqlite gumamit ng orihinal na SQLite library at go-sqlite3 driver, bilang karagdagan kung saan nagsasagawa ito ng isang layer na nagpoproseso ng mga kahilingan ng kliyente, kinopya ang sarili nito sa iba pang mga node at sinusubaybayan ang napagkasunduan na napili sa pangunahing node.

Ang mga pagbabago sa database ay magagawa lamang ng node na napili bilang pinuno, ngunit ang mga koneksyon sa pagsulat ng operasyon ay maaaring idirekta sa iba pang mga node sa kumpol, na ibabalik ang address ng pinuno upang ulitin ang kahilingan (sa susunod na bersyon, nangangako silang idaragdag ang awtomatikong pagpapasa ng tawag sa pinuno).

Ang pangunahing pokus ay sa tolerance ng kasalanan, kaya ang DBMS sukatan lamang sa mga pagpapatakbo na basahin, at ang pagsusulat ng operasyon ay ang bottleneck. Posibleng magpatakbo ng isang kumpol ng rqlite mula sa isang solong node at ang gayong solusyon ay maaaring magamit upang magbigay ng pag-access sa SQLite sa HTTP nang hindi nagbibigay ng pagpapaubaya sa kasalanan.

Data ng SQLite sa bawat node hindi sila nakaimbak sa isang file, ngunit sa memorya. Sa antas ng layer sa pagpapatupad ng Raft protocol, isang talaan ang itinatago sa lahat ng mga utos ng SQLite na humahantong sa isang pagbabago sa database.

Ang talaang ito ay ginagamit para sa pagtitiklop (pagtitiklop sa antas ng replay ng query sa iba pang mga node), kapag nagsisimula ng isang bagong node, o upang mabawi mula sa isang pagkawala ng pagkakakonekta.

Upang mabawasan ang laki ng talaan, ginagamit ang awtomatikong pag-iimpake, na nagsisimula pagkatapos ng isang tinukoy na bilang ng mga pagbabago at hahantong sa kumpirmasyon ng isang snapshot, laban kung saan nagsisimula ang isang bagong tala (ang estado ng database sa memorya ay magkapareho sa snapshot + naipon na log ng pagbabago).

Mula sa mga tampok na rqlite:

  • Dali ng paglawak ng cluster, nang hindi nangangailangan ng isang hiwalay na pag-install ng SQLite.
  • Kakayahang mabilis na makakuha ng replicated na SQL imbakan.
  • Handa nang gamitin sa mga proyekto sa produksyon.
  • Ang pagkakaroon ng HTTP (S) API, na nagpapahintulot sa pag-update ng data sa mode ng batch at pagtukoy ng nangungunang node ng kumpol. Ang isang interface ng command line at mga library ng client para sa iba't ibang mga wika sa pag-program ay ibinigay din.
  • Ang pagkakaroon ng isang serbisyo upang tukuyin ang iba pang mga node na nagbibigay-daan sa iyo upang mabilis na lumikha ng mga kumpol.
  • Suporta para sa pag-encrypt ng palitan ng data sa pagitan ng mga node.
  • Ang kakayahang ipasadya ang antas ng pagsuri para sa kaugnayan at pagkakapare-pareho ng data kapag nagbabasa.
  • Opsyonal na kakayahang ikonekta ang mga node na read-only na hindi lumahok sa pagpapasiya ng pinagkasunduan at ginagamit upang madagdagan ang kakayahang sumukat ng kumpol para sa mga pagbasa na operasyon.
  • Ang suporta para sa katutubong anyo ng mga transaksyon batay sa pagsasama ng mga utos sa iisang kahilingan (ang mga transaksyon batay sa BEGIN, CommIT, ROLLBACK, SAVEPOINT, at RELEASE ay hindi suportado).

Tungkol sa rqlite 6.0

Ang bagong bersyon nagpapakilala ng makabuluhang mga pagbabago sa arkitektura na naglalayong mapabuti ang pagiging maaasahan ng cluster sa pamamagitan ng pagpapabuti ng proseso ng pagdidirekta ng pagbabasa at pagsusulat ng mga kahilingan sa tamang mga node ng cluster.

Rqlite nodes ngayon Maaari multiplex maramihang mga lohikal na koneksyon sa pagitan nila gamit ang mga koneksyon sa TCP na itinatag sa pagitan ng mga node ng Raft protocol. Kung ang kahilingan ay nangangailangan ng awtoridad ng pinuno ng node, ngunit ipinadala sa pangalawang node, maaaring matukoy ng pangalawang node ang address ng pinuno at maipadala ito sa kliyente, nang hindi isinasagawa ang pagkalkula ng konsensya ng Raft.

Inalis din ng pagbabago ang magkakahiwalay na sangkap para sa pag-sync ng metadata at inalis ang magkakahiwalay na paghawak ng katayuan at metadata ni Raft.

Ang mga pangalawang node ngayon ay nagpapadala lamang ng mga kahilingan sa lead node kung kinakailangan, kung kinakailangan upang malaman ang address ng lead node. Nagbibigay ang API ng kakayahang makakuha ng impormasyon tungkol sa katayuan ng iba pang mga node sa kumpol. Idinagdag ang utos ng Sysdump sa CLI.

Sa wakas kung interesado kang malaman ang tungkol dito o kumunsulta sa mga tagubilin sa pag-install at manwal ng gumagamit, magagawa mo ito mula sa link sa ibaba.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.