@Override public void preallocate(long[] recids) { commitLock.writeLock().lock(); try { uncommitedData = true; super.preallocate(recids); for (long recid : recids) { Lock lock = locks[Store.lockPos(recid)].writeLock(); lock.lock(); try { for (Reference<Tx> txr : txs) { Tx tx = txr.get(); if (tx == null) continue; tx.old.putIfAbsent(recid, TOMBSTONE); } } finally { lock.unlock(); } } } finally { commitLock.writeLock().unlock(); } }