protected ActiveTransactionsRecord helpCommitAll() { ActiveTransactionsRecord lastSeenCommitted = Transaction.mostRecentCommittedRecord; ActiveTransactionsRecord recordToCommit = lastSeenCommitted.getNext(); while (recordToCommit != null) { helpCommit(recordToCommit); lastSeenCommitted = recordToCommit; recordToCommit = recordToCommit.getNext(); } return lastSeenCommitted; }
@Override protected void helpCommit(ActiveTransactionsRecord recordToCommit) { if (!recordToCommit.isCommitted()) { logger.debug("Helping to commit version {}", recordToCommit.transactionNumber); int txVersion = recordToCommit.transactionNumber; UUID commitId = CommitOnlyTransaction.txVersionToCommitIdMap.get(txVersion); if (commitId != null) { // may be null if it was already persisted JvstmLockFreeBackEnd.getInstance().getRepository().mapTxVersionToCommitId(txVersion, commitId); CommitOnlyTransaction.txVersionToCommitIdMap.remove(txVersion); } super.helpCommit(recordToCommit); } else { logger.debug("Version {} was already fully committed", recordToCommit.transactionNumber); } }
protected void ensureCommitStatus() { ActiveTransactionsRecord recordToCommit = Transaction.mostRecentCommittedRecord.getNext(); while ((recordToCommit != null) && (recordToCommit.transactionNumber <= getCommitTxRecord().transactionNumber)) { helpCommit(recordToCommit); recordToCommit = recordToCommit.getNext(); } }