private void processRemove(WriteBatch batch, DataFile df, LogFile lf) {

        if (df != null && lf != null) {
            df.decrement(batch.removeOPCount);
            this.enqueueLock.lock();
            try {
                if (df.getLength() >= JournalStore.FILE_SIZE && df.isUnUsed()) {
                    if (this.journal.dataFile == df) { // �ж�����ǵ�ǰ�ļ�������µ�
                        this.journal.newDataFile();
                    }
                    this.journal.dataFiles.remove(Integer.valueOf(df.getNumber()));
                    this.journal.logFiles.remove(Integer.valueOf(df.getNumber()));
                    // System.out.println("delete " + df.getNumber());
                    // System.out.println(batch.cmdList.get(0).opItem);
                    df.delete();
                    lf.delete();
                }
            } catch (Exception e) {
                if (e instanceof IOException) {
                    batch.exception = (IOException) e;
                } else {
                    batch.exception = new IOException(e);
                }
            } finally {
                this.enqueueLock.unlock();
            }
        }
    }