Dostępna jest Dqlite 1.0, rozproszona wersja SQLite firmy Canonical

Kanoniczny опубликовала znacząca publikacja projektu Dqlite 1.0 (Distributed SQLite), który opracowuje wbudowany silnik SQL zgodny z SQLite, który obsługuje replikację danych, automatyczne odzyskiwanie po awariach i odporność na błędy poprzez dystrybucję procedur obsługi do wielu węzłów. DBMS jest zaimplementowany w postaci biblioteki C dołączonej do aplikacji i dystrybuowane przez na licencji Apache 2.0 (oryginalny SQLite jest udostępniany w domenie publicznej). Dostępne powiązania językowe Go.

Biblioteka jest dodatkiem do istniejącej bazy kodu SQLite, który dodaje obsługę protokołów sieciowych w celu łączenia wielu instancji aplikacji działającej na różnych hostach. Aplikacja skompilowana za pomocą Dqlite może działać jako samowystarczalny klaster odporny na błędy, niezależny od zewnętrznych systemów DBMS. W praktyce Dqlite jest wykorzystywane przez firmę Canonical w swoim systemie zarządzania kontenerami LXD. Wśród obszarów zastosowań biblioteki wymienia się także tworzenie odpornych na awarie urządzeń i procesorów Internetu Rzeczy w systemach
krawędź- obliczenia.

Aby zapewnić spójność replikacji danych, stosowana jest metoda konsensusu oparta na algorytmie Raft, który jest używany w projektach takich jak etcd, RethinkDB, CockroachDB i OpenDaylight. Dqlite korzysta z własnej implementacji asynchronicznej Rzemiosło, napisany w języku C. Gotowe biblioteki służą do multipleksowania przetwarzania połączeń i organizowania uruchamiania współprogramów libacja и biblioteka.

W porównaniu z podobnym projektem rqlite,Dqlite zapewnia pełną obsługę transakcyjną, może komunikować się z dowolnym projektem w języku C, pozwala na użycie funkcji time() i wykorzystuje replikację opartą na ramkach zamiast replikacji opartej na translacji SQL.

Funkcje Dqlite:

  • Wykonuj wszystkie operacje dyskowe i sieciowe asynchronicznie;
  • Dostępność zestawu testowego potwierdzającego poprawność danych;
  • Niskie zużycie pamięci i wydajna wymiana danych w sieci;
  • Trwałe przechowywanie bazy danych i dziennika transakcji na dysku (z możliwością buforowania w pamięci);
  • Szybkie przywracanie sprawności po awariach;
  • Stabilny klient CLI w języku Go, za pomocą którego można inicjować bazę danych, konfigurować replikację oraz łączyć/rozłączać węzły;
  • Obsługuje architektury ARM, X86, POWER i IBM Z;
  • Implementacja algorytmu Raft jest zoptymalizowana pod kątem minimalizacji opóźnień przy realizacji transakcji.

Źródło: opennet.ru

Dodaj komentarz