Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Oracle Exadata Database Machine

Autor: Janek o środa 2. Listopad 2011

Dopiero w tym roku na Konferencji PLOUG dało się w pełni odczuć fakt przejęcia przez Oracle firmy SUN na początku 2010 roku. Dzięki temu przejęciu (oraz wcześniejszym: zakupowi BEA Systems, rozwojowi własnej opartej na RH dystrybucji Linuxa, rozwojowi MySQLa, i całej sterty pomniejszych technologii) Oracle może zacząć się chwalić możliwością stworzenia całego systemu informatycznego przy użyciu tylko ich technologii.

Jednym i chyba najciekawszym z elementów nowej oferty sprzętowej jest Oracle Exadata Database Machine. Koncepcja Exadata ma już parę lat (zresztą na początku była obsługiwana przez sprzęt HelwettPackard’a) i w pierwotnych założeniach była technologią sprzętową-progromowo do realizacji hurtowni danych. Co zresztą widać do tej pory, największe wrażenie w zakresie wydajności robią testy na zapytaniach o charakterystyce bliższej hurtownianej niż OLTP. Od niedawna Oracle zaczął przedstawiać Exadata jako uniwersalną technologię do różnych zastosowań bazodanowych.

Gdzie – w skrócie – leży siła Exadata? Exadata z punktu widzenia klasycznych architektury systemów to kilkanaście „prawie” normalnych wielordzeniowych maszyn w jednej konfiguracji. Na pierwszy rzut oka architektonicznie są w zasadzie do siebie podobne (wszystkie mają procesory Intel Xeon, klasyczną pamięć operacyjną, dyski SAS). W rzeczywistości są podzielone na 2 grupy serwerów dedykowane do 2 rodzajów zadań. Poniżej opis składników dla pełnego rack’a Exadata X2-8.

Pierwszą grupę tworzą 2 serwery np. w następującej konfiguracji każdy:

  • osiem ośmiordzeniowych Intel® Xeon® X7560
  • 1 TB pamięci operacyjnej
  • osiem dysków pamięci masowej SAS 300 GB 10,000 RPM
  • osiem portów 40 Gb/second InfiniBand
  • osiem portów 10 Gb/second Ethernet

pełniące rolę klasycznych serwerów bazy danych (być może sklastrowanych na poziomie Oracle 11g RAC).

Drugą grupę tworzy 14 serwerów pamięci masowej w następującej konfiguracji każdy:

  • dwa sześciordzeniowe Intel® Xeon® L5640
  • 24 GB pamięci operacyjnej
  • 2 TB pamięci masowej w dyskach 7,200 RPM SAS
  • 384 GB pamięci w technologii Smart Flash Cache
  • podwójny port InfiniBand

W tych zestawienia najważniejsza jest informacja dotycząca zastosowania wysokoprzepustowej technologi InifiniBand do połączenia pomiędzy serwerami bazy danych a serwerami pamięci masowej. Jednak dla specjalistów baz danych to co najciekawsze kryje się w oprogramowaniu, zwłaszcza po stronie serwera pamięci masowej. Oprogramowanie serwera pamięci masowej , nazwane Cell Services, pracuje pod kontrolą Oracle Linux.

Exadata Smart Scan Processing

Jest to funkcjonalność mająca chyba największy wpływ na wydajność Exadata w zastosowaniach hurtownianych. Pomysł polega na zaimplementowaniu części logiki silnika SQL poza serwerem
bazy danych, w tym przypadku na serwerze pamięci masowej – oraz użyciu iDB – protokołu średniego poziomu do komunikacji pomiędzy serwerem bazy danych i serwerem pamięci wsadowej. Taka komunikacja pozwala znacznie ograniczyć transfer danych pomiędzy pamięcią masową a serwerem DB oraz odciążenie serwera DB poprzez wykonanie niektórych prostych operacji po stronie serwera pamięci masowej. Prosty przykład:

SELECT * FROM employee_table WHERE hire_date > ‘1-Jan-2003’;

W zwykłej konfiguracji wykonanie powyższego zapytania wymaga transferu wszystkich bloków tabeli z macierzy dyskowej do serwera BD. Zastosowanie Smart Scan Processing ogranicza ilość przesyłanych danych tylko do tych spełniających warunek filtra.

Podobny mechanizm jest zastosowany w przypadku pobrania kilku kolumn z tabeli wielokolumnowej:

SELECT employee_name, employee_number FROM employee_table;

W zwykłej konfiguracji wykonanie powyższego poskutkuje przesłaniem całych bloków dyskowych zawierających dane ze wszystkich kolumn tabeli employee_table. W przypadku Exadata przesyłane są tylko dane żądanych kolumn.

W zakresie Smart Scanning’u wprowadzone zostały jeszcze mechanizmy:Smart Scan Join Processing , Smart Scan Processing of Encrypted Tablespaces and Columns , Storage Indexing .

Hybrid Columnar Compression

