Opublikowano DBMS immudb 1.0, zapewniający ochronę przed uszkodzeniem danych

Wprowadzono znaczącą wersję systemu DBMS immudb 1.0, gwarantującą niezmienność i zachowanie wszystkich kiedykolwiek dodanych danych, a także zapewniającą ochronę przed zmianami wstecznymi i zapewniającą możliwość kryptograficznego potwierdzenia własności danych. Początkowo projekt rozwijał się jako wyspecjalizowany magazyn NoSQL, który manipuluje danymi w formacie klucz/wartość, ale począwszy od wersji 1.0 immudb jest pozycjonowany jako pełnoprawny system DBMS z obsługą SQL. Kod projektu napisany jest w Go i rozpowszechniany na licencji Apache 2.0.

Informacje w immudb przechowywane są w oparciu o strukturę przypominającą blockchain, która gwarantuje integralność całego łańcucha istniejących rekordów i nie pozwala na zmianę już przechowywanych danych ani wymianę/wstawienie wpisu do historii transakcji. Pamięć obsługuje jedynie dodawanie nowych danych, bez możliwości usunięcia lub zmiany już dodanych informacji. Próba zmiany rekordów w SZBD prowadzi jedynie do zapisania nowej wersji rekordu, stare dane nie zostają utracone i pozostają dostępne w historii zmian.

Co więcej, w odróżnieniu od typowych rozwiązań opartych na blockchainie, immudb pozwala na osiągnięcie wydajności na poziomie milionów transakcji na sekundę i może służyć do uruchamiania lekkich usług lub osadzania jego funkcjonalności w aplikacjach w postaci biblioteki.

Opublikowano DBMS immudb 1.0, zapewniający ochronę przed uszkodzeniem danych

Wysoką wydajność osiąga się poprzez zastosowanie drzewa LSM (Log-structured merge-tree) z logiem wartości, które zapewnia szybki dostęp do rekordów przy dużej intensywności dodawania danych. Aby zachować integralność magazynu, dodatkowo wykorzystywana jest struktura drzewiasta zwana Merkle Tree, w której każda gałąź weryfikuje wszystkie leżące u jej podstaw gałęzie i węzły dzięki wspólnemu (drzewu) haszowaniu. Posiadając końcowy hash użytkownik może zweryfikować poprawność całej historii operacji, a także poprawność przeszłych stanów bazy danych (hash weryfikacyjny root nowego stanu bazy wyliczany jest z uwzględnieniem stanu przeszłego ).

Klienci i audytorzy otrzymują kryptograficzny dowód własności i integralności danych. Stosowanie kryptografii kluczem publicznym nie wymaga od klienta zaufania do serwera, a podłączenie każdego nowego klienta do SZBD zwiększa ogólny poziom zaufania do całej pamięci. Klucze publiczne i listy unieważnionych kluczy są przechowywane w bazie danych, a enklawy Intel SGX można używać podczas wykonywania operacji szyfrowania.

Wśród funkcjonalności systemu DBMS, obsługa SQL, tryb przechowywania kluczy/wartości, indeksy, segmentacja bazy danych (sharding), tworzenie migawek stanu danych, transakcje ACID z obsługą izolacji migawek (SSI), wysoka wydajność odczytu i zapisu, optymalizacje dla wymienia się wydajną pracę na dyskach SSD, obsługę pracy w postaci serwera i wbudowanej biblioteki, obsługę REST API oraz obecność webowego interfejsu do zarządzania. Typowe zastosowania, w których istnieje zapotrzebowanie na systemy DBMS takie jak immudb, obejmują transakcje kartami kredytowymi, przechowywanie kluczy publicznych, certyfikatów cyfrowych, sum kontrolnych i dzienników oraz tworzenie kopii zapasowych ważnych pól w tradycyjnych systemach DBMS. Biblioteki klienckie do pracy z immudb przygotowane są dla Go, Java, .NET, Python i Node.js.

Kluczowe ulepszenia w wersji immudb 1.0:

  • Obsługa SQL z możliwością ochrony wierszy przed ukrytymi modyfikacjami.
  • Tryb TimeTravel, który umożliwia przełączenie stanu bazy danych na określony moment w przeszłości. W szczególności czas cięcia danych można ustawić na poziomie poszczególnych podzapytań, co ułatwia analizę zmian i porównywanie danych.
  • Obsługa protokołu klienta PostgreSQL, który umożliwia korzystanie z istniejących aplikacji i bibliotek przeznaczonych do współpracy z PostgreSQL za pomocą immudb. Oprócz natywnych bibliotek klienckich można używać standardowych bibliotek klienckich Ruby, C, JDBC, PHP i Perl.
  • Konsola internetowa do interaktywnej nawigacji po danych i administrowania systemem DBMS. Za pośrednictwem interfejsu internetowego możesz wysyłać żądania, tworzyć użytkowników i zarządzać danymi. Dodatkowo dostępne jest środowisko edukacyjne Playground.
    Opublikowano DBMS immudb 1.0, zapewniający ochronę przed uszkodzeniem danych
    Opublikowano DBMS immudb 1.0, zapewniający ochronę przed uszkodzeniem danych


    Źródło: opennet.ru

Dodaj komentarz