Dqlite 1.0, Canonical-en SQLite-ren bertsio banatua dago eskuragarri

Kanonikoa argitaratuko proiektuaren kaleratze esanguratsua Dqlite 1.0 (Distributed SQLite), SQLite-rekin bateragarria den kapsulatutako SQL motor bat garatzen duena, datuen erreplikazioa, hutsegiteetatik automatikoki berreskuratzea eta akatsen tolerantzia onartzen dituena kudeatzaileak nodo anitzetan banatuz. DBMS aplikazioei erantsitako C liburutegi moduan inplementatzen da eta arabera banatuta Apache 2.0 lizentziapean (jatorrizko SQLite domeinu publikoan ematen da). Hizkuntza loturak eskuragarri Go.

Liburutegia lehendik dagoen SQLite kode-basearen gehigarri bat da, sareko protokoloaren euskarria gehitzen duena ostalari ezberdinetan exekutatzen den aplikazio baten instantzia anitz interkonektatzeko. Dqlite-rekin konpilatutako aplikazio batek akatsak jasan ditzakeen kluster autosufiziente gisa funtziona dezake, kanpoko DBMSetatik independentea. Praktikan, Dqlite Canonical-ek erabiltzen du edukiontziak kudeatzeko sisteman LXD. Liburutegiaren aplikazio-eremuen artean, akatsekiko tolerantzia duten gauzen Interneteko gailuak eta sistemetan prozesadoreak sortzea ere aipatzen da.
Edge- kalkuluak.

Datuen erreplikazioan koherentzia bermatzeko, algoritmoetan oinarritutako adostasun-metodo bat erabiltzen da baltsa, etcd, RethinkDB, CockroachDB eta OpenDaylight bezalako proiektuetan erabiltzen dena. Dqlite-k bere ezarpen asinkronoa erabiltzen du C-baltsa, C hizkuntzan idatzia. Prestatutako liburutegiak konexioen prozesamendua multiplexatzeko eta koroutinen abiarazte antolatzeko erabiltzen dira libuv ΠΈ libco.

Antzeko proiektu batekin alderatuta rqliteDqlite-k transakzio-laguntza osoa eskaintzen du, edozein C proiekturekin komunikatu daiteke, time() funtzioa erabiltzea ahalbidetzen du eta markoetan oinarritutako erreplikazioa erabiltzen du SQL itzulpenean oinarritutako erreplikazioaren ordez.

Dqlite-ren ezaugarriak:

  • Egin disko eta sareko eragiketa guztiak modu asinkronoan;
  • Datuen zuzentasuna baieztatzeko proba multzo baten erabilgarritasuna;
  • Memoria-kontsumo txikia eta datu-truke eraginkorra sarean;
  • Datu-basearen biltegiratze iraunkorra eta transakzioen erregistroa diskoan (memorian cachean gordetzeko aukerarekin);
  • Porrotetatik azkar berreskuratzea;
  • CLI bezero egonkorra Go hizkuntzan, datu-basea hasieratzeko, erreplikazioa konfiguratzeko eta nodoak konektatzeko/deskonektatzeko erabil daitekeena;
  • ARM, X86, POWER eta IBM Z arkitekturak onartzen ditu;
  • Raft algoritmoaren ezarpena optimizatuta dago transakzioak egiteko orduan atzerapenak minimizatzeko.

Iturria: opennet.ru

Gehitu iruzkin berria