サポートされている Apache Cassandra の読み取りおよび書き込みの整合性レベルと関連するコスト - Amazon Keyspaces (Apache Cassandra 向け)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サポートされている Apache Cassandra の読み取りおよび書き込みの整合性レベルと関連するコスト

このセクションのトピックでは、Amazon Keyspaces (Apache Cassandra 向け) における読み取りオペレーションと書き込みオペレーションに対してサポートされている Apache Cassandra 整合性レベルについて説明します。

書き込みの整合性レベル

Amazon Keyspaces では、耐久性と高可用性を確保するために、複数のアベイラビリティーゾーンにおいて、全ての書き込みオペレーションが 3 回レプリケートされます。書き込みは、書き込みが承認される前に LOCAL_QUORUM 整合性レベルを使用して永続的に保存されます。1 KB の書き込み 1 回につき、プロビジョンドキャパシティモードを使用するテーブルの場合は 1 書き込みキャパシティユニット (WCU)、オンデマンドモードを使用するテーブルの場合は 1 書き込みリクエストユニット (WRU) が課金されます。

cqlsh を使用すると、現在のセッションのすべてのクエリの整合性を次のコードで LOCAL_QUORUM に設定できます。

CONSISTENCY LOCAL_QUORUM;

整合性レベルをプログラムで構成するには、適切な Cassandra クライアントドライバーで整合性を設定します。たとえば、4.x バージョンの Java ドライバーでは、以下に示すように app config ファイルの整合性レベルを設定できます。

basic.request.consistency = LOCAL_QUORUM

3.x バージョンの Java Cassandra ドライバーを使用している場合は、次のコード例のように .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM) 追加するとセッションの整合性レベルを指定できます。

Session session = Cluster.builder() .addContactPoint(endPoint) .withPort(portNumber) .withAuthProvider(new SigV4AuthProvider("us-east-2")) .withSSL() .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_QUORUM) .build() .connect();

特定の書き込み操作の整合性レベルを設定するには、Java ドライバーを使用しているときに setConsistencyLevel 引数を指定して QueryBuilder.insertInto を呼び出すときの整合性を定義します。

読み取りの整合性レベル

Amazon Keyspaces では、ONELOCAL_ONELOCAL_QUORUM という 3 つの読み取り整合性レベルがサポートされています。Amazon Keyspaces では、LOCAL_QUORUM 読み取りの処理中に、過去に成功したすべての書き込みオペレーションから最新の更新が反映されているレスポンスが返されます。整合性レベル ONE または LOCAL_ONE を使用すると、読み込みリクエストのパフォーマンスと可用性を向上させることができますが、最近完了した書き込みの結果がレスポンスに反映されない可能性があります。

ONE または LOCAL_ONE の整合性を採用した 4 KB の読み取り 1 回につき、プロビジョンドキャパシティモードを使用するテーブルの場合は 0.5 読み込みキャパシティユニット (RCU)、オンデマンドモードを使用するテーブルの場合は 0.5 読み込みリクエストユニット (RRU) が課金されます。LOCAL_QUORUM の整合性を採用した 4 KB の読み取り 1 回につき、プロビジョンドキャパシティモードを使用するテーブルの場合は 1 読み込みキャパシティユニット (RCU)、オンデマンドモードを使用するテーブルの場合は 1 読み込みリクエストユニット (RRU) が課金されます。

テーブルごとの読み取り整合性と読み取りキャパシティスループットモードに基づいた 4 KB 読み取り 1 回あたりの課金
整合性レベル プロビジョン済み オンデマンド
ONE 0.5 RCU 0.5 RRU
LOCAL_ONE 0.5 RCU 0.5 RRU
LOCAL_QUORUM 1 RCU 1 RRU

読み取り操作に別の整合性を指定するには、Java ドライバーを使用しているときに setConsistencyLevel 引数を指定して QueryBuilder.select を呼び出します。

サポートされていない整合性レベル

次の整合性レベルは Amazon Keyspaces ではサポートされていないため、例外が発生します。

サポートされていない整合性レベル
Apache Cassandra Amazon Keyspaces
EACH_QUORUM サポートされません
QUORUM サポートされません
ALL サポートされません
TWO サポートされません
THREE サポートされません
ANY サポートされません
SERIAL サポートされません
LOCAL_SERIAL サポートされません