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() перед повторным использованием.

Другие вопросы по тегам