У контексті бази даних я натрапив на горизонтальну масштабованість як одну з переваг баз даних NOSQL. Що означає цей термін?
Як це можна порівняти з вертикальним масштабуванням ?
У контексті бази даних я натрапив на горизонтальну масштабованість як одну з переваг баз даних NOSQL. Що означає цей термін?
Як це можна порівняти з вертикальним масштабуванням ?
Відповіді:
Горизонтальне масштабування
Горизонтальне масштабування, по суті, будується замість вгору. Ви не ходите і купуєте більший сервер, і не переміщуєте весь навантаження на нього, натомість ви купуєте 1+ додаткових серверів і розподіляєте навантаження на них.
Горизонтальне масштабування використовується, коли у вас є можливість запускати кілька екземплярів на серверах одночасно. Зазвичай набагато складніше переходити з 1 сервера на 2 сервери, тоді це переходити від 2 до 5, 10, 50 і т.д.
Після вирішення питань запуску паралельних екземплярів ви можете скористатись великими перевагами таких середовищ, як Amazon EC2, хмарний сервіс Rackspace, GoGrid тощо, оскільки ви можете збільшувати і зменшувати екземпляри на основі попиту, зменшуючи потребу оплати за потужність сервера ви використовуєте не тільки для покриття цих пікових навантажень.
Реляційні бази даних - один із найскладніших елементів паралельного виконання повного читання / запису.
Я бачив, як Дамієн Кац говорив про CouchDB на StackOverflow DevDays в Остіні, і одним з його головних напрямків його створення були саме ці паралельні екземпляри. Оскільки це було зосереджене на цьому з першого дня, було б набагато більше можливостей скористатися горизонтальним масштабуванням.
Вертикальне масштабування
Вертикальне масштабування - це навпаки, нарощування замість того, щоб зменшувати. Зайдіть і купуйте найсильніший апарат, який ви можете собі дозволити, і покладіть на нього свою програму, базу даних тощо.
Реальний світ
Звичайно, і те, і інше, має свої переваги та недоліки. Часто комбінація цих двох використовується для остаточного рішення.
У вас може бути ваша основна база даних, де всі записують і читають дані в реальному часі на великій частині обладнання. Потім розподілили лише копії бази даних для більш важкого аналізу даних та звітування, де тривалість хвилини не має великого значення. Тоді веб-додаток на передньому кінці може працювати на декількох веб-серверах за балансиром навантаження.
Горизонтальне масштабування чудово, коли вам потрібен додаток, який повинен обробляти велику кількість записів і паралельних читання. Подумайте про веб-сайт, який отримує величезну кількість трафіку і потребує реєстрації цього або потребує реєстрації великої кількості подій.
Я думаю, що найбільшим плюсом є те, що горизонтальне масштабування можна здійснити за допомогою товарного обладнання, а ви можете зробити лише стільки, що ви можете зробити з вертикальним масштабуванням і намагаючись зробити ваші існуючі коробки більшими.
Традиційні RDBMS відмовляються тут з різних причин (включаючи той факт, що вони є ACID), і рішення NoSQL відрізняються тут тим, що їх можна легко масштабувати горизонтально - але це вже інша історія (RDBMS / SQL проти NoSQL.)