it-swarm.dev

Co oznacza skalowanie w poziomie?

W kontekście bazy danych natknąłem się na poziomą skalowalność jako jedną z zalet baz danych NOSQL. Co oznacza ten termin?

Jak by to porównać do skalowania pionowego ?

23
Lazer

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 w jego tworzeniu 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 pionowe
Skalowanie w pionie jest odwrotne, buduj zamiast na zewnątrz. Idź i kup najsilniejszy sprzęt, na jaki Cię stać, i umieść na nim swoją aplikację, bazę danych itp.

Real World
Oczywiście oba mają swoje zalety i wady. Często kombinacja tych dwóch jest wykorzystywana do ostatecznego rozwiązania.

Możesz mieć swoją główną 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 bieżąco nie ma większego znaczenia. Wtedy aplikacja sieci Web frontonu może działać na wielu serwerach WWW za modułem równoważenia obciążenia.

24
ManiacZX

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 Excel tutaj, ponieważ można je łatwo skalować w poziomie - ale to inna historia (RDBMS/SQL vs. NoSQL.)

0
Suman

Niektórzy ludzie w branży używają innej terminologii, aby oznaczać to samo:

  • skalowanie w górę = skalowanie pionowe
  • skalowanie w górę = skalowanie w poziomie
0
Toddius Zho