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. В большинстве хранилищ данных в последнее время появляются механизмы управления параллельным доступом с помощью многоверсионности, добавил Монаш.