CONSISTENCY

現在の整合性レベルを表示するか、レベルを指定して設定します。

現在の整合性レベルを表示するか、レベルを指定して設定します。

構文 

CONSISTENCY level

構文の凡例 

  • 大文字はリテラルを意味する
  • 小文字は、リテラルでないことを意味する
  • イタリック体は指定が任意であることを意味する
  • パイプ(|)記号はORまたはAND/ORを意味する
  • 省略記号(...)は繰り返し可能を意味する
  • 範囲記号「(」および「)」はリテラルではなく、範囲を示す

説明 

CONSISTENCYコマンドに引数を与えることにより、デフォルトの整合性レベルONEを変更して、将来の要求に備えて整合性レベルを構成します。有効な値は、以下のとおりです。ANYONETWOTHREEQUORUMALLLOCAL_QUORUMEACH_QUORUMSERIAL、およびLOCAL_SERIAL

引数を指定せずにコマンドを実行すると、現在の整合性レベルが表示されます。

 

引数を指定せずにCONSISTENCYを使用して、現在の整合性レベルを探索します。

cqlsh> CONSISTENCY

デフォルトを変更していない場合、引数なしのCONSISTENCYコマンドの出力は、以下のようになります。

Current consistency level is ONE.

引数を指定してCONSISTENCYを使用し、整合性レベルを新しい値に設定します。

cqlsh> CONSISTENCY QUORUM
整合性レベルがQUORUMに設定されます。
整合性レベルはSERIALまたはLOCAL_SERIALに設定できますが、サポートされているのはSELECTクエリーのみです。整合性レベルがこれらのオプションのどちらかに設定されている場合、INSERTおよびUPDATEコマンドは失敗します。「SERIAL整合性SERIAL CONSISTENCY」を参照してシリアル整合性レベルを設定してください。
注: 整合性レベルは、軽量以外のすべてのトランザクションの読み取りと書き込みの整合性レベルを意味します。シリアル整合性レベルは、IF EXISTSおよびIF NOT EXISTSが使用される、軽量トランザクションの読み取りと書き込みの整合性レベルを意味します。
cqlsh> CONSISTENCY SERIAL
整合性レベルがSERIALに設定されます。

データのINSERTが試行されます。

cqlsh> INSERT INTO bar (foo) VALUES ('foo');
InvalidRequest:code=2200 [Invalid query] message="You must use conditional updates for serializable writes"
cqlsh> INSERT INTO bar (foo) VALUES ('foo') IF NOT EXISTS;
InvalidRequest:code=2200 [Invalid query] message="SERIAL is not supported as conditional update commit consistency.Use ANY if you mean "make sure it is accepted by I don't care how many replicas commit it for non-SERIAL reads""