В предишната ми публикация видяхме някои фундаментални разлики между релационни и нерелационни бази данни. В тази публикация нека поговорим за мащабируемостта на тези две.
Мащабируемост
Това е способност на система, която може лесно да приеме бързите входящи данни без много проблеми с производителността. Това е основният фактор за всяка система да осигури добра мащабируемост. Има два типа методи за мащабиране, известни като вертикално и хоризонтално мащабиране.
Вертикално мащабиране
Всички инструменти за релационна база данни поддържат вертикално мащабиране. Това е методът за увеличаване на мощността на системата чрез добавяне на допълнително пространство на процесора, паметта и диска. Така че, за да позволи бързи входящи данни, единният производствен сървър е оптимизиран за увеличаване на мащаба. В тази техника за мащабиране винаги има един производствен сървър, който може да бъде свързан от всички приложения и потребители. Може да се създаде клъстерна среда с някои възли и да се репликират данните между възли.
Поради свойствата на ACID всички възли трябва да имат еднакъв набор от данни и синхронизирането на данни става сложно, ако има няколко възли в клъстера. Това е много оптимизирано за мащабиране на Read. Вертикалното мащабиране е известно още като мащабиране
Предимството на тази методология за мащабиране е тясното интегриране на данните и тяхната последователност между възлите в клъстер. Всички възли ще имат еднакъв набор от данни и ако има проблем с производствения сървър, друг възел автоматично ще бъде свързан от приложенията. Така че този клъстер е известен като отказен клъстер.
Хоризонтално мащабиране
Всички инструменти за нерелационни бази данни поддържат хоризонтално мащабиране. Това е методът за добавяне на повече компютри към мрежата, за да позволите бързи входящи данни. Лесно е да добавите повече възли в клъстера, за да позволите растеж на данните. Данните се разделят автоматично и се обработват между възли в клъстер. Това е среда за разпределени данни. Hadoop Distributed File System (HDFS) е класически пример за това. Хоризонталното мащабиране е известно още като мащабиране.
Предимството на тази техника за мащабиране е, че тъй като данните се разделят и репликират между възли, ако някой от възлите излезе офлайн, приложението все още може да разполага с данните от други възли и това гарантира наличността на данни през цялото време. Този метод е много полезен в случаите, когато не се изискват JOIN между данните на възлите. Това също е полезно при разделянето на данните и тяхното разполагане на различни географски местоположения.
Въпреки че и двете техники за мащабиране имат предимства и недостатъци, добрата среда може да смеси и двете, за да има изключително мащабиране и мащабиране. Можем да имаме мащабирана база данни за четене и запис в един сървър, който изисква свойства на ACID и да имаме мащабирани разпределени исторически данни в няколко възела с цел извличане на данни.