Czy pojawienie się dysku SSD ma jakikolwiek wpływ na optymalizację bazy danych?

26

Dzisiaj przeglądałem książkę na temat optymalizacji SQL Server i wydawało się, że pewna liczba pomysłów była oparta na liniowym modelu przechowywania. Ponieważ dyski SSD mają zupełnie inny model przechowywania, czy w jakikolwiek sposób zmieniają grę w odniesieniu do tego, jak myślisz o dostrajaniu lub optymalizacji bazy danych?

FrustratedWithFormsDesigner
źródło
W przypadku dysków SSD wydaje się, że musisz zoptymalizować więcej, aby zminimalizować zużycie, niż zwiększyć surową wydajność ...
Trezoid
ciekawa myśl i kilka fajnych odpowiedzi, +1
Drew

Odpowiedzi:

9

Tak, zmieniają grę. Optymalizacje oparte na właściwościach wirujących dysków magnetycznych (takich jak czas wyszukiwania i opóźnienie obrotowe ) mogą nie mieć znaczenia na dyskach SSD. Niedawny artykuł * opublikowany w FITME 2010 przedstawia jeden nowy algorytm optymalizacji zapytań oparty na charakterystyce dysków SSD.

Jednak zmiany te prawdopodobnie będą zmianami niskiego poziomu (na przykład algorytmów przechowywania i pobierania), które mogą być skutecznie wdrożone przez twórców baz danych. Prawdopodobnie nie wpłyną one tak bardzo na użytkowników bazy danych.

* IEEE Xplore - Zorientowana na kolumny optymalizacja zapytań do pamięci masowej dla bazy danych flash

Rein Henrichs
źródło
3
Tak - ale większość optymalizacji baz danych już minęła, kiedy po prostu włożyliśmy wszystko do pamięci RAM. Gdy 64 GB RaM stało się tańsze niż ekspert SQL, to już się zmieniło, nie jestem pewien, ile to dodaje SSD
Martin Beckett
3
@Martin zgodził się. Z drugiej strony, ostatnio zdecydowano się na skalowanie w kierunku poziomym (chmura itp.) Zamiast pionowym (monstrualne skrzynki o wartości 500 000 $). Systemy rozproszone mogą uzyskać globalną nieliniową poprawę wydajności dzięki tego rodzaju lokalnej optymalizacji liniowej. Często może to być również lepszy model kosztowy.
Rein Henrichs
8

Wydajność

Dyski SSD są wydajne: nie muszą szukać, a przepustowość płonie. Większość oprogramowania zajmującego się dyskami, w zakresie, w jakim są one zoptymalizowane, jest zoptymalizowana w celu zmniejszenia liczby synchronicznych wyszukiwań. W ten sposób wprowadzają wiele zawiłości. Wraz z pojawieniem się szybkich, bezwywiadowych zapisów w trwałym magazynie, nowe systemy przechowywania danych nie będą już wymagały takich zawiłości.

Trwałość

Dyski SSD mają obecnie wysoki wskaźnik awaryjności. Twój dysk SSD ulegnie awarii. Twoje dyski SSD ulegną awarii znacznie szybciej niż dyski magnetyczne. Musisz obejść ten problem z replikacją, kopiami zapasowymi itp. To wprowadza własny zestaw złożoności.

yfeldblum
źródło
1
Co? Dyski SSD mają wysoki wskaźnik awaryjności? Roczne wskaźniki awaryjności dysków SSD są znacznie niższe niż dysków twardych. Jak dotąd niewielu osobom udało się wyczerpać dostępne zapisy na dyskach SSD, szczególnie w przypadku bardziej zaawansowanych kontrolerów (na przykład SandForce firmy LSI).
Mircea Chirea
5

Ogólna obniżka ceny przechowywania ma znacznie głębsze skutki.

Zanim mieliśmy SQL, mieliśmy superoptymalizowane hierarchiczne i sieciowe bazy danych, w których DBA musieli dokładnie planować rozmieszczenie danych w ścieżce i cylindrze.

