НовостиСобытияКонференцииФорумыIT@Work
Идеи и практики автоматизации:

Блог

Отказались от SQL, откажемся и от серверов

Сергей Бобровский
18.05.2012 10:51:10
Теги: Hadoop, NoSQL, PaaS

Изучая альтернативы Hadoop, я наткнулся на интересный проект Plasma, распределенную файловую систему, на основе которой разворачивается NoSQL-СУБД и фреймворк Map/Reduce. Его особенность: хорошая сбалансированность, отсутствие определенной кривизны Hadoop, и например работа с файлами практически неограниченного размера. Автор этого проекта Gerd Stolpmann имеет богатый опыт в разработке и развертывании подобных систем, и в этой связи интересно его весьма оригинальное мнение о тренде развития серверных технологий.

Вот как Stolpmann рассуждает. После того, как он разработал распределенную файловую систему PlasmaFS и реализовал на ее основе схему map/reduce, стало интересно, а насколько сложно или легко поверх такой системы организовать хранилище ключ-значение? Насколько развивающиеся сегодня сложные серверные технологии упрощают создание распределенных систем?

За счет реализации в PlasmaFS транзакционной работы библиотека обработки БД ключ-значение заняла всего две тысячи строк кода! При этом обеспечен высокий уровень целостности данных, практически неограниченная масштабируемость по операциям чтения и очень высокая производительность по записи. То есть наличие качественной платформы делает возможной быструю реализацию фич, которые сами по себе крайне сложны. А в результате сортировка 100 Гб данных, распределенных по 10 файлам, потребовала 37 мин 45 сек для Hadoop и 32 мин 55 сек для Plasma.

За счет того, что серверная функциональность выносится в различные уровни базовых платформ (скрывается от разработчика все глубже), получается, что map/reduce реализована в библиотеке, в которой даже нету никакого сетевого кода. Фактически это новая парадигма NoServer (not only server). С одной стороны, код привязан к родительским технологиям, но зато файловый сервер при этом превращается в черный ящик, как и СУБД -- к движку можно обращаться по сети через простой API, а как это работает там внутри, программисту не важно. NoServer предлагает следующий шаг: так как функции платформы низкоуровневые, у разработчика появляется большая свобода действий. Взамен SQL-запросов предлагаются стандартные файловые операции, дополненные транзакционной поддержкой. В результате получается возможность быстро реализовывать трудоемкие вещи. На мой взгляд, NoServer -- это нечто вроде PaaS, где "пользовательские" сервисы предоставляются в виде API для программистов.

База ключ-значение оказалась самым простым примером, и Stolpmann довольно подробно рассказывает о возможном применении PlasmaFS. Он в частности отмечает, что если создается OPTP-система, РСУБД пока наилучший вариант. Но если требуется сверхскоростная производительность по достаточно простым операциям чтения/записи, с гарантией ACID, а также особенно важна скорость разработки, NoSQL/NoServer представляются очень соблазнительными альтернативами.

Свежая новость в тему: Sauce Labs, два года назад перешедшая с MySQL на NoSQL CoachDB, сегодня снова возвращается на MySQL. Главные претензии к CoachDB (несмотря на заметный выигрыш в производительности) -- излишне большое время даунтайма, а сервисы Sauce Labs к этом крайне чувствительны. Инженеры меняли железо, долго перенастраивали CoachDB, переписывали софт, но это не помогло.
Простои же и подтормаживания, судя по всему, связаны с проблемами при работе CoachDB с относительно медленными дисками, сложностями с индексацией, требовавшими перезапуска СУБД, и периодическими клинчами, связанными с некорректной обработкой запросов.

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

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии

Олег
18.05.2012 11:38:25

Ваш материал очень интересно читать.

SergejCh_in
20.05.2012 19:29:46

Вопрос не менее интересный.
Может ли одиночка, или в лучшем случае компания энтузиастов выйти на уровень индустрии ?
Что мы имеем по этому вопросу с подачи движения FOSS как бы известно. Конечно, также известно, в движение отличные идеи. Но разницу между концепцией - индустрией не просто игнорировать.
В личном, самопальном проекте использовать NoSQL, да нет проблем.
Где аналог http://www.oracle.com/pls/xe102/homepage в http://plasma.camlcity.org/plasma/index.html ?
Не считая форумов и т.д.
Начинание будет востребовано, если на него него обратят внимание сами производители DBMS, как это ни странно.

21.05.2012 10:56:48

Выходят же два-три человека на мировой уровень, как в Instagram. Но оригинальную серверную технологию, конечно, гораздо труднее продвинуть.

SergejCh_in
21.05.2012 19:55:25

Здесь речь о корпоративной DBMS или портала районной соц.сети ?

Если второе, то чем так плох MySql ? Все отработано, LAMP - отличный инструмент.
Впрочем, немало интересных проектов. пример nodeJS. Наверное найдет своего веб-строителя The Plasma Project.
Почему так важна поддержка для потребителя ? Потому, что время содержания собственных отделов САПР -АСУ ТП уже давно ушло. Есть клиенты, есть для них задачи.
Допиливать под колорит или свои реалии ? Нельзя уже так работать.

PS . Для индивидуального проекта The Plasma Project конечно интересен.
PPS. Отдельный вопрос, насколько вообще будут востребованы подобные индивидуальные проекты с переходом в "облака". Поверьте у владельцев ЦОДов свои мнения что лучше или выгоднее использовать. Причем на перспективу. Вот если кто - то из крупных провайдеров начнет использовать The Plasma Project, то это будет очень интересно.

Const
23.05.2012 14:02:29

А что такое «БД ключ-значение»?

24.05.2012 19:50:42

key-value store
http://habrahabr.ru/post/103021/

Только зарегистрированные и авторизованные пользователи могут добавлять комментарии