Duża baza w pamięci

Współczesne aplikacje z dziedziny baz danych, ktorych znaczenie stale rośnie w skutecznym konkurowaniu firm na rynku, są coraz bardziej ograniczone wydajnością nawet największych dostępnych platform sprzętowych. W miarę jak rozszerzają się bazy danych a użytkownicy wymagają coraz mniejszego czasu dostępu, rosną wymagania sprzętowe i systemu zarządzania bazami danych.

Współczesne aplikacje z dziedziny baz danych, ktorych znaczenie stale rośnie w skutecznym konkurowaniu firm na rynku, są coraz bardziej ograniczone wydajnością nawet największych dostępnych platform sprzętowych. W miarę jak rozszerzają się bazy danych a użytkownicy wymagają coraz mniejszego czasu dostępu, rosną wymagania sprzętowe i systemu zarządzania bazami danych.

Jednym z rozwiązań tego problemu, proponowanym wspólnie przez Digital i Oracle, jest tak zwana duża baza w pamięci - Large-scale In-Memory Database (LIMD). System zarządzania bazą danych i sprzęt, na którym system działa dopuszczają korzystanie z dużej bazy bezpośrednio z pamięci, nie zaś z dysku. Powoduje to zwiększenie szybkości działania o rząd wielkości lub więcej dla dużych baz i o kilka rzędów wielkości dla baz mniejszych, mieszczących się całkowicie w pamięci komputera.

Co to jest LIMD?

Jest to taka technologia obsługi baz danych, która pozwala na utrzymywanie w pamięci głównej komputera bazy o pojemności co najmniej 5 GB (tak, tak 5 gigabajtów!), połączona z systemem zarządzania bazami danych, wykorzystującym fakt przechowywania danych w pamięci dla uzyskania dużej wydajności bazy.

W nie tak znów odległej przeszłości systemy komputerowe z pamięcią RAM o dużych rozmiarach były rzadkością. Systemy 32-bitowe nie mogą adresować bezpośrednio więcej niż 4 GB pamięci; w praktyce mniej, gdyż zwykle w pamięci odwzorowane są także urządzenia we/wy, których adresy ograniczają ten rozmiar. Można przyjąć, że 1 lub 2 GB to maksymalny rozmiar pamięci, efektywnie adresowanej przez procesory 32-bitowe (486, Pentium, Motorola 68K, wiele procesorów w minikomputerach).

Zwiększenie rozmiaru adresowanej pamięci jest możliwe w procesorach 64-bitowych, np. Digital Alpha AXP, MIPS R4X00. Rozmiar adresowanej pamięci nie jest ograniczony przez architekturę procesora, ale jedynie przez ciągle malejące koszty pamięci. Jeżeli więc zależy nam na uzyskaniu szybkości dostępu do danych większego o co najmniej dwa rzędy wielkości, należy skorzystać z możliwości oferowanych przez Digital i Oracle.

Jakie korzyści?

Technologia LIMD pozwala na wykonywanie w pamięci takich operacji, jak łączenie tabel. Przez umieszczenie wyniku bezpośrednio w pamięci unika się najbardziej czasochłonnych operacji we/wy na dysk. Operowanie na danych bezpośrednio w pamięci zwalnia system zarządzania bazą danych od zajmowania się operacjami dyskowymi i upraszcza optymalizację zapytań, dając zysk w postaci zwiększonej wydajności.

Jak podają firmy Oracle i Digital, zależnie od rodzaju aplikacji czas dostępu do danych maleje 20-40 razy, w porównaniu z typowym systemem, w którym dane są przechowywane na dysku. Niektóre operacje łączenia wielu tabel wykonuje się nawet 100 razy szybciej.

Kontrpropozycje

Przyśpieszenie operacji na dużych bazach danych jest priorytetowym zadaniem każdego producenta sprzętu i systemów do zarządzania bazami danych. Proponowane rozwiązania polegają na stosowaniu komputerów z wieloprocesorowym przetwarzaniem symetrycznym (SMP), komputerów masowo równoległych (MPP) i tzw. gron komputerów (cluster). Systemy SMP i MPP nie dają istotnych korzyści w zakresie dostępu do danych, gdyż korzystają ze wspólnego zestawu dysków, ograniczającego wydajność bazy.

Wydajność systemów SMP nie przyrasta liniowo ze wzrostem liczby procesorów a współczesne systemy operacyjne nie są w stanie obsługiwać więcej niż 30 procesorów.

Wydajność systemów MPP przyrasta prawie liniowo ze wzrostem liczby procesorów. Konieczność koordynacji kopii danych na poszczególnych dyskach i w pamięci poszczególnych procesorów, nakłada spore ograniczenia, obciąża procesor i zmniejsza wydajność bazy.

Rozwiązanie w postaci grona komputerów daje istotne zwiększenie szybkości dostępu (każdy komputer grona korzysta z własnego zestawu dysków), ale zmniejsza czas dostępu do danych jedynie przy niektórych operacjach, możliwych do wykonania równolegle na wielu kopiach bazy lub jej częściach.