Как стать автором
Обновить

Бэкенд Twitter перешёл на Protocol Buffers

Время на прочтение2 мин
Количество просмотров4.2K
Хотя основные копии пользовательских твитов хранятся в базах данных MySQL и Cassandra, компания также разворачивает дополнительное хранилище на Hadoop, которое можно будет использовать для аналитики и дополнительных программных приложений.

Информацию из этой системы можно запрашивать с помощью Java MapReduce или Pig, собственного SQL-подобного языка запросов Hadoop. В данный момент на этот бэкенд уже переведена система поиска, а в будущем появятся и другие приложения.

Отвергнув популярные технологии вроде XML, CSV и JSON, программисты Twitter выбрали в качестве формата для хранения данных бэкенда относительно неизвестный формат Protocol Buffers, разработанный в Google (он уже обсуждался на Хабре). Технические подробности реализации были оглашены представителями Twitter на конференции HadoopWorld во вторник.

Каждый день в базу Twitter добавляется 12 ТБ новых данных. С такими объёмами выбор правильного формата приобретает критическое значение. Комбинация Protocol Buffers, Hadoop и смежных технологий призвана решить эту проблему.

Каждый твит состоит из 17 полей в базе данных, шесть из которых имеют как минимум одно подполе. В будущем Twitter планирует добавить и другие подполя. В перспективе система хранения должна выдерживать и эффективно работать с триллионом твитов от миллиарда юзеров.

Вдобавок к пользовательскому контенту, для хранения в базу поступает и служебная информация из внутренних логов (более 80 типов операций, которые происходят в системе). Основанная часть этих данных агрегируется с помощью свободной технологии Scribe (разработка Facebook).

Преимущество Protocol Buffers перед XML становится очевидным на больших объёмах данных. По словам разработчиков Twitter, база в триллион твитов на XML может занимать примерно десять петабайт вместо одного. В JSON тоже хранится много лишней информации. На другом полюсе — CSV, где данные разделяются всего лишь запятыми. Здесь ничего лишнего, но трудно структурировать подполя.

Protocol Buffers не имеет этих недостатков. Кроме того, в нём автоматизирован процесс воссоздания структур данных. Как сказано в туториале по Protocol Buffers, достаточно однажды определить метод структурирования данных, после чего можно использовать специально сгенерированный код для простой записи и чтения структурированных данных в/из различных потоков и на разных языках.
Теги:
Хабы:
+39
Комментарии43

Публикации

Изменить настройки темы

Истории

Ближайшие события

PG Bootcamp 2024
Дата16 апреля
Время09:30 – 21:00
Место
МинскОнлайн
EvaConf 2024
Дата16 апреля
Время11:00 – 16:00
Место
МоскваОнлайн
Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн