Google Mesa
Mesa может хранить петабайты данных, обновлять миллионы строк в секунду и обслуживать триллионы запросов в сутки. Источник: Google

Исследователи из Google обсудят новую технологию на VLDB2014, конференции по очень большим базам данных, которая пройдет в сентябре в китайском Ханчжоу.

Как объясняют в Google, Mesa может хранить петабайты данных, обновлять миллионы строк в секунду и обслуживать триллионы запросов в сутки. Систему можно распределить между несколькими центрами обработки данных, и она сможет продолжать работу, даже если один из них отключится.

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

«Mesa принимает данные, генерируемые сервисами более высокого уровня, накапливает их, перманентно хранит и предоставляет по запросу пользователей», — говорится в докладе ее разработчиков.

Mesa позволила Google решить ряд операционных задач, с которыми бы не справились традиционные хранилища данных и другие аналитические системы уровня предприятия.

Во-первых, большинство коммерческих хранилищ данных не поддерживают непрерывное обновление данных — как правило, информация в них обновляется раз в сутки или в неделю. Google же требовалось, чтобы новые данные можно было анализировать сразу, как только они поступили в базу.

Google также нужна была надежная гарантия консистентности запросов, то есть чтобы одинаковые запросы из одного и того же источника всегда давали один и тот же результат независимо от того, какой ЦОД обрабатывает запрос.

Традиционно консистентность обеспечивали только реляционные СУБД, но они могут не справляться с загрузкой петабайт данных, особенно если база тиражируется между многими серверами в кластере, как это обычно делается на предприятиях для ускорения отклика и увеличения коэффициента безотказной работы. Базы NoSQL, такие как Cassandra, с легкостью справляются с загрузкой огромных объемов данных, но Google требовался гораздо более высокий уровень консистентности, чем обеспечивают большинство нереляционных СУБД.

По словам специалистов Google, ни один из коммерческих продуктов и проектов Open Source не отвечал всем требованиям, и тогда была создана Mesa.

В Mesa используется ряд других технологий, разработанных в компании, в том числе распределенная файловая система Colossus, распределенная система хранения данных BigTable и аналитический фреймворк MapReduce. Консистентность помогает обеспечивать распределенный протокол синхронизации Paxos, тоже созданный в Google.

Mesa имеет еще одно преимущество помимо масштабируемости и консистентности — она может работать на стандартных серверах, то есть не требует специализированного дорогостоящего оборудования. Благодаря этому она может действовать в качестве облачного сервиса, легко масштабируемого вверх и вниз в зависимости от потребностей.

Mesa стала еще одним участником семейства инновационных приложений и архитектур для обработки данных, созданных в Google специально для своего бизнеса.

Некоторые разработки компании стали основой широко используемых приложений. В частности, на базе Big Table создан проект Apache Hadoop.

Другие технологии Google, созданные для внутреннего применения, компания впоследствии начала предлагать в качестве облачных сервисов. К примеру, система Google Dremel для интерактивного опроса обширных срезов данных в режиме «только чтение» была положена в основу сервиса Google BigQuery.

По мнению Курта Монаша, главы компании Monash Research, с коммерческой точки зрения перспективы Mesa могут быть ограниченными. Мало каким организациям сегодня требуется опрос столь гигантских и сложных массивов данных, как у Google, с временем отклика меньше секунды, отметил он. Кроме того, в Mesa нет возможности опроса данных с помощью привычных команд SQL. Именно поэтому для Hadoop разработали ряд технологий с поддержкой языков запросов, похожих на SQL, в том числе Hive, Impala и Shark.

Помимо того, считает аналитик, на предприятиях скорее всего в первую очередь обратят внимание на устоявшиеся коммерческие или открытые решения, позволяющие синхронизировать хранилища данных между дата-центрами, а не на разработку Google. В большинстве хранилищ данных в последнее время появляются механизмы управления параллельным доступом с помощью многоверсионности, добавил Монаш.