SMP czy MPP?

Wysokie wymagania jakie przed komputerem stawiają współczesne duże bazy danych powodują, że coraz częściej do ich obsługi stosuje się komputery wieloprocesorowe o przetwarzaniu symetrycznym SMP. Najczęściej stosuje się je do obsługi przetwarzania transakcyjnego on-line (OLTP).

Wysokie wymagania jakie przed komputerem stawiają współczesne duże bazy danych powodują, że coraz częściej do ich obsługi stosuje się komputery wieloprocesorowe o przetwarzaniu symetrycznym SMP. Najczęściej stosuje się je do obsługi przetwarzania transakcyjnego on-line (OLTP).

Nowe potrzeby w zakresie baz danych - hurtownie danych, pomoc w podejmowaniu decyzji, obsługa informacyjna kierownictwa firmy - stawiają większe wymagania co do mocy obliczeniowej i szybkości obsługi, którym coraz trudniej sprostać.

Ostatnio poważnym kandydatem do roli komputera obsługującego wszystkie te dziedziny w przedsiębiorstwie pretendują komputery masowo równoległe MPP. Obiecują one lepszy stosunek wydajności do ceny i lepszą skalowalność niż komputery SMP. Wybierając komputer do przyszłych zastosowań (a musi on działać co najmniej 5-10 lat) dobrze jest wiedzieć jakie wady oraz zalety mają poszczególne rozwiązania architektoniczne i jak nadają się one do obsługi aplikacji, które zamierzamy na nich uruchamiać. Typowe przetwarzanie danych zawiera trzy istotnie różne typy aplikacji: przetwarzanie transakcyjne on-line, obsługa podejmowania decyzji i przetwarzanie wsadowe danych. Każda z tych aplikacji stawia inne wymagania przed komputerem.

Architektury SMP i MPP

System komputerowy SMP zawiera wiele procesorów, korzystających ze wspólnych zasobów (pamięć, dyski, szyna, kanały we/wy), pracuje pod jedną kopią systemu operacyjnego oraz korzysta z jednej kopii systemu zarządzania bazami danych. Dodanie kolejnych procesorów powoduje zwiększenie wydajności, ale nie jest ono proporcjonalne do liczby procesorów, gdyż każdy procesor powoduje zmniejszenie pasma przenoszenia szyny i pamięci dostępnej dla niego. Dostępne systemy SMP na ogół nie mogą zawierać więcej niż 12 procesorów; w praktyce opłaca się stosować systemy z 2, 4 lub 6 procesorami. Ponadto awaria dowolnego z elementów składowych systemu SMP powoduje zatrzymanie przetwarzania danych.

Wiele systemów zarządzania bazami danych umożliwia korzystanie z gron komputerowych (cluster), którego węzłami mogą być systemy SMP. Można wtedy wykorzystywać moc obliczeniową nawet kilkudziesięciu procesorów. Coraz częściej grona komputerowe stają się swoistym minimum sprzętowym do obsługi przetwarzania transakcyjnego w dużym przedsiębiorstwie.

System MPP jest to luźno powiązana struktura obliczeniowa z wieloma procesorami, z których każdy zawiera własne zasoby (pamięć, kanał we/wy, szyna), ma własną kopię systemu operacyjnego i własną kopię systemu zarządzania bazą danych. Komunikacja między węzłami grona MPP odbywa się przez przekazywanie komunikatów, za pośrednictwem łączącej je szyny. Często system MPP zawiera bardzo wiele pojedynczych procesorów (do kilkuset). Zasadnicza zaleta systemów MPP to liniowy wzrost wydajności ze wzrostem liczby procesorów; powoduje on jednak wzrost liczby komunikatów między procesorami i powoduje trudności z synchronizacją ich pracy.

Co wybrać?

Dokonanie wyboru między SMP a MPP nie jest łatwe i wymaga rozważenia kilku czynników związanych z wydajnością kanałów we/wy, wspólnym korzystaniem z danych i efektywnym rozkładem obciążenia na poszczególne procesory. Inne wymagania stawia w tym względzie środowisko przetwarzania transakcyjnego, a inne przetwarzanie analityczne związane z podejmowaniem decyzji.

Przetwarzanie transakcyjne

Rozkład obciążenia w SMP jest prosty - każda z kolejnych transakcji może być wykonana przez dowolny nie zajęty procesor. W przypadku MPP sprawa jest trudniejsza, gdyż pojedynczy procesor na ogół nie dysponuje całością bazy w swych zasobach dyskowych, często nie może więc wykonać samodzielnie całości transakcji - musi ona być rozdzielona na wiele węzłów. Wykonanie transakcji wymaga starannego koordynowania dostępu do danych przez tzw. Lock Manager. Im więcej transakcji dokonywanych przez wielu użytkowników, tym większa strata mocy na koordynację.

Obciążenie kanałów we/wy w przetwarzaniu transakcyjnym jest niewielkie, mimo że każda transakcja generuje więcej operacji we/wy niż zapisuje danych. Ponieważ jednak każdy dostęp do danych wymaga odczytania (zapisania) nie więcej niż jednej stronicy, to potrzebna szybkość kanałów we/wy jest nieduża. Systemy SMP i MPP równie dobrze wywiązują się z zadania.

Przetwarzanie transakcyjne wymaga dobrej koordynacji dostępu do wspólnie wykorzystywanych danych (np. w systemie obsługi sprzedaży wszyscy użytkownicy korzystają z katalogu produktów). System SMP wywiązuje się z zadania dobrze, gdyż dane są dostępne dla wszystkich użytkowników na wspólnych dyskach, nie ma więc potrzeby przesyłania ich między procesorami. W MPP występują istotne kłopoty z dostępem do wspólnych danych, koordynacji dostępu i konieczności ich przesyłania przez sieć łączącą poszczególne procesory.

Jak wynika z tego wyliczenia do obsługi typowego przetwarzania transakcyjnego lepiej nadają się systemy SMP niż MPP.

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

TOP 200