Mam nadzieję, że wielu z was pracuje z witrynami o dużym natężeniu ruchu opartymi na bazach danych i istnieje prawdopodobieństwo, że główne problemy ze skalowalnością dotyczą bazy danych. Ostatnio zauważyłem kilka rzeczy:
Większość dużych baz danych wymaga zespołu DBA w celu skalowania. Ciągle zmagają się z ograniczeniami dysków twardych i kończą się bardzo drogimi rozwiązaniami (sieci SAN lub duże macierze RAID, okna częstej konserwacji w celu defragmentacji i repartycjonowania itp.) Rzeczywisty roczny koszt utrzymania takich baz danych wynosi 100–1 mln USD, co stanowi za strome dla mnie :)
Wreszcie, mamy kilka firm, takich jak Intel, Samsung, FusionIO itp., Które właśnie zaczęły sprzedawać wyjątkowo szybkie, ale niedrogie dyski SSD oparte na technologii SLC Flash. Dyski te są 100 razy szybsze w losowym odczycie / zapisie niż najlepsze wirujące dyski twarde na rynku (do 50 000 losowych zapisów na sekundę). Ich czas wyszukiwania jest prawie zerowy, więc koszt losowych operacji we / wy jest taki sam, jak sekwencyjnych operacji we / wy, co jest niesamowite w przypadku baz danych. Te dyski SSD kosztują około 10-20 USD za gigabajt i są stosunkowo małe (64 GB).
Wydaje się więc, że istnieje możliwość uniknięcia OGROMNYCH kosztów skalowania baz danych w tradycyjny sposób, po prostu przez zbudowanie wystarczająco dużej macierzy dysków SSD RAID 5 (która kosztowałaby zaledwie kilka tysięcy dolarów). Nie obchodzi nas to, czy plik bazy danych jest pofragmentowany i możemy sobie pozwolić na 100 razy więcej zapisów na dysku bez konieczności rozprowadzania bazy danych na 100 wrzecion. .
Czy ktoś jest tym zainteresowany? Testowałem kilka dysków SSD i mogę udostępniać moje wyniki. Jeśli ktokolwiek na tej stronie rozwiązał już swoje wąskie gardło we / wy za pomocą dysków SSD, chciałbym usłyszeć wasze historie wojenne!
PS. Wiem, że istnieje wiele drogich rozwiązań, które pomagają w skalowalności, na przykład sprawdzone w czasie pamięci SAN oparte na pamięci RAM. Chcę jasno powiedzieć, że nawet 50 000 USD jest zbyt kosztowne dla mojego projektu. Muszę znaleźć rozwiązanie, które kosztuje nie więcej niż 10 000 USD i nie zajmuje dużo czasu.
Dave, NXC i Burly,
Dziękuję za odpowiedzi! Chciałbym wyjaśnić, że słowo „tanie” jest bardzo ważne w mojej sytuacji. Muszę więc używać tanich serwerów Dell (2950 USD 4K, które mają tylko 8 banków pamięci). Mam już 32 GB pamięci RAM, więc nie mogę kontynuować skalowania w ten sposób. Poza tym dodanie pamięci RAM nie oszczędza cię od wąskich gardeł zapisywania dysku, co jest moim głównym problemem w tej chwili.
Kiedyś martwiłem się o żywotność dysków SSD, ale po przeczytaniu o współczesnych algorytmach wyrównywania zużycia jestem pewien, że te dyski będą wystarczające długo. Moja baza danych zapisuje 300 GB dziennie, a według prognoz w 2009 r. Przekroczy 1 TB dziennie. Dyski SSD dla przedsiębiorstw są zaprojektowane do obsługi około 10 TB zapisów dziennie przez wiele lat.
Nie zgodziłbym się z twierdzeniem Burly'ego, że migracja z SAS na SSD wymaga zbyt wiele pracy. Moja baza danych jest synchronicznym kopią lustrzaną, więc mogę zaktualizować jedną stronę kopii lustrzanej, a następnie obserwować ją przez kilka miesięcy, a jeśli wystąpi awaria, mogę przejść w tryb failover na drugi serwer, który wciąż ma stare dobre dyski twarde SAS ...