Bazy danych SQL są znacznie mniej wydajne. Ale teraz, gdy dyski są tanie, ogromne i szybkie, nie obchodzi nas to.

Bazy danych NoSQL („Dokument”) mogą być nieco mniej wydajne niż SQL, ponieważ nie ma takiej samej możliwości odwzorowania logiczno-fizycznego między schematem logicznym SQL a bazowym schematem fizycznym plików lub obszarów tabel itp. I nie obchodzi nas to.

Poprawa wydajności SSD prawdopodobnie zostanie utracona w wyniku zmian spowodowanych użyciem baz danych NoSQL w sposobie, w jaki ogólnie projektujemy systemy.

S.Lott
źródło
2

Główny problem z optymalizacją czegokolwiek dla dysków SSD dotyczy sposobu, w jaki zapisują dane. Tradycyjny dysk twardy zwykle przechowuje dane w małych sektorach o wielkości około 512 bajtów i może faktycznie manipulować sektorami bezpośrednio na tym poziomie lub nawet poniżej tego poziomu.

Dyski SSD mają pewne wady w odniesieniu do zapisów:

  • Minimalny rozmiar bloku wynosi około 4-8 KB.
  • Zapisy można wykonywać tylko na całej stronie, zwykle o wielkości 256 KB.
  • Można zapisywać tylko puste bloki.

Typowy scenariusz koszmaru, zwany wzmocnieniem zapisu , ma miejsce, gdy chcesz zapisać pojedynczy bajt w lokalizacji na dysku, która ma już kilka bloków w użyciu. Aby tam napisać, musisz najpierw skopiować całą stronę 256 KB do pamięci, usunąć cały blok, zmienić pojedynczy bajt na stronie, a następnie zapisać całą zmodyfikowaną stronę 256 KB. Aby napisać jeden bajt, pojawiło się około pół megabajta „ruchu”!

Istnieje wiele optymalizacji tego problemu zaimplementowanych na poziomie SSD, kontrolera, a nawet systemu operacyjnego, ale niewątpliwie DBMS mogą odnieść korzyści, dostosowując te optymalizacje do swoich konkretnych działań.

Nie jest to jednak coś, o czym powinni myśleć użytkownicy bazy danych (jak w przypadku korzystania z bazy danych w swojej aplikacji), ponieważ będzie to w dużej mierze zależało od decyzji projektowych / wdrożeniowych na poziomie DBMS.

Deckard
źródło
2

Z tego, co zbieram z bloga ServerFault , serwery baz danych muszą mieć gruby sprzęt. Serwer bazy danych witryn wymiany stosów obsługuje dyski SSD (patrz http://blog.serverfault.com/post/our-storage-decision/ ) i wyobrażam sobie, że optymalizacja zapytań jest nadal bardzo potrzebna. Procesor i pamięć wpływ zapytań do bazy danych, a także IO.

Jednak wydajność bazy danych zależy w dużej mierze od operacji we / wy, więc dyski SSD na pewno pomogą.

Jon Onstott
źródło
1

Tak, z powodów, które wszyscy stwierdzili.

Słuchałem podcastu mówiącego, że duże fragmenty RDBMS, takie jak Oracle, SQL Server itp., Zaczną być „opcjonalne”, jeśli będą w stanie poprawnie rozdzielić seperację. Sprawdź, czy jest to dysk SSD i odpowiednio zoptymalizuj.

Istnieje wiele dodatkowych kodów wbudowanych w buforowanie i zapisywanie danych, które po prostu nie są już wymagane.

Jeszcze bardziej interesujące jest RAMSAN i jego warianty. Zasadniczo dysk twardy wykonany z układów pamięci RAM z wbudowanym zasilaczem UPS X-godzinnym i możliwością zapisu w tle do długoterminowej pamięci HDD.

Robin Vessey
źródło