Przetwarzanie in memory

Podstawową zaletą przetwarzania danych w pamięci, widoczną od razu, jest o wiele wyższa wydajność. Możliwa staje się analiza danych online, bez konieczności zasilania hurtowni.

Pamięć staje się coraz tańsza, w serwerach instaluje się jej coraz więcej. Aplikacja, która pracuje w całości w pamięci, działa szybciej od tej, która przy pozyskiwaniu danych musi skorzystać z tradycyjnej bazy danych, przechowującej informacje na dysku.

Wolfram Jost, CTO firmy Software AG wyjaśnia: "Pamięć RAM jest najszybszym nośnikiem danych. Znajduje się najbliżej procesora, bliżej niego jest tylko pamięć podręczna, ale nie nadaje się ona do przechowywania danych. Przeniesienie przetwarzania do pamięci RAM daje istotne przyspieszenie pracy aplikacji, niekiedy różnica jest spektakularna".

Nie tak prosto przenieść starą bazę

Tradycyjne bazy danych zostały zaprojektowane pod kątem optymalizacji pracy bazy z dyskami mechanicznymi przy ograniczeniach ilości dostępnej pamięci operacyjnej. Optymalizacja przeprowadzana przez lata wypracowała sposoby minimalizacji liczby stron pamięci odczytywanych z dysków do RAM. Jeśli założymy działanie odwrotne, czyli sprawne przechowywanie danych w pamięci RAM, takie algorytmy nie mają zastosowania.

Zrównoleglenie i kompresja

Bazy danych nie były początkowo projektowane pod kątem zrównoleglenia zapytań na wiele węzłów. Tymczasem rozproszenie jest niezbędne do uzyskania skalowalności poziomej, co ma znaczenie przy systemach przetwarzających bardzo duże ilości danych.

W bazach in-memory wprowadza się także kompresję danych, najczęściej w kolumnach. Narzut związany z kompresją jest bardzo mały, gdyż dzisiejsze procesory mają sprzętową akcelerację wykorzystywanych tam instrukcji.

W przypadku typowych aplikacji ERP zaledwie 10% atrybutów zapisanych w kolumnie tabeli bywa regularnie wykorzystywanych do zapytań SQL. Wykorzystując nowoczesne zarządzanie danymi, tradycyjna baza o rozmiarze 35 GB może zmieścić się w zasobie pamięci RAM o pojemności 800 MB przy wykorzystaniu optymalnych narzędzi kompresji kolumnowej. Kompresja na poziomie wierszy sprawdza się gorzej.

Dużo pamięci dla aplikacji

Pierwsze zastosowanie in-memory w firmach to poprawa pracy już działającego oprogramowania, szczególnie tego, które obecnie jest bardzo obciążone.

"Za pomocą Terracotta Ehcache można uzyskać dziesięciokrotne przyspieszenie pracy aplikacji napisanych w języku Java i odciążenie głównej bazy danych firmy. Dalszą poprawę pracy aplikacji w Javie można uzyskać za pomocą naszej technologii BigMemory, która wyeliminuje przerwy na odśmiecanie pamięci czy kłopotliwą konfigurację garbage collectora" - mówi Wolfram Jost.

Z kolei firma SAP sukcesywnie pracuje nad przystosowaniem wszystkich swoich najważniejszych programów do współpracy z bazą HANA, by przyspieszyć ich pracę.

Należy jednak pamiętać, że dzisiejsze aplikacje nie były projektowane pod kątem pracy w środowiskach in-memory. Dopiero następna generacja oprogramowania będzie mogła w pełni wykorzystać możliwości, które oferuje przetwarzanie w pamięci. Oprogramowanie to będzie wykorzystywać nie tylko bazę danych, ale również kompletną platformę.

Więcej niż tylko dane

Baza danych rzadko pracuje w oderwaniu od aplikacji biznesowych, na styku obu stron występuje łącznik, taki jak serwery aplikacyjne lub oprogramowanie middleware. Tam też występuje duże zapotrzebowanie na moc obliczeniową, a także na szybki dostęp do danych. Wolfram Jost informuje: "Uważamy, że technologia in-memory nie powinna kończyć się na bazie danych. Posiadamy kompletną platformę middleware w całości pracującą w pamięci. Łączymy składowanie danych, motor przetwarzania procesów oraz magistralę o niskich opóźnieniach - wszystko bezpośrednio w RAM".

Przeniesienie motoru procesów do pamięci RAM sprawia, że rozwiązania klasy Big Data mogą przetwarzać dane w czasie rzeczywistym. Zatem natychmiast po aktualizacji porcji danych w pamięci motor przetwarzania zdarzeń może dawać aktualne wyniki zapytań. Połączenie szybką magistralą danych sprawią, że aplikacje webowe będą działać znacznie szybciej niż w tradycyjnym modelu i dostarczane dane będą zawsze aktualne. Tego nie da się osiągnąć w starszym modelu hurtowni danych, gdzie odbywał się proces zasilania hurtowni - ETL (Extract, Transform, Load).

Detekcja nadużyć

Większość banków posiada systemy wykrywania nadużyć, które reagują na zdarzenia zgodnie z opracowanymi regułami. Dzięki przetwarzaniu w pamięci i natychmiastowej aktualizacji reguły wykrywania nadużyć mogą być stosowane niezwłocznie po wpłynięciu porcji danych. Ponieważ system działa od razu (niekiedy bywa nazywany in-flight analysis - analiza w locie), może analizować wpływający strumień informacji, wykrywając podejrzane zdarzenia - na przykład kolejne transakcje bankomatowe w różnych miejscach, w krótkim odstępie czasu albo różne transakcje z tego samego miejsca w egzotycznej dla klientów banku lokalizacji. Hurtownia danych i systemy analityczne zasilane przez ETL również wykryłyby podejrzane transakcje, ale dopiero po uruchomieniu zadań wsadowych, czyli zazwyczaj następnego dnia. Przy przetwarzaniu in-memory wstępne oszacowanie ryzyka danej transakcji można osiągnąć natychmiast.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200