Несмотря на большой шум в ИТ-среде, поднимаемый вокруг NoSQL-решений, большая часть данных по-прежнему хранится в SQL-подобных системах управления данными. Впрочем, если у компании есть соответствующие ресурсы, а шаблонные решения ее не устраивают, то она вполне может создать что-то свое, пусть даже на базе шаблонного решения. Именно так и поступила Google, создав собственную ACID-совместимую SQL-подобную базу данных, которая работает внутри компании, обслуживая ее внутренние потребности.
На этой неделе представители Google приняли участие в отраслевой конференции VLDB (Very Large Data Base) в США, где рассказали о том, что компания отказалась от использования СУБД MySQL для обслуживания рекламной платформы AdWords и перевела ее на собственную разработку F1, которая базируется на MySQL, но не идентична ей полностью.
Программная платформа AdWords включает в себя "сотни приложений и тысячи пользователей", которые в общей сложности разделяют примерно 100 терабайт данных, производя к серверам "сотни тысяч запросов в секунду". В итоге, созданная система работает с "триллионами рядов данных в день". При всем этом, отказоустойчивость платформы составляет 99,999%.
Отметим, что впервые представители Google рассказали о F1 еще год назад, но тогда были даны лишь общие сведения, без каких-либо технических деталей, тогда как сейчас в компании предоставили несколько более подробные данные.
Как рассказали в Google, F1 использует некоторые наиболее продвинутые технологии компании, такие как BigTable и систему Spanner для разбивки данных по нескольким серверам для ускоренного процессинга. Две этих технологии работают вместе с целью повышения производительности при обработке больших массивов информации. При этом, в компании говорят, что F1 объединяет в себе гибридную модель обработки данных, сочетая скорость SQL и масштабируемость NoSQL-решений.
С точки зрения модели, F1 рабоатает поверх Spanner, добавляя к последнему пять новых возможностей, таких как распределенные SQL-запросы, транзакционная целостность вторичных индексов, асинхронное изменение схем (реорганизация баз данных, оптимистичные транзакции, а также автоматическое изменение истории и публикации данных). При всем этом схема данных F1 подобна схемам, используемым обычными СУРБД с расширениями в области иерархии таблиц и столбцов, а также новым типом данных Protocol Buffer.
Иерархия таблиц означает, что каждый первичный ключ работает с другими ключами, относясь к ним как классу "родитель-потомок". На практике это позволяет создавать таблицы с подчиненными подтаблицами и подгруппами данных. Это также позволяет очень быстро объединять большие массивы генерируемых данных. В Google говорят, что в обычных SQL-базах такого нет.
Вообще, в компании говорят, что многие решения в F1 - это синтез SQL и NoSQL. Это, в частности, поддержка принципов ACID, систем управления схемами и индексами, а также поддержка Google MapReduce, что позволяет проводить Hadoop-подобные задания. В то же время, говорят, что за счет объединения разнородных технологий по некоторым типам запросов наблюдается рост времени запросов.
Впрочем, подобные накладные издержки перекрываются преимуществами. "С F1 и Spanner мы научились работать с совершенно новыми данными. Нам удалось перенести громадную систему AdWords в новую базу данных, которая действительно работает, причем она более масштабируема, нежели MySQL, но у нее традиционный MySQL-подобный стиль запросов", - говорит Джефф Шут, ведущий инженер Google F1.
По его словам, одной из причин появления F1 стало разочарование Google в обычных нереляционных системах, в частности в их слабом взаимодействии с иерархическими системами.
Источник: CyberSecurity
|