Облака · 11 ноября 2026 г.

Также опубликовано на 中文, 日本語, 한국어, ไทย, العربية, हिन्दी, Indonesia

Cloudflare масштабирует плоскость управления D1 для миллионов баз данных

white clouds
C Dustin / Unsplash

Компания Cloudflare переработала плоскость управления своей бессерверной базой данных SQL под названием D1, чтобы обеспечить поддержку миллионов баз данных. В рамках этого обновления компания внедрила механизмы повторных попыток, идемпотентность и согласованность в конечном счете, чтобы избежать централизованных узких мест.

Архитектура плоскости управления D1 базируется на использовании Postgres для транзакционных метаданных, ClickHouse для аналитики и Workers KV для данных маршрутизации с глобальной репликацией. Для повышения масштабируемости и восстановления после сбоев используются распределенное кэширование метаданных, объединение соединений, асинхронные рабочие процессы и периодические проверки состояния. Обработка запросов вынесена на периферию, отдельно от операций централизованного управления.

Для синхронизации каждого объекта D1 Durable Object с Postgres, который является основным источником истины для лимитов аккаунтов и существования баз данных, Cloudflare применяет 30-секундные сигналы сердцебиения с индивидуальным джиттером для каждой базы данных. Этот механизм позволяет автоматически исправлять ошибки при создании или удалении объектов: осиротевшие объекты помечаются как удаленные, а метаданные маршрутизации Workers KV восстанавливаются в случае сбоя обновлений.

Чтобы снизить нагрузку на централизованную базу данных Postgres, запросы D1 направляются от Edge API Worker через Eyeball Worker напрямую к соответствующему объекту D1 Durable Object. Edge API Worker отвечает за аутентификацию, авторизацию, ограничение частоты запросов и валидацию, в то время как Eyeball Worker полагается на авторизацию, закодированную в привязках D1, что исключает повторные проверки на пути запроса.

Лимиты хранилища D1 контролируются с помощью асинхронных обновлений использования, которые ставятся в очередь и объединяются в пакеты для защиты Postgres от всплесков записи. Общие итоги по аккаунтам поддерживаются через инкрементные дельты хранилища, что позволяет избежать дорогостоящего сканирования для аккаунтов с миллионами баз данных. Объекты Durable Objects проверяют эти итоги через краткосрочный кэш Hyperdrive и блокируют запись, если она превышает лимит аккаунта.

База данных D1, представленная в 2022 году, построена на базе SQLite и работает в глобальной сети Cloudflare. За последний год количество ежедневно активных баз данных выросло в 18 раз.