Облачные вычисления и центры обработки данных

Cloudflare объявляет о поддержке MySQL в Hyperdrive после исправления редкого сбоя кэширования

Cloudflare объявила о выходе поддержки MySQL в Hyperdrive в общую доступность. Hyperdrive — сервис объединения подключений к базам данных для платформы Workers. Это произошло после исправления сбоя протокола, который примерно в 0,001% кэшированных запросов вызывал пустые ответы или зависания.

2026-10-14
3 мин. чтения
8 просмотров
certi.news Editorial Team
Cloudflare объявляет о поддержке MySQL в Hyperdrive после исправления редкого сбоя кэширования

Cloudflare объявила о выходе поддержки MySQL в Hyperdrive в общую доступность. Это сервис, ориентированный на пользователей Workers для объединения подключений к базам данных и их повторного использования через сеть компании. Переход от экспериментальной версии к общей доступности состоялся после устранения примерно 20 ошибок, включая редкую проблему с кэшированием результатов запросов, из-за которой возвращались пустые ответы, хотя ожидалось наличие данных.

Проблема возникала примерно в 0,001% случаев, что затрудняло её обнаружение по журналам трассировки. Cloudflare выяснила, что сбой проявлялся только при включённом кэшировании, после того как о нём сообщил клиент, наиболее активно использовавший сервис MySQL на этапе тестирования.

Как работает Hyperdrive?

Hyperdrive поддерживает SQL-подключения в рабочем состоянии и открытыми в сети Cloudflare, а затем распределяет их между запросами Workers вместо создания нового подключения для каждого запроса. Сервис также может хранить результаты распространённых запросов в локальной памяти CDN, уменьшая задержку и нагрузку на исходную базу данных.

Архитектура сервиса состоит из узла Client, работающего рядом с Worker, и узла Endpoint, который управляет пулом подключений и располагается в центре обработки данных рядом с исходной базой данных. Если оба узла работают в одном центре обработки данных, они могут совместно использовать один и тот же кэш.

Сбой был связан с различиями в формате протокола MySQL

Hyperdrive взаимодействует с MySQL с двух разных сторон: он выступает сервером перед Worker и клиентом перед исходной базой данных. Поскольку возможности протокола, согласованные с Worker, могут отличаться от возможностей, используемых Hyperdrive при работе с базой данных, сервису необходимо изменять формат сообщений с результатами в соответствии с требованиями конечного клиента.

Расследование сосредоточилось на способе завершения наборов результатов. Некоторые библиотеки MySQL, включая распространённую в Node.js библиотеку mysql2, не поддерживают возможность CLIENT_DEPRECATE_EOF. При отсутствии этой возможности сервер использует пакеты EOF, тогда как в более новом поведении протокола в конце набора результатов они заменяются пакетом OK.

Узел Client иногда сохранял байты после их преобразования в соответствии с возможностями Worker, тогда как узел Endpoint ожидал стандартную версию с возможностями Hyperdrive. Когда один из узлов считывал результат, сохранённый другим узлом, он мог обрабатывать сообщения в неподходящем формате, что приводило к преждевременному EOF, зависанию или пустому результату.

Что изменилось на практике?

Cloudflare исправила проблему, заставив все узлы записывать в кэш стандартную версию результата запроса, всегда закодированную в соответствии с возможностями Hyperdrive, независимо от того, какой узел её сохранил. После выпуска исправления проблема пустых строк исчезла, а показатель успешных подключений Client достиг 99,99%, согласно Cloudflare.

Компания также устранила другие проблемы, выявленные во время тестирования, включая ошибку кодирования эмодзи. Использование utf8 фактически означало использование utf8mb3, который не поддерживает все четырёхбайтовые кодовые точки Unicode. Сервис перешёл на utf8mb4. Кроме того, кодировка теперь повторно устанавливается после выполнения команды COM_RESET_CONNECTION, поскольку эта команда возвращает подключение к настройкам сервера по умолчанию, которыми могут быть latin1.

Доступность и ограничения

Поддержка MySQL стала общедоступной сегодня через панель Cloudflare или инструмент wrangler. Её можно использовать с совместимыми базами данных MySQL, включая подключение к новой базе данных PlanetScale. Этот случай показывает, что объединение подключений и кэширование на промежуточном уровне зависят не только от корректности SQL, но и требуют точного соответствия между состояниями протокола и форматом, который ожидает каждый уровень.

Источник новости
c
Автор

certi.news Editorial Team

Что важно знать

Cloudflare объявила о расширении общей доступности поддержки MySQL в сервисе Hyperdrive для платформы Workers после устранения редкой ошибки кэширования, из-за которой возникали пустые ответы или зависания. Поддержка доступна через панель Cloudflare и инструмент wrangler, а также включает улучшения совместимости с протоколом MySQL и кодировкой Unicode.

  • Hyperdrive объединяет и повторно использует подключения MySQL между запросами Workers через сеть Cloudflare.
  • Проблема возникала при включённом кэшировании примерно в 0,001% запросов из-за различий в представлении сообщений протокола MySQL между узлами Client и Endpoint.
  • Теперь все узлы хранят стандартизированную копию результатов запросов с учётом возможностей Hyperdrive. По данным Cloudflare, это устранило проблему пустых строк, а доля успешных подключений Client достигла 99,99%.
  • Cloudflare также исправила поддержку эмодзи, перейдя с utf8mb3 на utf8mb4, и восстановила кодировку после команды COM_RESET_CONNECTION.
  • Поддержка MySQL общедоступна через панель Cloudflare или инструмент wrangler и может использоваться с совместимыми базами данных MySQL, включая новые базы данных PlanetScale.

Частые вопросы

Что такое Hyperdrive?

Это сервис Cloudflare для пользователей Workers, который объединяет и повторно использует SQL-подключения, а также может кэшировать результаты часто выполняемых запросов рядом с местом их выполнения.

Что вызвало ошибку, которую исправила Cloudflare?

Ошибка возникала из-за различий в возможностях протокола MySQL между узлами, взаимодействующими с Worker, и узлами, взаимодействующими с исходной базой данных. Поэтому иногда считывались кэшированные сообщения в неподходящем формате.

Как стала доступна поддержка MySQL?

Она стала общедоступной через панель Cloudflare или инструмент wrangler.

Изучить сюжет

Связанные темы и сущности

В той же категории

Вам также может понравиться

Все новости