我需要了解对 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);
}