Google модифицирует код mysql для использования на youtube

Просмотр списком
Google модифицирует код MySQL для использования на YouTube

Инженеры видеохостинга YouTube ведут разработку набора программного обеспечения Vitess, задача которого — помочь открытой СУБД MySQL работать более эффективно в больших производственных средах с высокими нагрузками.

Для того, чтобы писать программы, работающие со связкой Vitess-MySQL, необходимо использовать язык программирования Go, также созданный в Google.



Как рассказали в Google, на YouTube сейчас уже используется один из компонентов Vitess, называемый Vtocc, он помогает обслуживать показы видео для примерно 800 млн ежемесячных пользователей портала. В Google говорят, что сейчас Vtocc полностью стабилен и имеет все необходимые инструменты для использования в производственной среде. Первый публичный показ Vtocc состоялся на этой неделе на конференции uSENIX lisa (Large Installation System Administration) в Калифорнии.

Напомним, что на сегодня на YouTube загружаются около 72 часов видео ежеминутно, а в месяц пользователи просматривают около 4 млрд часов видео. Технически, портал создан таким образом, что физически все видеозаписи хранятся напрямую в файловой системе, однако портал применяет MySQL для хранения метаданных, необходимых для обслуживания каждого видео. К таким данным относится статистика, реклама, пользовательские настройки, данные о географическом местоположении и другие.

В Google говорят, что применяют MySQL из-за надежности последней. Майк Соломон, инженер YouTube, говорит, что у MySQL есть некоторые ограничения, но они известны и их можно обходить. Тем не менее, даже быстрота и скорость MySQL по меркам YouTube оказываются недостаточными и поэтому в Google говорят, что возникла необходимость в создании дополнительных инструментов, расширяющих масштабируемость YouTube.

"MySQL не слишком эффективна в масштабах YouTube. Здесь основная проблема заключается в том, что при достижении определенной точки вам приходится уделять слишком много времени управлению множеством одновременно работающих серверов СУБД. Мы решили автоматизировать этот аспект", — говорит Соломон.

По его словам, обычно каждое соединение в MySQL требует собственного потока на сервере. Когда таких потоков десятки тысяч, это очень неэффективно, а главное — значительно растет вероятность ошибки. С другой стороны, разработчики решили не модифицировать ядро СУБД, так как это значительно усложнило бы понимание кода, а также обновление программного обеспечения в будущем.

В итоге, Vitess работает в паре с MySQL и предлагает дополнительные возможности по управлению. К примеру, Vtoсс группирует тысячи одновременных запросов в небольшие блоки, чтобы передавать их серверу MySQL с более высокой эффективностью. С точки зрения сервера, к СУБД делается всего несколько одновременных запросов. Vtocc способен группировать запросы, убирать дублирования и проводить другие операции.

В Google говорят, что код на Go пишется довольно просто и быстро, а главное имеет высокую скорость работы. К примеру, 30 000 строк кода в Vitess компилируются в бинарную форму за 30 секунд.

В будущем компания обещает реализовать дополнительную функциональность в Vitess. Например, репликацию данных, оптимизацию и реализовать систему полностью автоматического управления.

Источник: cybersecurity
5285
facebook
Нажмите «Нравится»,
чтобы читать Relax.ru в Facebook
 Top