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

Поделитесь материалом с коллегами и друзьями

Купить номер с этой статьей в PDF