Nowy SQL - NewSQL
NewSQL to klasa systemów zarządzania relacyjnymi bazami danych, które mają na celu zapewnienie skalowalności systemów NoSQL dla obciążeń przetwarzania transakcji online (OLTP) przy jednoczesnym zachowaniu gwarancji ACID tradycyjnego systemu bazodanowego.
Wiele systemów korporacyjnych obsługujących szeroko zakrojone dane (np. systemy przetwarzania finansów i zamówień) jest zbyt dużych dla konwencjonalnych relacyjnych baz danych, ale ma wymagania dotyczące transakcji i spójności, które nie są praktyczne w przypadku systemów NoSQL. Jedyną opcją dostępną wcześniej dla tych organizacji było albo zakup mocniejszych komputerów, albo opracowanie niestandardowego oprogramowania pośredniczącego, które rozdziela żądania przez konwencjonalny system DBMS . Oba podejścia wiążą się z wysokimi kosztami infrastruktury i/lub kosztami rozwoju. Systemy NewSQL próbują pogodzić konflikty.
Historia
Termin ten został po raz pierwszy użyty przez analityka 451 Group , Matthew Asletta, w artykule badawczym z 2011 roku omawiającym powstanie nowej generacji systemów zarządzania bazami danych. Jednym z pierwszych systemów NewSQL był równoległy system baz danych H-Store .
Aplikacje
Typowe aplikacje charakteryzują się dużymi wolumenami transakcji OLTP . transakcje OLTP;
- są krótkotrwałe (tj. brak stoisk użytkowników)
- dotykać małych ilości danych na transakcję
- użyj indeksowanych wyszukiwań (bez skanowania tabeli)
- mieć małą liczbę formularzy (mała liczba zapytań z różnymi argumentami).
Jednak niektóre obsługują aplikacje hybrydowego przetwarzania transakcyjnego/analitycznego (HTAP). Takie systemy poprawiają wydajność i skalowalność dzięki pominięciu odzyskiwania wagi ciężkiej lub kontroli współbieżności .
Lista baz danych NewSQL
- Klaster
- NuoDB
- VoltDB
- SingleStore był wcześniej znany jako MemSQL.
- Elastyczna baza danych TransLattice
- Pivotal GemFire XD
- Apache Trafodion
- TokuDB
- Aktywne przestrzenie TIBCO
- Klucz Google
- KaraluchDB
- TiDB
- Amazonka zorza polarna
Cechy
Dwie wspólne cechy wyróżniające rozwiązania bazodanowe NewSQL to obsługa skalowalności online baz danych NoSQL oraz relacyjny model danych (w tym spójność ACID) wykorzystujący SQL jako podstawowy interfejs.
Systemy NewSQL można luźno podzielić na trzy kategorie:
Nowe architektury
Systemy NewSQL przyjmują różne architektury wewnętrzne. Niektóre systemy wykorzystują klaster węzłów współdzielonych , w którym każdy węzeł zarządza podzbiorem danych. Obejmują one komponenty, takie jak rozproszona kontrola współbieżności , kontrola przepływu i rozproszone przetwarzanie zapytań.
Silniki SQL
Druga kategoria to zoptymalizowane silniki pamięci masowej dla SQL . Systemy te zapewniają ten sam interfejs programistyczny co SQL, ale skalują się lepiej niż wbudowane silniki.
Przezroczyste sharding
Systemy te automatycznie dzielą bazy danych na wiele węzłów przy użyciu algorytmu konsensusu Raft lub Paxos .
Zobacz też
- Przetwarzanie transakcji
- Partycja (baza danych)
- Architektura rozproszonej relacyjnej bazy danych
- Rozproszony SQL