Dostępny Dqlite 1.0, rozproszona wersja SQLite od firmy Canonical

Firma Canonical opublikowała znacząca wersja projektu Dqlite 1.0 (Rozproszony SQLite), rozwijający zgodny z SQLite wbudowany silnik SQL, obsługujący replikację danych, automatyczne przywracanie po awariach oraz zapewniający odporność na awarie poprzez rozdzielenie procesorów na kilka węzłów. DBMS jest zrealizowane w formie dołączanej do aplikacji biblioteki C i rozpowszechniany na licencji Apache 2.0 (oryginalny SQLite jest dostępny jako domena publiczna). Dostępne są powiązania dla języka Go.

Biblioteka jest nakładką na istniejącą bazę kodu SQLite, która dodaje wsparcie dla protokołu sieciowego do łączenia kilku instancji aplikacji działających na różnych hostach. Aplikacja zbudowana z Dqlite może działać jako samowystarczający, odporny na awarie klaster, niezależny od zewnętrznych baz danych. W praktyce Dqlite jest wykorzystywane przez firmę Canonical w systemie zarządzania kontenerami LXD. W obszarach zastosowań biblioteki wspomniano również o tworzeniu odpornych na awarie urządzeń internetu rzeczy oraz procesorów w systemach
Edge-obliczeń.

Aby zapewnić spójność przy replikacji danych, stosuje się metodę osiągania konsensusu opartą na algorytmie Raft, który jest używany w takich projektach, jak etcd, RethinkDB, CockroachDB i OpenDaylight. W Dqlite stosuje się własną asynchroniczną implementację C-raft, napisaną w języku C. Do multiplexowania obsługi połączeń i organizacji uruchamiania współprogramów wykorzystywane są gotowe biblioteki libuv i libco.

W porównaniu do podobnego projektu rqlite, Dqlite zapewnia pełne wsparcie dla transakcji, może łączyć się z dowolnymi projektami w języku C, pozwala na użycie funkcji time() i stosuje replikację opartą na klatkach zamiast replikacji opartej na przesyłaniu zapytań SQL.

Cechy Dqlite:

  • Wykonywanie wszystkich operacji dyskowych i sieciowych w trybie asynchronicznym;
  • Posiadanie zestawu testowego do potwierdzania poprawności danych;
  • Niskie zużycie pamięci i efektywna wymiana danych w sieci;
  • Stałe przechowywanie na dysku bazy danych i dziennika transakcji (z możliwością buforowania w pamięci);
  • Szybkie przywracanie po awariach;
  • Stabilny klient CLI napisany w Go, który można użyć do inicjalizacji bazy danych, konfiguracji replikacji oraz podłączania/odłączania węzłów;
  • Wsparcie dla architektur ARM, X86, POWER i IBM Z;
  • Implementacja algorytmu Raft została zoptymalizowana w celu minimalizacji opóźnień podczas zatwierdzania transakcji.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster