понедельник, 22 апреля 2013 г.

Знакомьтесь, NuoDB - эластично масштабируемая облачная база данных

Предисловие

Традиционные реляционные базы данных используют синхронную клиент-серверную архитектуру, ограниченную в отношении масштабируемости требованиями распределенных вычислительных систем. В результате, появилось много разных методов фрагментации, кэширования и репликации, нацеленных на удовлетворение этих требований.

С другой стороны, на основе теоремы 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-го века.

Комментариев нет:

Отправить комментарий