Orca は、PolarDB for MySQL 上に構築された、永続的な Redis 互換の キーと値のデータベースです。Orca 機能を有効にすると、PolarDB for MySQL クラスターは、単一の統合プラットフォーム上でリレーショナルデータと Redis 形式のデータ構造の両方を管理できます。アプリケーションは使い慣れた Redis クライアントとアクセス方法を引き続き使用できるため、個別のミドルウェアを管理する運用上の複雑さと総所有コストを削減できます。このアーキテクチャは、Redis プロトコルを使用するワークロードに、より低いレイテンシーも提供します。さらに、Orca は最大 4 GB の単一の値をサポートしているため、大きなオブジェクトを扱うユースケースに適しています。
仕組み
オープンソースプロジェクトの Pika や Kvrocks のような従来の キーと値のデータベースは、多くの場合、高いスケーラビリティを実現するように設計されています。しかし、そのデプロイはノードの連携や運用管理を複雑にする可能性があります。これらの課題に対処するため、PolarDB for MySQL は Orca 機能を導入しました。PolarDB for MySQL クラスターを購入した後、永続的な キーと値のデータベース (Redis 互換) としても使用できます。MySQL データと キーバリュー (Redis プロトコル) データは分離して保持されます。
PolarDB for MySQL アーキテクチャ上に構築された Orca は、Redis プロトコルのリクエストを解析および処理するためのフレームワークを組み込んでいます。Orca 関連のすべてのリクエストは、専用のポートに接続します。以下の図は、PolarDB for MySQL における Orca の技術アーキテクチャを示しています:
主な利点
-
低コスト
-
Orca は、個別のコンピューティングリソースを必要としません。高性能な 分散ストレージを活用して、大容量の要件を満たします。
-
-
使いやすさ
-
PolarDB for MySQL アーキテクチャに基づき、Orca は 物理レプリケーションを使用して 読み書き分離を可能にします。また、水平および垂直のサーバーレス 弾性スケーリングをサポートし、コンピュートホットスタンバイ機能も含まれているため、運用オーバーヘッドを大幅に削減できます。
-
Orca は、グローバルデータベースネットワーク (GDN) などの高度な PolarDB for MySQL 製品形態と互換性があります。GDN と Orca を併用することで、複数のリージョンにビジネスを展開できます。GDN は、低レイテンシーのクロスリージョンデータ同期、クロスリージョンの 読み書き分離、およびローカル読み取りルーティングを提供し、各リージョンでの Orca へのアプリケーションアクセスのレイテンシーが 2 秒未満になることを確保します。
-
-
データの永続性と強力な整合性
-
PolarDB for MySQL の InnoDB ストレージエンジン上に構築された Orca は、分散ストレージサービスである PolarStore を使用してデータの損失を防ぎます。
-
Orca は、PolarDB for MySQL の SCC テクノロジーを使用することで、プライマリノードと 読み取り専用ノードで強力な読み取り整合性を実現します。
-
-
高性能
-
高性能な InnoDB ストレージエンジンに基づき、Orca は Blink-tree 高性能インデックス構造や論理プリフェッチなどの機能を使用して、高同時実行の読み書きシナリオで大幅なパフォーマンス向上を実現します。
-
ユースケース
Orca は、PolarDB for MySQL 上で Redis プロトコルの互換性を提供し、既存の Redis ユースケースを補完します。Orca は、永続的な キーと値のデータベースとして使用できます。PolarStore 分散ストレージが提供する最大 500 TB の大容量ストレージにより、Redis の使いやすさを維持しながら、コストとデータ量の課題に対処できます。
-
ゲームサーバーのコアデータベース:一般的なゲームのデプロイアーキテクチャはシンプルです。メインアプリケーションは Elastic Compute Service (ECS) インスタンスにデプロイされ、すべてのビジネスデータは Orca に保存されます。永続的なデータベースとして、Orca はデフォルトでマルチ AZ 障害復旧、高速バックアップ、ポイントインタイムリカバリ、高性能な書き込み、および 読み取り専用ノードによるスケールアウト機能を提供し、増大するゲームの書き込み需要に対応します。
-
ゲームのリーダーボード:ゲームアプリケーションでは、リアルタイムのリーダーボード更新とプレイヤーのステータスへの高速アクセスが重要です。Orca はプレイヤーのスコアとランキングを保存できます。Redis プロトコルの ソート済みセットデータ構造を使用することで、リーダーボードを簡単に実装できます。
-
広告レコメンデーションサービス:多くのオンライン広告シナリオでは、広告システムは大量のデータを保存し、高同時実行リクエストを処理する必要があります。Orca は安定した低レイテンシーと低ストレージコストを提供し、広告配信要件に対する効果的なソリューションとなります。
-
Lua スクリプト実行エンジン:クライアントは、データの整合性を確保するために、複数の Redis コマンドを単一のアトミックな操作にまとめる必要があることがよくあります。一般的な例には、在庫削減、分散ロック、レート制限などがあります。Orca は Redis プロトコルの EVAL/EVALSHA コマンドと互換性があり、サーバーサイドでの Lua スクリプトの実行をサポートします。これにより、複数の操作をアトミックなトランザクションにカプセル化し、ネットワークのラウンドトリップを削減し、原子性を保証できます。Orca を有効にすることで、追加のミドルウェアを必要とせずに Lua スクリプティング機能を利用できます。
-
軽量メッセージキュー:一部のビジネスシナリオでは、非同期タスク処理、イベント通知、またはサービスの疎結合化のために、信頼性の高い メッセージキューが必要です。Orca は Redis プロトコルの List データ構造と互換性があり、LPUSH/BRPOP などのコマンドを通じてプロデューサー/コンシューマーモデルを自然にサポートします。PolarDB for MySQL クラスターを購入して Orca を有効にするだけで、軽量 メッセージキューのニーズを満たすことができます。これにより、個別のメッセージミドルウェアを展開・保守する必要がなくなり、アーキテクチャの複雑さと運用コストが削減されます。同時に、PolarDB for MySQL の データの永続性と高可用性が、メッセージデータの耐久性を保証します。
-
統合データスタック上での Redis プロトコル機能:PolarDB for MySQL を統合データプラットフォームとして使用し、かつ Redis のようなデータ構造も必要な場合、Orca は既存の PolarDB for MySQL クラスター上で Redis 互換のデータサービスを提供できます。これにより、リレーショナルデータと、ハッシュ、セット、キュー、リーダーボードなどの構造の両方を、統一された管理アプローチと永続性で管理できます。
-
大きな値オブジェクトのストレージ:ユーザープロファイリング、レコメンデーション機能、ドキュメントストレージ、AI タスクの状態管理などのシナリオでは、単一のキーに対する値が非常に大きくなることがあります。PolarDB for MySQL の BLOB パフォーマンスの最適化に基づき、Orca は最大 4 GB の単一の値をサポートします。これにより、大きなオブジェクトを永続的に保存し、シンプルな キーバリューアクセスモデルを継続して使用し、大きなオブジェクトの分割、移動、管理の複雑さを軽減できます。
-
ローカル開発と統合テスト:ローカル開発、共同デバッグ、CI/CD シナリオでは、アプリケーションは本番環境と同じ Redis プロトコルインターフェイスを使用する必要がありますが、個別の Redis サービスを展開・保守するオーバーヘッドは避けたい場合がよくあります。Orca は Redis と互換性があるため、機能検証、問題の再現、リグレッションテストのための永続的な キーバリューストアとして使用できます。これにより、環境が簡素化され、開発効率が向上します。
要件
お使いの PolarDB for MySQL クラスターは、次の要件を満たす必要があります:
-
CPU アーキテクチャ:X86
-
エンジンバージョン:
-
MySQL 8.0.1、マイナーエンジンバージョン 8.0.1.1.53 以降。
-
MySQL 8.0.2、マイナーエンジンバージョン 8.0.2.2.24 以降。
-
課金
Orca 機能は無料です。コンピューティングノードには課金されません。Orca データが消費するストレージ容量にのみ課金されます。詳細については、「コンピューティングノードの課金ルール」と「ストレージ容量の課金ルール」をご参照ください。
制限事項
-
Orca 機能は、パスワードなしのアクセスをサポートしていません。Orca アカウントの作成が必要です。
-
Orca 機能を有効にすると、Orca は PolarDB for MySQL クラスター全体の CPU およびメモリリソースを再利用します。そのため、Orca のワークロードはクラスターの負荷を増加させます。実際の CPU およびメモリのオーバーヘッドの増加は、ビジネスのワークロードによって異なります。
-
Orca 機能を有効にすると、PolarDB for MySQL クラスターは
__orca_in_polardb_m_という名前のデフォルトの Orca データベースを自動的に作成します。このデータベースにはいかなる操作も実行できず、また同じ名前の別のデータベースを作成することもできません。
互換性
Orca は Redis 7.0 以前の一部のコマンドと互換性があり、RESP2 と RESP3 の両方のプロトコルをサポートしています。現在、最大 16 個の Redis データベース (DB 0 から DB 15) をサポートしています。MOVE などのデータベース間コマンドはサポートされていません。詳細については、「Redis プロトコルの互換性」をご参照ください。
使用方法
-
Orca の有効化
-
クラスター購入ページで Orca を有効にします。
-
クラスター詳細ページの セクションで Orca を有効にします。
-
-
Orca アカウントの作成:クラスター詳細ページの セクションで Orca アカウントを作成します。詳細については、「Orca アカウントの作成」をご参照ください。
-
Orca エンドポイントとポートの管理:クラスター詳細ページの セクションで Orca のエンドポイントとポートを表示します。詳細については、「Orca エンドポイントの管理」をご参照ください。
-
Orca への接続 (Redis プロトコル):Redis クライアントまたはアプリケーションを使用して、Orca に接続し、使用できます。
説明Data Management Service (DMS) を使用して、Orca データに接続して管理できます。
-
Orca メトリクスの表示:クラスター詳細ページで、 セクションに移動し、ビジネスニーズに基づいて Orca の メトリクスを表示します。詳細については、「Orca メトリクスの表示」をご参照ください。
-
(オプション) データの移行:Data Transmission Service (DTS) を使用して、Orca データを移行できます。