Baza danych w pamięci - In-memory database

Bazy danych w pamięci ( IMDB , również główny system bazy danych pamięci lub MMDB lub baza rezydentny ) to system zarządzania bazami danych , który opiera się przede wszystkim na głównej pamięci dla przechowywania danych komputerowych . Kontrastuje to z systemami zarządzania bazami danych, które wykorzystują mechanizm pamięci dyskowej . Bazy danych w pamięci są szybsze niż bazy danych zoptymalizowane pod kątem dysków, ponieważ dostęp do dysku jest wolniejszy niż dostęp do pamięci, wewnętrzne algorytmy optymalizacji są prostsze i wykonują mniej instrukcji procesora. Dostęp do danych w pamięci eliminuje czas wyszukiwania podczas odpytywania danych, co zapewnia szybszą i bardziej przewidywalną wydajność niż dysk.

Aplikacje, w których czas reakcji ma kluczowe znaczenie, takie jak te obsługujące sprzęt sieci telekomunikacyjnej i mobilne sieci reklamowe , często korzystają z baz danych z pamięcią główną. IMDB zyskały dużą popularność, szczególnie w obszarze analizy danych , począwszy od połowy 2000 roku - głównie dzięki procesorom wielordzeniowym, które mogą zajmować się dużą pamięcią, oraz dzięki tańszej pamięci RAM .

Potencjalną przeszkodą techniczną związaną z przechowywaniem danych w pamięci jest niestabilność pamięci RAM. W szczególności w przypadku utraty zasilania, celowej lub innej, dane przechowywane w ulotnej pamięci RAM są tracone. Dzięki wprowadzeniu technologii nieulotnej pamięci o dostępie swobodnym bazy danych w pamięci będą mogły działać z pełną prędkością i przechowywać dane w przypadku awarii zasilania.

Obsługa ACID

W najprostszej formie, główne bazy danych pamięci przechowują dane na ulotnych urządzeniach pamięci . Urządzenia te tracą wszystkie zapisane informacje, gdy tracą moc lub są resetowane. W tym przypadku można powiedzieć, że IMDB nie mają wsparcia dla części „trwałości” właściwości ACID (atomowość, konsystencja, izolacja, trwałość). Bazy IMDB oparte na pamięci ulotnej mogą i często obsługują pozostałe trzy właściwości ACID, takie jak atomowość, spójność i izolacja.

Wiele IMDB zwiększyło trwałość dzięki następującym mechanizmom:

  • Pliki migawek , czyli obrazy punktów kontrolnych , które rejestrują stan bazy danych w danym momencie. System zazwyczaj generuje je okresowo lub przynajmniej wtedy, gdy IMDB przeprowadza kontrolowane wyłączenie. Chociaż dają one miarę trwałości danych (ponieważ baza danych nie traci wszystkiego w przypadku awarii systemu), oferują one jedynie częściową trwałość (ponieważ „ostatnie” zmiany zostaną utracone). Aby uzyskać pełną trwałość, wymagają uzupełnienia. z jednym z następujących:
  • Rejestrowanie transakcji , które rejestruje zmiany w bazie danych w pliku dziennika i ułatwia automatyczne odzyskiwanie bazy danych w pamięci.
  • Non-Volatile DIMM ( NVDIMM ), moduł pamięci z interfejsem DRAM, często łączony z pamięcią flash NAND w celu zapewnienia trwałego bezpieczeństwa danych. Pierwsze rozwiązania NVDIMM zostały zaprojektowane z superkondensatorami zamiast baterii jako zapasowe źródło zasilania. Dzięki tej pamięci IMDB może bezpiecznie wznowić działanie ze swojego stanu po ponownym uruchomieniu.
  • Nieulotna pamięć o dostępie swobodnym (NVRAM), zwykle w postaci statycznej pamięci RAM z zasilaniem bateryjnym (RAM bateryjny) lub programowalnej pamięci ROM ( EEPROM ) , która jest wymazywana elektrycznie . Dzięki tej pamięci ponownie uruchamiany system IMDB może przywrócić magazyn danych z ostatniego zgodnego stanu.
  • Implementacje o wysokiej dostępności, które opierają się na replikacji bazy danych , z automatycznym przełączaniem awaryjnym do identycznej rezerwowej bazy danych w przypadku awarii podstawowej bazy danych. Aby zabezpieczyć się przed utratą danych w przypadku całkowitej awarii systemu, replikacja IMDB jest zwykle używana jako dodatek do jednego lub więcej mechanizmów wymienionych powyżej.

