public int deleteRecord(final long iPosition) throws IOException {
acquireExclusiveLock();
try {
final long[] pos = getRelativePosition(iPosition);
final OFile file = files[(int) pos[0]];
final int recordSize = file.readInt(pos[1]);
handleHole(iPosition, recordSize);
return recordSize;
} finally {
releaseExclusiveLock();