W SQLite działają już na zapleczu HCTree z obsługą zapisów równoległych

SQLite

to zgodny z ACID system zarządzania relacyjnymi bazami danych, zawarty w stosunkowo niewielkiej bibliotece napisanej w języku C

Twórcy projektu SQLite rozpoczął testowanie eksperymentalnego zaplecza HCtree który obsługuje blokowanie na poziomie wierszy i zapewnia wysoki poziom równoległości w przetwarzaniu zapytań.

Jeśli chodzi o nowy backend, w którym pracują, wspomina się, że this ma na celu poprawę efektywności wykorzystania SQLite w systemach klient-serwer Muszą przetwarzać dużą liczbę jednoczesnych żądań zapisu do bazy danych.

Te pierwotnie używane struktury b-drzewa w SQLite do przechowywania danych Nie są przeznaczone do tego typu obciążeń., co ogranicza SQLite do zapisu tylko do jednego strumienia. W ramach eksperymentu programiści zaczęli opracowywać alternatywne rozwiązanie wykorzystujące struktury HCtree do przechowywania, bardziej odpowiednie do operacji zapisu równoległego.

Projekt HC-tree (hctree) jest próbą opracowania nowego backendu bazy danych, który ulepsza zwykły SQLite w następujący sposób:

Ulepszona współbieżność: Użycie rozszerzenia begin-concurrent zmienia to tak, że może być wykonywane współbieżnie przy użyciu optymistycznego blokowania na poziomie strony. Poprawia to nieco współbieżność, ale blokowanie na poziomie strony może wykrywać konflikty między logicznie niezależnymi transakcjami, a operacje COMMIT nadal wymagają serializacji.

Obsługa replikacji: Stock SQLite obsługuje przedłużenie sesji, co umożliwia serializację zawartości zatwierdzonej transakcji w celu przesłania i zastosowania w drugiej bazie danych. Hctree integruje to z zapleczem bazy danych i dodaje obsługę stosowania takich transakcji do baz danych obserwujących w konfiguracjach lider-podążający. W takim przypadku transakcje otrzymane z wiodącej bazy danych mogą być zastosowane szybciej i z większą współbieżnością niż te, które pierwotnie zostały zastosowane do wiodącej bazy danych, ponieważ nie walidacja transakcji.

Eliminacja ograniczeń rozmiaru bazy danych: Stock SQLite używa 32-bitowych numerów stron. Używając domyślnego rozmiaru strony 4 KiB, prowadzi to do maksymalnego rozmiaru bazy danych 2^44 bajtów lub 16 TiB.

Aby obsługiwać kilka operacji jednocześnie, Dzienniki HCtree wykorzystują mechanizm separacji transakcji który używa blokad na poziomie strony, podobnie jak MVCC (kontrola zawierania wielu wersji), ale wykorzystuje kontrolę transakcji opartą na zakresach kluczy i zakresach kluczy zamiast zestawów stron.

Operacje odczytu i zapisu są wykonywane względem migawki bazy danych, której zmiany stają się widoczne dla głównej bazy danych dopiero po zakończeniu transakcji.

Klienci mogą używać trzech operacji do otwierania transakcji:

  • «ZACZYNAĆ«: Transakcje nie uwzględniają danych dostępowych innych klientów. Jeśli w ramach transakcji wykonywane są operacje zapisu, transakcja może zostać zatwierdzona tylko wtedy, gdy w czasie jej wykonywania nie było żadnych innych operacji zapisu w bazie danych.
    «ROZPOCZNIJ RÓWNOCZESNIE«: Transakcje zbierają informacje o dostępie innych klientów. Jeśli w ramach transakcji wykonywane są operacje zapisu, transakcja może zostać zatwierdzona, jeśli od czasu utworzenia migawki w bazie danych zostały zatwierdzone inne transakcje.
    «ROZPOCZNIJ EKSKLUZYWNIE«: po otwarciu transakcji blokuje operacje innych transakcji do czasu jej zakończenia.

HCtree obsługuje replikację master-slave, która pozwala przenosić transakcje do innej bazy danych i synchronizować drugorzędne bazy danych z podstawową bazą danych.

HCtree usuwa również limit rozmiaru bazy danych: zamiast 32-bitowych identyfikatorów stron danych, HCtree używa identyfikatorów 48-bitowych, co zwiększa maksymalny rozmiar bazy danych z 16 tebibajtów do 1 eksbibajta (milion tebibajtów).

Oczekuje się, że wydajność SQLite z backendem HCtree będzie co najmniej tak dobra, jak klasyczny jednowątkowy backend. Klienci SQLite z obsługą HCtree będą mogli uzyskać dostęp zarówno do baz danych HC-tree, jak i starszych baz danych SQLite.

źródło: https://sqlite.org/


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.