protected void logEdit(short op, Writable writable) {
        JournalTask task = submitLog(op, writable, -1);
        waitInfinity(task);
    }
@Test
    public void testtNormal() throws Exception {
        BlockingQueue<JournalTask> logQueue = new ArrayBlockingQueue<>(100);
        short threadNum = 20;
        List<Thread> allThreads = new ArrayList<>();
        for (short i = 0; i != threadNum; i++) {
            final short n = i;
            allThreads.add(new Thread(new Runnable() {
                @Override
                public void run() {
                    EditLog editLog = new EditLog(logQueue);
                    editLog.logEdit(n, new Text("111"));
                }
            }));
        }

        Thread consumer = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i != threadNum; i++) {
                    try {
                        JournalTask task = logQueue.take();
                        task.markSucceed();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        });
        consumer.start();
        for (Thread producer : allThreads) {
            producer.start();
        }

        for (Thread producer : allThreads) {
            producer.join();
        }
        consumer.join();
        Assert.assertEquals(0, logQueue.size());
    }