Программисты YouTube улучшают масштабируемость MySQL

25/12/2012 01:05

Программисты YouTube разрабатывают систему Vitess, оптимизирующую работу MySQL в крупномасштабных средах. Разработка ведется на языке программирования Go, созданном в родительской компании YouTube, — Google. Видеоролики YouTube хранятся в обычной файловой системе, а в MySQL заносятся метаданные — пользовательские настройки, параметры рекламы и т. д. Потребность в Vitess авторы объясняют тем, что, по их мнению, у MySQL есть проблемы с масштабированием в очень больших средах; по их словам, корректировать код самой MySQL не представляется возможным из-за его запутанности, поэтому решено было создать надстройку, которая автоматизирует управление оборудованием и виртуальными машинами, а также обеспечит устойчивость сложных операций к ошибкам. Один из элементов Vitess — Vtocc уже используется в сервисе. Он распределяет поступающие SQL-запросы по небольшим пакетам задач, не вызывающим перегрузки MySQL. Vtocc также оптимизирует сами запросы по скорости и кэширует результаты для мгновенной выдачи при повторном поступлении такого же запроса. Язык Go, утверждают программисты, позволяет писать продуктивнее, чем на Си и С++, благодаря богатству библиотек и быстроте компиляции (30 тыс. строк на Go компилируются всего за 30 секунд). Помимо этого, на Go проще писать параллельные программы.
Источник