Niektóre bazy danych IMDB pozwalają schematowi bazy danych określać różne wymagania dotyczące trwałości dla wybranych obszarów bazy danych - w ten sposób szybciej zmieniające się dane, które można łatwo odtworzyć lub które nie mają znaczenia po zamknięciu systemu, nie musiałyby być kronikowane ze względu na trwałość (chociaż musiałby być replikowany w celu zapewnienia wysokiej dostępności), podczas gdy informacje konfiguracyjne byłyby oznaczane jako wymagające zachowania.

Hybrydy z bazami danych na dysku

Chociaż przechowywanie danych w pamięci zapewnia większą wydajność, jest to kosztowna metoda przechowywania danych. Podejściem do wykorzystania zalet przechowywania w pamięci przy jednoczesnym ograniczeniu jego kosztów jest przechowywanie najczęściej używanych danych w pamięci, a reszta na dysku. Ponieważ nie ma sztywnego rozróżnienia, które dane powinny być przechowywane w pamięci, a które na dysku, niektóre systemy aktualizują się dynamicznie w miejscu przechowywania danych w oparciu o wykorzystanie danych. To podejście różni się nieco od buforowania , w którym ostatnio otwierane dane są buforowane, w przeciwieństwie do danych, do których najczęściej uzyskiwany jest dostęp, są przechowywane w pamięci.

Elastyczność podejść hybrydowych pozwala znaleźć równowagę między:

  • wydajność (która jest zwiększana przez sortowanie, przechowywanie i pobieranie określonych danych w całości w pamięci, zamiast przechodzenia na dysk)
  • koszt, ponieważ tańszy dysk twardy można zastąpić większą ilością pamięci
  • trwałość
  • format, ponieważ chipy RAM nie mogą zbliżyć się do gęstości małego dysku twardego

W branży przetwarzania w chmurze pojawiły się terminy „temperatura danych” lub „gorące dane” i „zimne dane”, które opisują sposób przechowywania danych w tym zakresie. Gorące dane są używane do opisywania krytycznych danych, do których należy często uzyskiwać dostęp, podczas gdy zimne dane opisują dane, które są potrzebne rzadziej i mniej pilnie, takie jak dane przechowywane do celów archiwizacji lub audytu. Gorące dane powinny być przechowywane w sposób umożliwiający szybkie odzyskiwanie i modyfikację, często realizowane przez przechowywanie w pamięci, ale nie zawsze. Z drugiej strony zimne dane mogą być przechowywane w bardziej opłacalny sposób i przyjmuje się, że dostęp do danych będzie prawdopodobnie wolniejszy w porównaniu do gorących danych. Chociaż opisy te są przydatne, nie ma konkretnej definicji „gorącego” i „zimnego”.

Wydajność produkcji to kolejny powód, dla którego warto wybrać połączony system baz danych w pamięci / na dysku. Niektóre linie produktów urządzeń, zwłaszcza w elektronice użytkowej , obejmują niektóre jednostki ze stałą pamięcią, a inne wykorzystują pamięć do przechowywania ( na przykład dekodery ). Jeśli takie urządzenia wymagają systemu bazy danych, producent może zastosować hybrydowy system bazy danych po niższych i wyższych kosztach oraz przy mniejszym dostosowywaniu kodu, zamiast używać oddzielnych baz danych w pamięci i na dysku, odpowiednio, dla swoich bezdyskowych i dyskowych baz danych. produkty dyskowe.

Pierwszy silnik bazy danych obsługujący zarówno tabele w pamięci, jak i na dysku w jednej bazie danych, WebDNA , został wydany w 1995 roku.

Pamięć do przechowywania

Inna odmiana dotyczy dużych ilości pamięci nieulotnej na serwerze, na przykład układów pamięci flash jako pamięci adresowalnej, a nie w postaci macierzy dyskowych. Baza danych w tej formie pamięci łączy w sobie bardzo dużą szybkość dostępu z trwałością po ponownym uruchomieniu i utracie mocy.

Zobacz też

Uwagi

Bibliografia

  • Jack Belzer. Encyklopedia informatyki i technologii - Tom 14: Very Large Data Base Systems to Zero-Memory and Markov Information Source . ISBN Marcel Dekker Inc.   978-0-8247-2214-2 .

Linki zewnętrzne