rqlite 6.0 kaleratzea, SQLite-n oinarritutako akatsekiko tolerantzia duen DBMS banatua.

Banatutako DBMS rqlite 6.0 bertsioa aurkezten da, SQLite biltegiratze-motor gisa erabiltzen duena eta biltegiratze sinkronizatuen multzo baten lana antolatzeko aukera ematen duena. rqlite-ren ezaugarrietako bat akats-tolerantea den biltegiratze banatua instalatzeko, hedatzeko eta mantentzeko erraztasuna da, etcd eta Consul-en antzekoa, baina gako/balio formatuaren ordez datu erlazionalaren eredua erabiliz. Proiektuaren kodea Go-n idatzita dago eta MIT lizentziapean banatzen da.

Nodo guztiak egoera sinkronizatuan mantentzeko, Raft adostasun algoritmoa erabiltzen da. Rqlite-k jatorrizko SQLite liburutegia eta go-sqlite3 kontrolatzaile estandarra erabiltzen ditu, eta horren gainean bezeroen eskaerak prozesatzen dituen geruza bat abiarazten da, beste nodo batzuetara erreplikatzea eta nodo nagusiaren aukeraketari buruzko adostasuna kontrolatzen duena.

Lider gisa hautatutako nodoak soilik egin ditzake datu-basean aldaketak, baina idazketa-eragiketak dituzten konexioak klusterreko beste nodo batzuetara ere bidal daitezke, eta horrek liderren helbidea itzuliko du eskaera errepikatzeko (hurrengo bertsioan eskaeren birbidaltze automatikoa liderrari gehitzeko konpromisoa). Akatsen tolerantzia da azpimarra nagusia, beraz, DBMSa irakurketa eragiketekin bakarrik eskalatzen da, eta idazketa eragiketak dira botila. Posible da rqlite kluster bat nodo bakar batetik exekutatu eta irtenbide hau HTTP bidez SQLite-ra sarbidea emateko erabil daiteke akatsen tolerantziarik eman gabe.

Nodo bakoitzeko SQLite datuak ez dira fitxategi batean gordetzen, memorian baizik. Raft protokoloaren ezarpenaren geruza mailan, datu-basean aldaketak eragiten dituzten SQLite komando guztien erregistroa gordetzen da. Erregistro hau errepliketan erabiltzen da (erreplikazioa beste nodo batzuetan eskaerak erreproduzitzeko mailan), nodo berri bat abiaraztean edo konektagarritasun-galeratik berreskuratzen. Erregistroaren tamaina murrizteko, paketatze automatikoa erabiltzen da, aldaketa kopuru jakin baten ondoren hasten dena eta diskoan argazki bat konpontzera eramaten duena, eta horren harira erregistro berri bat mantentzen hasten da (datu-basearen egoera memorian). argazkiaren + metatutako aldaketa-erregistroaren berdina da).

rqlite-ren ezaugarriak:

  • Kluster bat zabaltzeko erraza da, SQLite instalazio bereizi beharrik gabe.
  • Erreplikatutako SQL biltegiratzea azkar lortzeko gaitasuna.
  • Lan-proiektuetan erabiltzeko prest (Ekoizpen maila).
  • HTTP(S) API baten presentzia, datuak batch moduan eguneratzeko eta klusterraren nodo nagusia zehazteko aukera ematen duena. Komando-lerroko interfazea eta SQLite-rako eraikitako bezero liburutegi desberdinak erabiltzeko gaitasuna ere eskaintzen du.
  • Beste nodo batzuk identifikatzeko zerbitzu baten erabilgarritasuna, klusterrak era dinamikoan sortzeko aukera emanez.
  • Nodoen arteko datu-trukea enkriptatzeko laguntza.
  • Irakurtzean datuen garrantzia eta koherentzia egiaztatzeko maila konfiguratzeko gaitasuna.
  • Nodoak irakurtzeko soilik moduan konektatzeko aukerako gaitasuna, adostasuna zehazten parte hartzen ez dutenak eta irakurketa eragiketetarako klusterraren eskalagarritasuna areagotzeko erabiltzen direnak.
  • Eskaera batean komandoak konbinatzean oinarritutako zure transakzio-modu propiorako laguntza (BEGIN, COMMIT, ROLLBACK, SAVEPOINT eta RELEASE-n oinarritutako transakzioak ez dira onartzen).
  • Babeskopia beroak sortzeko laguntza.

Bertsio berriak arkitektura-aldaketa esanguratsuak sartzen ditu klusterraren fidagarritasuna areagotzeko helburuarekin, irakurketa eta idazketa eskaerak kluster nodo egokietara bideratzeko prozesua hobetuz. rqlite nodoek Raft protokoloak nodoen artean ezarritako TCP konexioak erabiliz hainbat konexio logiko multiplexa ditzakete. Eskaera batek lider-aginpidea behar badu baina bigarren nodo batera bidaltzen bada, bigarren nodoak liderren helbidea zehaztu eta bezeroari hel diezaioke Raft-en adostasun-kalkuluak egin gabe.

Aldaketak metadatuak sinkronizatzeko osagai bereizi baten beharra ere ezabatu zuen eta Raft egoera eta metadatuen kudeaketa bereizia ezabatu zuen. Bigarren mailako nodoek orain nodo liderrari eskaerak bidaltzen dizkiote behar denean bakarrik, nodo nagusiaren helbidea aurkitu behar dutenean. APIak klusterreko beste nodoen egoerari buruzko informazioa lortzeko gaitasuna ematen du. ".sysdump" komandoa komando lerroko interfazean gehitu da.

Iturria: opennet.ru

Gehitu iruzkin berria