Кажется, парадигма NoSQL еще недавно считалась главным «хитом сезона» — но сегодня о ней всерьез заговорили как о пережитке прошлого. Сегодня мы напомним о том, что такое NoSQL и объясним, чем «не угодила» эта концепция, а также расскажем о пришедшей ей на смену NewSQL и ее важной реализации – облачной базе данных NuoDB.
NoSQL
В чем главные «фишки» «широко известной в узких кругах» технологии NoSQL (aka «не только SQL»)? Во-первых, это проектирование с учетом масштабирования и линейная масштабируемость, когда добавление нового узла повышает производительность всей системы. Во-вторых, это скорость: по сравнению с предшественниками, время отклика системы примерно в 100 раз меньше (и измеряется в миллисекундах вместо сотен миллисекунд). В-третьих, это принципиальные изменения в наборе свойств: если для РСУБД необходима ориентация на требования ACID (атомарность, согласованность, изолированность, надежность), то для NoSQL эти требования заменяются так называемым набором BASE:
- Базовая доступность (Basic Availability) гарантирует завершение каждого запроса.
- Гибкое состояние (Soft state) – состояние системы может изменяться вне зависимости от того, были ли введены новые данные, или нет.
- Согласованность в конечном счете (Eventual consistency) означает, что данные могут какое-то время находиться в несогласованном состоянии, но обязательно приходят к нему после.
Так в чем же проблема? Почему NoSQL плохо приживается в сфере бизнеса? Ответ лежит на поверхности: предприятия используют РСУБД именно потому, что транзакционные системы и требования ACID удовлетворяют их нуждам. Довольно «туманные» перспективы, которые обещает масштабируемость – вроде увеличения производительности – не кажутся достойными того, чтобы ради них жертвовать надежным сервером и проверенной реляционной системой, а также серьезными финансовыми вложениями в разработку собственных API для связи узлов распределенной системы с мейнфреймом. К тому же, в некоторых сферах – той же банковской – без транзакций не обойтись вообще. А данные тем временем «растут», и необходимость в распределенных системах вместе с ними. Как быть?
Почему NewSQL?
Относительно новая концепция NewSQL призвана решить эту проблему, объединив преимущества реляционных БД с распределенной архитектурой.
- приложения взаимодействуют в основном посредством SQL;
- транзакции полностью поддерживают требования ACID;
- при управлении не применяется механизм блокировок – таким образом, исключается вероятность конфликта между записываемыми и считываемыми в реальном времени данными;
- архитектура shared—nothing, при которой каждой узел системы отвечает за свой набор данных, являясь независимым и самодостаточным, подразумевает легкую и быструю масштабируемость;
- производительность узла СУБД на NewSQL намного выше, чем у традиционных РСУБД;
- скорость отклика системы в 50 раз превышает эту величину у традиционных РСУБД.
Такое решение может понравится всем: специалистам – потому что новая архитектура надежна и вместе с тем работает гораздо быстрее и производительнее, чем «классика» РСУБД, администраторам – потому что поддерживать работу такой распределенной системы гораздо проще; наконец, предпринимателям – потому что обеспечение работы распределенной системы в ее классическом понимании требует больших вложений – решив же отдать предпочтение CУБД на NewSQL, можно уберечь себя от лишних временных, денежных и даже кадровых затрат. А поскольку «общаться» c системой можно будет все на том же SQL, перейти на нее, по крайней мере, специалистам по работе с данными, будет не слишком трудно.
Что такое NuoDB?
Понятное дело, NewSQL – это всего лишь парадигма, концепция; задача ее практической реализации стоит перед вендорами, которые, к счастью, сразу «поймали волну». Сегодня мы расскажем о показавшемся нам особенно интересном облачном решении NuoDB.
По определению самих разработчиков, NuoDB – это распределенная база данных, работающая по принципу связи между клиентом и облаком. Основные принципы работы заключаются в следующем:
- Объектно-распределенная архитектура. При добавлении нового узла производительность и скорость работы системы повышается.
- «Безосколочная» масштабируемость. База данных спроектирована так, чтобы избежать «узких мест» данных, распределяя задачи между несколькими процессорами.
- Используется принцип пирингового взаимодействия – все узлы равноправны.
- Полная поддержка требований ACID. Более того, NuoDB разработана с учетом всех 12 правил Э. Кодда для реляционных БД.
- БД использует так называемый «поярусный» подход – архитектура включает в себя многочисленные повторяющиеся ярусы процессоров транзакций (TE – transaction engines) и модулей управления памятью (SM – storage managers). Этот подход позволяет контролировать процесс масштабирования данных в облаке.
Резюме
Пока в кулуарах ведутся оживленные дискуссии по поводу будущего распределенных систем, факт остается фактом: сейчас без них не может обойтись ни одна компания, имеющая дело с большими данными. Одновременно бизнес не спешит отказываться от удобной и надежной реляционной архитектуры БД – именно поэтому такие «хиты сезона» как NoSQL приживаются в корпоративной сфере не очень хорошо. Такая ситуация дала толчок к появлению архитектуры NewSQL, которая объединяет отличную масштабируемость с привычными всем нам достоинствами РСУБД. Что из этого выйдет – покажет время.
Автор: Елизавета Филиппова