Przyszłość w równoległości

Równoległe przetwarzanie danych jedynym lekarstwem na natłok informacji

Równoległe przetwarzanie danych jedynym lekarstwem na natłok informacji

W dzisiejszych czasach, przy olbrzymiej ilości informacji obciążających wielkie systemy relacyjnych baz danych, komputery klasy mainframe nie dają sobie już rady z efektywnym przetwarzaniem transakcji i zapytań. Użytkownicy zmuszeni są kasować część swoich danych, lub przechowywać je na oddzielnych maszynach; wszystko po to, aby przyspieszyć działanie systemu. Takie metody są jednak niedopuszczalne, nie mówiąc już o kosztach jakie ponosi zmuszona do ich stosowania firma. Korzystanie z nowych, szybszych maszyn jednoprocesorowych także nie pomaga; przy takim natłoku informacji równoległe przetwarzanie danych wydaje się jedynym sensownym wyjściem z tej trudnej sytuacji. Takie właśnie rozwiązanie oferuje nowy RDBMS Oracle7.

Przy stosowaniu Oracle7 na serwerach o strukturze równoległej (np. na nCUBE 2E wyposażonym w 100 procesorów), czas przetwarzania danych zmniejsza się ponad 20-krotnie, zaś koszty instalacji są zbliżone do kosztów systemów z mainframe'em.

Wyścig z czasem

Oracle7 jest wyposażony w mechanizmy ułatwiające wykorzystanie do maksimum efektywności algorytmów równoległych. Jeśli system zostanie zainstalowany na odpowiedniej maszynie, Oracle7 pozwala na równoległe przetwarzanie zapytań, równoległą komunikację kanałami wejścia/wyjścia, a nawet na łączenie zapytań z rozkazami ingerującymi w strukturę danych. Jeszcze lepsze wyniki możemy osiągnąć łącząc nowe techniki programowe z lepszym typem sprzętowej architektury równoległej systemu.

W przeciwieństwie do większości równoległych RDBMS-ów, przechowujących informacje w niezależnych modułach pamięciowych, Oracle7 nie dzieli bazy danych ani fizycznie ani logicznie. Cała baza znajduje się w dużej pamięci dzielonej, korzystają zaś z niej równoległe procesory, wyposażone w niewielkie pamięci lokalne i sprowadzające potrzebne dane "na zamówienie". Chroni to przed możliwością utraty części bazy przy kłopotach z jednym z elementów systemu, a także pozwala na uniknięcie konieczności relokowania danych przy rozszerzaniu systemu o nowe moduły.

Dostęp do danych nie jest jednak realizowany bezpośrednio poprzez wspólną pamięć. Do komunikacji służy aplikacja Parallel Cache Manager, której kopie pracują na każdym aktywnym procesorze; w razie potrzeby komunikuje się ona z pamięcią lokalną innych procesorów lub z pamięcią główną, w celu sprowadzenia potrzebnego fragmentu danych w odpowiednie miejsce. Następnie PCM przechowuje wykorzystane już dane, usuwając je dopiero wtedy, gdy brakuje miejsca w pamięci lokalnej na następne "zamówienie" (usuwanie jest realizowane zgodnie z algorytmem LRU - Last Recently Used, czyli zastąpiony zostaje blok danych, od którego użycia upłynęło najwięcej czasu). Ponieważ istnieje duże prawdopodobieństwo, że procesor ponownie odwoła się do ostatnio sprowadzonych danych, stosując tę strategię oszczędza się czas potrzebny na przekazanie bloku informacji.

Zastosowanie algorytmów równoległych

Przy wszelkich operacjach dotyczących przetwarzania zapytań i komunikacji stosowane są w Oracle7 algorytmy równoległe. Oznacza to, że przy przetwarzaniu prostego zapytania, procesory dzielą dane między siebie i przeszukują niezależnie oddzielne fragmenty bazy; przyspiesza to liniowo proces wyszukiwania, w zależności od liczby użytych procesorów. Podobnie jest z łączeniem danych z różnych tabel - każdy procesor obsługuje inny fragment bazy; wreszcie przy sortowaniu i indeksowaniu stosuje się technikę drzewiastego sortowania równoległego, przyspieszającą proces logarytmicznie.

Przy komunikacji z pamięcią zewnętrzną (np. dyskiem czy taśmami magnetycznymi) zastosowano w Oracle7 inną technologię znacznie skracającą czas operacji. Oprócz równoległego dostępu do portów I/O, stosuje się tu metodę dwuetapowego przechowywania danych. Bezpośrednio po dokonaniu transakcji, na dysku zapisywane są jedynie krótkie, upakowane informacje o dokonanych zmianach; dopiero przy mniejszym obciążeniu systemu dane pochodzące z kilku transakcji jednocześnie są modyfikowane i zapisane zgodnie z wcześniej zachowanymi opisami. Takie podejście pozwala jednocześnie na zminimalizowanie dostępu do dysku i na szybsze przetwarzanie transakcji.

Minimalizując czas transakcji pomyślano także o tzw. blokowaniu danych. Otóż w RDBMS-ach dane, z których aktualnie korzysta jeden z klientów są rezerwowane jedynie dla jego wglądu, aby nie dopuścić do ich uszkodzenia przez niekontrolowany dostęp jednoczesny. Jednakże dotychczas blokowano zazwyczaj cały blok danych zawierający wiele rekordów, uniemożliwiając innym dostęp do nich. Oracle7 blokuje pojedyncze wiersze zamiast całych bloków, co pozwala na jednoczesne przetwarzanie znacznie większej liczby transakcji.

Ze sprzętem za pan brat

Proces dostępu do bazy danych przyspieszyć można także poprzez zastosowanie odpowiedniej technologii sprzętowej. Dotychczas producenci maszyn równoległych korzystali przede wszystkim z dwóch skrajnych architektur systemowych. Pierwsza z nich, zastosowana m.in. w IBM 3090, DEC VAX 6000- 600 i Sequent Symmetry 2000/700, polegała na połączeniu wielu procesorów przez użycie jednej szyny komunikacyjnej z pojedynczą pamięcią dzieloną. Niestety, przy tym rozwiązaniu występowały częste blokady komunikacyjne spowodowane małą efektywnością szyny, a także problemy z administracją pamięci dzielonej. Tak więc próbowano stosować (m.in. w maszynach DEC VAX) kilka procesorów wyposażonych w oddzielną pamięć, komunikujących się także poprzez pojedynczą szynę. To niestety również powodowało blokady komunikacyjne.

Ostatnim "krzykiem mody" jest technologia zastosowana m.in w maszynach nCUBE 2E, a dźwięcznie nazwana "masową równoległością". Polega ona na połączeniu wielu procesorów z oddzielną pamięcią w gęstą sieć, uniemożliwiającą blokady na łączach. W połączeniu z równoległym przetwarzaniem danych taki właśnie system może okazać się strzałem w dziesiątkę.

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

TOP 200