W kontekście baz danych natknąłem się na skalowalność poziomą jako jedną z zalet baz danych NOSQL. Co oznacza ten termin?
Jak by to porównać do skalowania pionowego ?
W kontekście baz danych natknąłem się na skalowalność poziomą jako jedną z zalet baz danych NOSQL. Co oznacza ten termin?
Jak by to porównać do skalowania pionowego ?
Odpowiedzi:
Skalowanie w poziomie Skalowanie w
poziomie zasadniczo buduje się zamiast w górę. Nie kupujesz większego, mocniejszego serwera i przenosisz na niego całe swoje obciążenie, zamiast tego kupujesz ponad 1 dodatkowe serwery i rozkładasz obciążenie na nie.
Skalowanie w poziomie jest używane, gdy masz możliwość uruchamiania wielu instancji na serwerach jednocześnie. Zazwyczaj dużo trudniej jest przejść z 1 serwera na 2 serwery, niż z 2 do 5, 10, 50 itd.
Po rozwiązaniu problemów z uruchamianiem równoległych instancji możesz w pełni korzystać ze środowisk takich jak Amazon EC2, usługa Cloud Rackspace, GoGrid itp., Ponieważ możesz zwiększać i zmniejszać liczbę instancji w zależności od zapotrzebowania, zmniejszając potrzebę płacenia za moc serwera nie używasz tylko do pokrycia tych szczytowych obciążeń.
Relacyjne bazy danych są jednym z trudniejszych elementów do równoległego uruchamiania pełnego odczytu / zapisu.
Widziałem Damiena Katza mówiącego o CouchDB na StackOverflow DevDays w Austin, a jednym z jego głównych celów jego stworzenia były te równoległe przypadki. Ponieważ było to przedmiotem zainteresowania od samego początku, byłoby znacznie lepiej wykorzystać skalowanie w poziomie.
Skalowanie w pionie Skalowanie w
pionie jest przeciwieństwem, buduj zamiast na zewnątrz. Idź i kup najmocniejszy sprzęt, na jaki Cię stać, i umieść na nim swoją aplikację, bazę danych itp.
Rzeczywisty świat
Oczywiście oba mają swoje zalety i wady. Często kombinacja tych dwóch jest wykorzystywana do ostatecznego rozwiązania.
Możesz mieć swoją podstawową bazę danych, w której wszyscy zapisują i odczytują dane w czasie rzeczywistym na dużym sprzęcie. Następnie rozdałem tylko do odczytu kopie bazy danych w celu dokładniejszej analizy danych i raportowania tam, gdzie bycie na minutę nie ma większego znaczenia. W takim razie aplikacja sieci Web frontonu może działać na wielu serwerach WWW za modułem równoważenia obciążenia.
Skalowanie w poziomie jest świetne, gdy potrzebujesz aplikacji, która musi obsługiwać dużą liczbę zapisów i odczytów równoległych. Pomyśl o witrynie, która generuje duży ruch i musi to zarejestrować lub rejestrować dużą liczbę zdarzeń.
Myślę, że największą zaletą jest to, że skalowanie w poziomie można wykonać przy użyciu sprzętu towarowego, a skalowanie w pionie i próba powiększenia istniejących skrzynek jest tylko tyle.
Tradycyjne RDBMS zawodzą tutaj z różnych powodów (w tym dlatego, że są ACID), a rozwiązania NoSQL przodują tutaj, ponieważ można je łatwo skalować w poziomie - ale to inna historia (RDBMS / SQL vs. NoSQL.)
Niektórzy ludzie w branży używają innej terminologii, aby oznaczać to samo: