import org.slf4j.LoggerFactory;
/**
- * Task that coordinates the Commit phase of the provided {@link DOMStoreThreePhaseCommitCohort}'s
+ * Task that coordinates the Commit phase of the provided {@link DOMStoreThreePhaseCommitCohort}'s.
*/
@Beta
public class ShardCommitCoordinationTask implements Callable<Void> {
private final DOMDataTreeIdentifier rootShardPrefix;
private final Collection<DOMStoreThreePhaseCommitCohort> cohorts;
+ private InmemoryDOMDataTreeShardWriteTransaction transaction;
public ShardCommitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
- final Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
+ final Collection<DOMStoreThreePhaseCommitCohort> cohorts,
+ final InmemoryDOMDataTreeShardWriteTransaction transaction) {
this.rootShardPrefix = Preconditions.checkNotNull(rootShardPrefix);
this.cohorts = Preconditions.checkNotNull(cohorts);
+ this.transaction = Preconditions.checkNotNull(transaction);
}
@Override
try {
LOG.debug("Shard {}, commit started", rootShardPrefix);
commitBlocking();
+ transaction.transactionCommited(transaction);
return null;
} catch (final TransactionCommitFailedException e) {
private ListenableFuture<?>[] commitAll() {
final ListenableFuture<?>[] ops = new ListenableFuture<?>[cohorts.size()];
- int i = 0;
+ int index = 0;
for (final DOMStoreThreePhaseCommitCohort cohort : cohorts) {
- ops[i++] = cohort.commit();
+ ops[index++] = cohort.commit();
}
return ops;
}