Kompresja kolumnowa polega na wprowadzeniu w pewnych warunkach kolumnowej organizacji danych w kolumnach. Z puntu widzenia algorytmów kompresji jest to słuszne ponieważ to w kolumnach wartości są bardziej powtarzalne (mniej złożone informacyjnie) i jednolite pod względem typu np. przykładem może tu być powtarzalność wartości w polach typu DATE.

Ta funkcjonalność Exadata jest jeszcze bardziej hutrowniana niż poprzednia ze względu na ograniczenia dotyczące wstawiania danych do tabeli. Najlepsze efekty są przy następujących trybach zasilania tabel:

  • Insert statements with the APPEND hint
  • Parallel DML
  • Direct Path SQL*LDR
  • Create Table as Select (CTAS)

Zalecane są duże transakcje przy wstawianiu danych, a niezalecane operacje UPDATE na skompresowanych danych. Oracle chwali się, że w przypadku zastosowań w DW oszczędność miejsca jest 10-krotna.

Exadata Smart Flash Cache Features

Trzecią grupą funkcjonalności mającej wpływ na wydajność Exadata jest oprogramowanie wspierające wykorzystanie dysków Flash jako Cache dla danych przechowywanych w macierzy dyskowej. Zastosowanie dysków Flash ma 2 główne aspekty.

Po pierwsze często używane (czytane) obiekty mogą być cache’owane w sposób trwały. Jeżeli raz się tam znajdą nigdy nie zostaną usunięte. Odczyt z dysków Flash jest od kilku do kilkunastu razy szybszy w porównaniu do odczytu z macierzy dyskowej.

Po drugie często wąski gardłem dla zastosowań OLTP jest zapis logów REDO. Mechanizm w Exadata jest następujący. Wpis do REDO loga jest zapisywany jednocześnie na dysku Flashowym i macierzowy. Baza jest informowana o poprawnym wykonaniu zapisu w momencie, gdy wcześniejszy z nich się skończy.

Mnie się te pomysły podobają. Są pomysłowe.

Oracle Exadata Database Machine, 1.0 out of 5 based on 1 rating
Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

1 Komentarz do “Oracle Exadata Database Machine”

  1. Przemek napisał(a):

    To ja jeszcze dodam, że Oracle Polska organizował spotkania „Śniadanie z Exadata”,
    na których można było zobaczyć jak działa ta maszyna w praktyce.
    Może będą jeszcze jakieś dodatkowe edycje w przyszłości.
    Jeśli tak, to polecam – nie ma to jak obejrzeć działanie tego sprzętu w praktyce,
    konsumując przy okazji kanapki i popijając kawę.

    Gdzieś sobie zanotowałem jeden przykład z prezentacji:

    Mamy tabelę testową 64GB danych. Poddanie jej standardowej kompresji redukuje wielkość do 21GB.
    Dzięki hybrydowej kompresji kolumnowej to 64GB zajmuje już tylko 2GB!
    Stosunek czasu wykonania na takich tabelach operacji COUNT wynosił na prezentowanej maszynie odpowiednio
    9,95 do 5,68 do 1,44.

    Inną ciekawostką było oglądanie testu polegającego na zasypaniu maszyny standardowymi zadaniami OLTP.
    Ponieważ część maszyn w Exadata obsługiwało wprowadzane transakcje, a część realizowała w międzyczasie
    zadania hurtowniane to system pracował stabilnie i wydajnie, realizując oba zadania bez większych opóźnień.

    Na prezentacji wykorzystano przy tym narzędzie Swingbench (http://dominicgiles.com/swingbench.html)
    które warto zapamiętać, bo jest darmowe i można je użyć do testowania wydajności serwerów Oracle
    we własnym „laboratorium”.

    Wszystko to wygląda fajnie i pięknie a do tego śliczna szafka all-in-one
    zostawia w serwerowni miejsce na stół do bilarda a administratorom więcej czasu na kawę…
    …tyle, że niestety to całkiem nieźle kosztuje.

    Jak policzymy ceny sprzętu oraz licencji wykorzystanego oprogramowania na poszczególne
    maszyny/dyski/rdzenie to można złapać się za głowę, nawet, jak się wybierze najprostszą konfigurację.
    O ile dobrze pamiętam to podstawowa Exadata ma 2 maszyny serwerowe i 3 storage.

    Tu jest, może trochę stary ale ciekawy artykuł poruszający temat cen tego rozwiązania
    i porównanie z ofertą firmy IBM:

    http://database-diary.com/2010/10/19/comparing-price-for-oracle-exadata-and-ibm-smart-analytics-system

    Oczywiście oficjalne ceny nie są tajne i można wygooglać aktualne dane na oracle.com
    Zapewne dostępność i ceny będą się zmieniać na bardziej korzystne,
    bo pomysł Oracle wydaje się być właściwą ścieżką rozwoju za którą zapewne podążą i inni.

    Z tego co wiem to w Polsce z Exadata korzysta Allegro.
    Ktoś słyszał o innych rodzimych użytkownikach tych maszyn?

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>