MutationBatch.execute() への呼び出しが、コードを実行しているサーバーのダウンに対して安全であるかどうか、またはどのように安全であるかを理解する必要があります。
以下のコードを見てください (Astyanax の例からのコピー)。このコードを使用して、2 つの異なる列ファミリーの 2 つの行を変更するつもりです。このコードを実行しているサーバーが実行中の任意の時点でクラッシュ/失敗した場合、次のいずれかを (100%) 確認する必要があります。 - Cassandra データストアでは何も変更されていません -すべての変更 (2 行) が Cassandra データストアに適用されます
特に「OperationResult result = m.execute();」という行が気になります。すべての変更を Cassandra のコミット ログに書き込み、Cassandra 内で実行される変更をアトミックにトリガーします (そして、Cassandra は一部のサーバーでの実行を保証します)。
これに関するヘルプは非常に高く評価されています。
ありがとう、スヴェン。
コード:
MutationBatch m = keyspace.prepareMutationBatch();
long rowKey = 1234;
// Setting columns in a standard column
m.withRow(CF_STANDARD1, rowKey)
.putColumn("Column1", "X", null)
.putColumn("Column2", "X", null);
m.withRow(CF_STANDARD1, rowKey2)
.putColumn("Column1", "Y", null);
try {
OperationResult<Void> result = m.execute();
} catch (ConnectionException e) {
LOG.error(e);
}