Kiedyś sprawa była prosta. Kompresja to ciężki proces, mocno angażujący procesor. Co prawda można dzięki niej upakować więcej danych na mniejszej przestrzeni, ale powoduje to znaczny spadek wydajności. Determinowało to przeznaczenie tej funkcji gdzieś w okolicach archiwizacji i backupu. Takie właśnie miałem podejście do tego tematu jeszcze w zeszły piątek, z rana. Potem poszedłem na warsztaty Oracle z migracji do wersji 11 i już na pierwszym wykładzie dotarło do mnie jak bardzo się mylę.
Sesję prowadził pan Piotr K., a jej tematem były nowe funkcje jedenastki, w tym Oracle Advanced Compression. Mechanizm ten pozwala na kompresję obiektów strukturalnych (tabele w relacjach) na poziomie bloku bazy danych. Dzięki temu można znacznie zredukować zapotrzebowanie na pamięć masową - co jest jasne. Dodatkowo jednak baza generuje mniej operacji i/o (w spakowanym bloku jest przecież więcej danych). To też jest oczywiste, ale dotarło do mnie po raz pierwszy. Świadomość tego faktu spowodowała, że nie zaprzeczyłem gdy pan Piotr stwierdził, że mechanizm ten może również pozytywnie wpłynąć na wydajność bazy danych. Przecież procesory są coraz szybsze i muszą czekać na wolne dyski. Okazuje się, że często dla wydajności całego systemu zysk w postaci mniejszej liczby operacji i/o jest większy niż strata związana z wykonywaniem kompresji.
Kompresję jako mechanizm zwiększający wydajność storage wykorzystują też nowe kontrolery SSD firmy SandForce. Używają one do tego dedykowanego procesora. Wspominałem o tym w zeszłym miesiącu, ale bez zrozumienia tematu. Teraz zastanawiam się, czy niedługo nie pojawią się macierze z taką funkcjonalnością. A może dyski twarde? Myślę, że to będzie nowy trend.
Brak komentarzy:
Prześlij komentarz