@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();
   }
 }