Компания Cloudflare объявила о выходе из бета-тестирования поддержки MySQL в сервисе Hyperdrive. Этот инструмент представляет собой пулер соединений для платформы Cloudflare Workers, который теперь обеспечивает стабильную работу с базами данных MySQL наряду с ранее поддерживаемым Postgres.
В процессе доработки сервиса инженеры устранили ряд ошибок, включая проблемы с кодировкой эмодзи и сбросом параметров сессии при использовании команды COM_RESET_CONNECTION. Эти исправления позволили привести надежность MySQL к целевому уровню 99,99%.
Одной из наиболее сложных проблем стал баг, приводивший к получению пустых ответов в 0,001% запросов. Ошибка возникала из-за архитектуры общего кэша, когда узлы Client и Endpoint, работающие в одном дата-центре, обменивались данными, не учитывая различия в возможностях протокола.
Выяснилось, что кэш хранил байты ответов, закодированные под возможности Hyperdrive, в то время как клиентские драйверы ожидали иного формата. Это приводило к рассинхронизации протокола, преждевременному завершению пакетов или зависаниям при обработке запросов.
Для решения проблемы разработчики изменили логику кэширования: теперь в кэш записывается каноническая версия ответа, закодированная по возможностям Hyperdrive. Это позволило устранить сбои и обеспечить стабильную работу сервиса для пользователей.





