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

Banatutako DBMS rqlite 7.0 kaleratu zen, SQLite biltegiratze-motor gisa erabiltzen duena eta kluster baten lana elkarrekin sinkronizatuta dauden biltegietatik 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 kontrolatzailea erabiltzen ditu, eta horien 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 berreskuratzeko. Erregistroaren tamaina murrizteko, paketatze automatikoa erabiltzen da, aldaketa kopuru jakin baten ondoren hasten dena eta argazki bat finkatzea dakar, eta horri dagokionez erregistro berri bat mantentzen hasten da (memorian dagoen datu-basearen egoera da. argazkiaren berdina + metatutako aldaketa-erregistroa).

rqlite-ren ezaugarriak:

  • Kluster bat zabaltzeko erraza da, SQLite instalazio bereizi beharrik gabe.
  • Erreplikatutako SQL biltegiratzea azkar lortzeko gaitasuna.
  • Ekoizpen-proiektuetan erabiltzeko prest (produkzio maila).
  • HTTP(S) API baten presentzia, datuak batch moduan eguneratzeko eta klusterraren nodo nagusia zehazteko aukera ematen duena. Komando-lerroko interfazea eta hainbat programazio-lengoaiarako bezero liburutegiak ere eskaintzen dira.
  • 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.

Argitalpen berrian:

  • rqlite clustering automatikorako euskarria gehitu da, Consul eta etcd banatutako biltegian funtziona dezakeen nodoak hautemateko zerbitzu berri bat erabiliz. Zerbitzuak rqlite nodoei automatikoki elkar aurkitzea ahalbidetzen du - administratzaileak hainbat nodo abiarazi besterik ez ditu zerbitzari desberdinetan, Consul edo etcd klusterraren helbide komuna zehaztuz (adibidez, "example.com:8500"), eta nodoek egingo dute. automatikoki kluster batean konbinatuko dira. Nodo nagusiak aldian-aldian bere helbideari buruzko informazioa eguneratzen du Consul edo etcd biltegian, eta horri esker, gero liderra alda dezakezu beste nodoak birkonfiguratu beharrik gabe, baita nodo berriak gehitzea ere liderra aldatu ondoren. AWS Lambda-n exekutatzen den Discovery moduko zerbitzua eten egin da.
  • CLI interfazeak hainbat ostalari aldi berean zehaztea ahalbidetzen du; lehenengo nodoa erabilgarri ez badago, hurrengo ostalariekin harremanetan jarriko da.
  • rqlited komando-lerroko argumentuak analizatzeko kodea berriro landu da.
  • Zaharkitutako protobuf paketea eten egin da.
  • Raft protokoloaren ezarpenean erabilitako BoltDB biltegia bbolt-ekin ordezkatu da, etcd proiektuko sardexka.

Iturria: opennet.ru

Gehitu iruzkin berria