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

Блог

SQL или NoSQL?

Сергей Бобровский
21.10.2010 12:58:52

Увеличение времени отклика сайта Amazon на 100 мс снижает на 1% денежные поступления от покупателей, а подтормаживание Yahoo на 400 мс уменьшает доход этого портала на 9%, напомнил Michael Zunke из Sentinel, выступая на GOTO. А Gregor Hohpe, архитектор из Google, рассказал, сколь дорого его компании обходятся пользователи. За каждый гигабайт, размещенный программистами на облачном сервисе Google Storage for Developers, онлайновый гигант ежемесячно раскошеливается на 17 центов, а скачка пользователями одного гигабайта облегчает карманы владельцев Гугля на 15-30 центов. Правда, и доступен сервис пока только американцам, да и то не всем.
Подобные проблемы рекомендовано решать с помощью cloud-инфраструктур и NoSQL-систем доступа к данным.

продолжаем путешествие по секциям международной конференции разработчиков GOTO Aarhus 2010

SQL или NoSQL?

Но про аббревиатуру NoSQL не слышало 44% ИТ-спецов, грустит Emil Eifrem, директор NEO4J. Впрочем, эта концепция -- отнюдь не отрицание реляционных систем, правильнее расшифровать ее как Not Only SQL. Объемы типовой корпоративной БД, согласно IDC, с 2007 по 2010 гг. выросли в 25 раз, и возможности реляционные СУБД, особенно в крупных веб-проектах, уже предельны. В дополнение к текстовым блогам и вики-ресурсам в Сеть сегодня активно приходит нагенерированный пользователями мультимедийный контент, а через 10 лет с появлением Web 3.0 и множества подключенных к вебу мобильных аппаратов WWW превратится в GGG (гигантский глобальный граф), и ggg-системам для эффективного функционирования потребуются NoSQL-решения. Будут они развиваться по четырем способам организации и доступа к данным (с активным использованием эвристик): ключ-значение, большие таблицы, документы и графы (миллиарды узлов и связей). Познакомимся с несколькими свободными решениями, доступными уже сегодня.

NoSQL-СУБД CouchDB на самом деле более чем СУБД, пояснил Mathias Meyer, шеф-"визионер" из Peritor. Она сочетает функционал веб-сервера, сервера приложений и хранилища данных, что, например, делает возможным прямое взаимодействие между ядром базы и браузером. Написана она на функциональном языке Erlang, который, собственно, и задумывался именно для подобных систем.

Mike Malone из SimpleGeo отметил отличные характеристики свободной распределенной СУБД Cassandra (в 2008-м фейсбук сделал ее общедоступной) для задач сложной геопространственной обработки данных. Она была выбрана после анализа множества систем.

Найдут себе подходящее NoSQL-решение и поклонники платформы .NET. СУБД Raven DB создана с прицелом именно на последние версии Windows и поддерживает читабельные людьми JSON-документы в формате JavaScript, пояснил Oren Eini из OpenSource.net. Система не привязана к конкретным схемам БД, и реализует язык запросов Linq.

Недоволен названием NoSQL и Andy Gross из Basho. Оно отнюдь не новое (файловые системы тоже нереляционны), а будущие NoSQL-СУБД станут гибридными, и не заменят, а расширят действующие РСУБД, стоимость эксплуатации которых при масштабировании растет очень резко.
Гросс презентовал Riak -- опенсорсное распределенное хранилище "ключ-значение", созданное, конечно, на Erlang. Масштабировать его можно, например, на весь Интернет.

Erjang и Jazz

На фоне таких серьезных erlang-проектов хорошо смотрелось выступление Kresten Krab Thorup из Trifork, который рассказал об Erjang -- открытой реализации Erlang на виртуальной Java-машине, что потребовало 50 тыс. строк кода на Java. Он полагает, что в мире программирования происходит переход от объектного программирования к процессному и антропоморфическому, где объекты-актеры исполняют конкретные роли и обмениваются сообщениями в иерархически смоделированном мире.

Erich Gamma из IBM Rational поведал об эволюции системы разработки Eclipse к новой интеграционной платформе Jazz. Производителей долгоживущего инструментального софта хорошо известна проблема сохранения программных интерфейсов, которые с одной стороны надо периодически менять, так как продукт развивается, но тогда у пользователей развалятся их прикладные системы, построенные с помощью инструментария прежней версии. Им на помощь приходят:
-- opensocial.org -- открытый API для социальных приложений, разворачиваемых на разных веб-системах;
-- open-services.net -- общедоступные описания ресурсов и интерфейсов OSLC для групповой разработки (проектные требования, девелопинг, тестирование, сопровождение, ...);
-- jazz.net -- свободная реализация OSLC.

HTML5

Новый W3C-стандарт HTML5 быстро стал одной из самых популярных технологий 2010 года, считает Jonas Jacobi, CEO Kaazing. А одной из важнейших фич этого стандарта становятся веб-сокеты (websocket.org -- JavaScript-интерфейс), способные простимулировать развитие новых форм коммуникаций. Сегодня веб строится в основном из ПК, ноутбуков и смартфонов, но уже завтра к Сети подключатся телевизоры, плееры, холодильники, автобусные остановки, автомобили и многое-многое другое. Полноценная реализация веб-сокетов обещана в новых версиях браузеров firefox 4 и chrome 7 -- способностью сокетов умещать килобайтный трафик в единичные байты заинтересовался Гугль. Так, сервер на 100 тыс. HTML-клиентов требует канала 700 Мбит/с, а веб-сокеты расходуют в 70 раз меньше.
Довольно оптимистичен в отношении HTML5 и Ben Galbraith из HP/Palm. Этот стандарт хорошо подойдет для мобильных приложений, да и Windows-программистам не потребуются сторонние библиотеки разработки, все можно будет сделать на HTML5. Однако по-прежнему нет полной определенности в отношении развития веб-стандартов и браузеров, а самой Сети нужен хороший профайлер.

окончание следует

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

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

Hyzhak
22.10.2010 20:42:18

только jazz.net, а не jazz.org

22.10.2010 22:09:59

угу, спасибо, исправил

hyzhak
23.10.2010 03:35:14

А вообще спасибо за обзор, я как раз принадлежу к тем 44 % . Было познавательно smile:)

RodgerFox
28.01.2011 00:15:44

Просто понравилось, спасибо)
Блин уже пол года руки не доходят попробовать NoSQL в действии =\

28.01.2011 21:01:53

Я использую сейчас MongoDb, очень нравится, простая и шустрая. Немного необычно, что базу лучше проектировать с расчетом на денормализованные данные.

Виталий
02.07.2011 00:18:10

Сложно представить как можно базу с десятками таблиц в которых сотни миллионов записей спроектировать и использовать на NoSQL. По моему получится не так уж и шутсро.

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