BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Cloudflare グローバルリードレプリケーションを搭載したDIデータベースをアップグレード

Cloudflare グローバルリードレプリケーションを搭載したDIデータベースをアップグレード

原文リンク(2025-05-03)

最近のDeveloper Week 2025で、CloudflareはサーバーレスSQLデータベースD1のグローバルリードレプリケーションのベータ版を発表した。これにより、一貫性を損なうことなくグローバルに分散されたオプションが提供される。すべてのリージョンに自動的にプロビジョニングされたレプリカにより、アプリケーションはリクエスト間で強い順序的一貫性を維持しながら、readクエリをより迅速に処理できるようになる。

D1データベースのレプリケーションが有効になると、D1サービスは複数のリージョンにリードレプリカを維持し、パフォーマンスのヒューリスティック、リクエストで行われるクエリの種類、およびクエリの一貫性のニーズに応じてデータベースの適切なコピーにリクエストをルーティン化する。記事「国境を越えた順序的一貫性:D1がグローバルリードレプリケーションを実装する方法」では、Justin Mazzola Paluska氏とLambros Petrou氏がこの機能の実装方法について説明している。

D1のリードレプリケーション機能は、データベースセッションの概念に基づいて構築されています。セッションはアプリケーションの1つの論理セッションを表すすべてのクエリをカプセル化します。たとえば、セッションは特定のウェブブラウザからのすべてのリクエストやユーザーの1人が使用するモバイルアプリからのすべてのリクエストを表すことがあります。セッションの実装により各クエリがどのデータベースのコピーにルーティングされるかに関係なく、セッション内のすべてのクエリに対して順序的一貫性が保証されます。

出典: Cloudflareブログ

Cloudflare D1リードレプリケーションは、他のデータベースクラスターと同様に、ユーザーリクエストを近くのリージョンにあるリードレプリカにルーティングすることで平均レイテンシを低減し、リードクエリをリードレプリカにオフロードすることで全体のスループットを向上させる。リードレプリケーションの実装に関する技術的な詳細では、Paluska氏とPetrou氏がセッションAPIの必要性と、なぜレプリカに直接クエリを実行することができないのかを明確にしている。

D1はCloudflareのグローバルネットワーク上で動作しており、同じクライアントからのリクエストが毎回同じレプリカにルーティン化されることを保証する方法はありません。さらに、D1のリードレプリケーションは非同期であるため、レプリカを切り替える際に切り替え先のレプリカが以前使用していたレプリカに対して遅れている可能性があります。

withSessionメソッドは、ブックマークをパラメータとして受け取り、D1にセッションの最初のクエリをどこに転送するかを指示する。first-unconstrainedオプションでは、最初のクエリがどこでも処理されることを許可するが、first-primaryオプションではセッションの最初のクエリがプライマリに転送されることが保証される。著者たちは可能な限り以前に受け取ったブックマークを渡すことでリクエスト間でセッションを継続することを推奨しており、これによりクライアントのすべてのリクエストが同じセッション内に収まるようになる。

Cloudflare D1へのグローバルリードレプリケーションの追加は、コミュニティが求めていた機能を提供し懸念を解消するものだ。最近のRedditスレッドで、NodecraftのCTOであるJames Ross氏は次のように述べた。

D1は現在あまり人気がないのは、いくつかの注意点があり、より広範なユースケースに推奨するのが難しいからです。 (...) 現在、D1は単一のリージョンに存在しています。彼らのマーケティングでは時折異なる主張がなされますが、今後、リードレプリカが導入されてこの状況が改善されることを期待しています。しかし、現時点ではD1は基本的に単一のサーバーにデプロイされたSQLiteに過ぎません。

D1のリードレプリケーションは、Developer Week 2025でのCloudflareの主要な発表の一つだった。InfoQで別途報告されたようにクラウドプロバイダーは安全な資格情報管理のためのCloudflare Secrets Storeのパブリックベータ版を開始した。さらに、Cloudflare SnippetsCloudflare Workflow(Workersの上に構築された耐久性のある実行エンジン)は、どちらも一般提供が開始された。また、React Router v7、Astro、Vue、Cloudflare Viteプラグインのサポートにより、Cloudflare Workers上で静的サイトやフルスタックアプリケーションをデプロイすることも可能になった。

新しいリードレプリケーション機能は現在ベータ版であり、グローバルレプリカの作成とリクエストルーティングが追加費用なしで利用可だ。チームは将来的に、より高度なレプリカ配置ポリシーを含む追加機能を期待している。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT