in core/src/main/java/org/apache/ignite/activestore/impl/subscriber/lead/LeadPlanner.java [225:271]
public void updateContext(long loadedLastDenseCommitted, LongList loadedSparseCommitted) {
long lastDenseCommitted = MergeHelper.mergeWithDenseCompaction(loadedSparseCommitted, state.sparseCommitted(),
loadedLastDenseCommitted);
state.setLastDenseCommitted(lastDenseCommitted);
filterCommitted(state.txInfos());
filterCommitted(state.inProgressTransactions());
// Update last dense read.
long next = state.lastDenseCommitted() + 1;
ListIterator<TxInfo> txInfoIt = state.txInfoListIterator();
for (LongIterator sparseIt = state.sparseCommitted().longIterator(); sparseIt.hasNext(); ) {
long sparseId = sparseIt.next();
if (sparseId > next) {
while (txInfoIt.hasNext()) {
long id = txInfoIt.next().id();
if (next == id) {
next++;
}
else if (id > next) {
txInfoIt.previous();
break;
}
}
}
if (sparseId == next) {
next++;
}
else if (sparseId > next) {
break;
}
}
while (txInfoIt.hasNext()) {
long id = txInfoIt.next().id();
if (next == id) {
next++;
}
else if (id > next) {
txInfoIt.previous();
break;
}
}
state.setLastDenseRead(next - 1);
}