翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サポートされている 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 では、ONE
、LOCAL_ONE
、LOCAL_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) が課金されます。
整合性レベル | プロビジョン済み | オンデマンド |
---|---|---|
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 |
サポートされません |