Orca は、永続的な Redis 互換の キーバリューデータベース であり、PolarDB for MySQL 上に構築されています。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 データを移行することができます。