Предисловие
Традиционные реляционные базы данных используют синхронную
клиент-серверную архитектуру, ограниченную в отношении масштабируемости
требованиями распределенных вычислительных систем. В результате, появилось
много разных методов фрагментации, кэширования и репликации, нацеленных на
удовлетворение этих требований.
С другой стороны, на основе теоремы CAP были разработаны
NoSQL решения. Системы управления данными вроде BigTable, HBase, MongoDB,
Cassandra и Dynamo предлагают различные возможности, в зависимости от пары
соблюдаемых принципов из трех возможных (согласованность данных, доступность и
устойчивость к разделению). Однако, они больше не поддерживают свойства SQL и
ACID, которые играют решающую роль для реляционных баз данных.
NuoDB представляет собой
совершенно новый подход к реляционным БД, основанный на модели частичной
репликации по требованию. По своей сути, NuoDB - асинхронная,
децентрализованная, одноранговая база данных. Она использует концепцию атомов,
то есть, реплицируемых объектов. В NuoDB все является атомом: база данных,
схема, последовательность, таблица, индекс, записи, бинарные объекты, данные.
NuoDB обладает патентом на одноранговую репликацию объектов.
Архитектура NuoDB
Архитектура NuoDB включает три уровня: уровень управления, уровень SQL и уровень данных.
Уровень управления состоит из агента, контролирующего процессы NuoDB на
конкретном компьютере. Он их запускает и останавливает, собирает статистику с
транзакционных модулей и модулей хранения данных.
Отдельные агенты могут выступать в качестве брокеров
(посредников). Брокеры сначала устанавливают связь с клиентом, а потом
подключают клиента к транзакционному движку. Теперь клиент может напрямую
взаимодействовать с транзакционными движками. Кроме того, уровень управления в
NuoDB предоставляет командную строку и веб-инструмент управления базами данных,
а также загрузчик для экспорта и импорта данных.
На уровне SQL транзакционные движки обеспечивают доступ к
единственной БД. Они проводят синтаксический анализ, компилируют, оптимизируют
и выполняют SQL-запросы от имени клиентов.
На уровне данных блок управления хранилищем обеспечивает
хранение данных. Он использует пары "ключ-значение" для хранения
информации, но может использовать и более продвинутые хранилища (например,
HDFS).
В случае минимальной конфигурации, можно запускать каждый
компонент (брокер, транзакционный движок и блок управления памятью) на одной
машине. NuoDB можно с легкостью масштабировать горизонтально и сделать
избыточной, добавив несколько брокеров, транзакционных движков и блоков управления
хранилищем. Более сложные сценарии предполагают запуск NuoDB в облаке AWS или в
корпоративных дата-центрах, чтобы обеспечить географическую избыточность.
Вывод
NuoDB по-новому подходит к решению вопроса роста данных и
масштабируемости. Традиционные реляционные БД имеют недостатки, обусловленные
своей архитектурой и требуют применения довольно сложных методов - таких, как
фрагментация, репликация типа "ведущий-ведомый" - для удовлетворения
потребностей горизонтального масштабирования.
NoSQL-базы данных пошли другим путем - отказавшись от SQL и
управления транзакциями. NouDB обещает объединить в себе лучшее из реляционных
БД (поддержка свойств SQL и ACID) и методологий NoSQL (хорошая горизонтальная
масштабируемость, асинхронность репликации по требованию) и дарит отличный шанс
справиться с требованиями к базам данных 21-го века.
Комментариев нет:
Отправить комментарий