Astynax MutationBatch
Мне нужно понять исполнение MutationBatch
в случае астянакса
Код
MutationBatch m = keyspace.prepareMutationBatch();
int batch = 10;
int count = 0;
for(int i = 0; i<100 ; i++ ){
count++;
m.withRow(CF_STANDARD1, rowKey)
.putColumn("Column1", "X", null)
.putColumn("Column2", "X", null);
m.withRow(CF_STANDARD1, rowKey2)
.putColumn("Column1", "Y", null);
if(count == batch){
try {
OperationResult<Void> result = m.execute();
count = 0;
} catch (ConnectionException e) {
LOG.error(e);
}
}
}
Теперь, что я смущен, я должен создать новый MutationBatch
после каждого звонка m.execute()
или я могу использовать один созданный ранее.
1 ответ
Решение
Если execute()
был успешным, вы должны иметь возможность повторно использовать MutationBatch.
Документ API гласит: "В случае успеха все мутации будут очищены, и могут быть созданы новые мутации" ( https://netflix.github.io/astyanax/javadoc/com/netflix/astyanax/MutationBatch.html).
Чтобы быть уверенным, что вы можете позвонить discardMutations()
перед повторным использованием.