throws IOException {
for (List<OLogSequenceNumber> operationUnit : operationUnits.values()) {
if (operationUnit.isEmpty())
continue;
final OAtomicUnitStartRecord atomicUnitStartRecord = (OAtomicUnitStartRecord) writeAheadLog.read(operationUnit.get(0));
if (!atomicUnitStartRecord.isRollbackSupported())
continue;
final OAtomicUnitEndRecord atomicUnitEndRecord = new OAtomicUnitEndRecord(atomicUnitStartRecord.getOperationUnitId(), true);
final OLogSequenceNumber logSequenceNumber = writeAheadLog.log(atomicUnitEndRecord);
operationUnit.add(logSequenceNumber);
undoOperation(operationUnit);