return new TransactionPurgeResponse(id, request.getSequence());
}
- tx.purge(() -> {
+ tree.purgeTransaction(id, () -> {
purgedTransactions.add(Range.singleton(ul));
transactions.remove(id);
LOG.debug("{}: finished purging transaction {}", persistenceId(), id);
throws RequestException {
if (request instanceof CommitLocalTransactionRequest) {
LOG.debug("{}: allocating new ready transaction {}", persistenceId(), id);
+ tree.getStats().incrementReadWriteTransactionCount();
return createReadyTransaction(id, ((CommitLocalTransactionRequest) request).getModification());
}
if (request instanceof AbstractReadTransactionRequest) {
if (((AbstractReadTransactionRequest<?>) request).isSnapshotOnly()) {
LOG.debug("{}: allocatint new open snapshot {}", persistenceId(), id);
+ tree.getStats().incrementReadOnlyTransactionCount();
return createOpenSnapshot(id);
}
}
LOG.debug("{}: allocating new open transaction {}", persistenceId(), id);
+ tree.getStats().incrementReadWriteTransactionCount();
return createOpenTransaction(id);
}
abstract FrontendTransaction createReadyTransaction(TransactionIdentifier id, DataTreeModification mod)
throws RequestException;
+ abstract ShardDataTreeCohort createFailedCohort(TransactionIdentifier id, DataTreeModification mod,
+ Exception failure);
+
abstract ShardDataTreeCohort createReadyCohort(TransactionIdentifier id, DataTreeModification mod);
@Override