class TaskInfoMeta extends MetadataRocksDBStore {

    public TaskInfoMeta(PDConfig pdConfig) {
        super(pdConfig);
    }

    /**
     * 添加分区分裂任务
     */
    public void addSplitTask(int groupID, Metapb.Partition partition, SplitPartition splitPartition)
            throws PDException {
        byte[] key = MetadataKeyHelper.getSplitTaskKey(partition.getGraphName(), groupID);
        MetaTask.Task task = MetaTask.Task.newBuilder()
                                          .setType(MetaTask.TaskType.Split_Partition)
                                          .setState(MetaTask.TaskState.Task_Doing)
                                          .setStartTimestamp(System.currentTimeMillis())
                                          .setPartition(partition)
                                          .setSplitPartition(splitPartition)
                                          .build();
        put(key, task.toByteString().toByteArray());
    }

    public void updateSplitTask(MetaTask.Task task) throws PDException {
        var partition = task.getPartition();
        byte[] key = MetadataKeyHelper.getSplitTaskKey(partition.getGraphName(), partition.getId());
        put(key, task.toByteString().toByteArray());
    }

    public MetaTask.Task getSplitTask(String graphName, int groupID) throws PDException {
        byte[] key = MetadataKeyHelper.getSplitTaskKey(graphName, groupID);
        return getOne(MetaTask.Task.parser(), key);
    }

    public List<MetaTask.Task> scanSplitTask(String graphName) throws PDException {
        byte[] prefix = MetadataKeyHelper.getSplitTaskPrefix(graphName);
        return scanPrefix(MetaTask.Task.parser(), prefix);
    }

    public void removeSplitTaskPrefix(String graphName) throws PDException {
        byte[] key = MetadataKeyHelper.getSplitTaskPrefix(graphName);
        removeByPrefix(key);
    }

    public boolean hasSplitTaskDoing() throws PDException {
        byte[] key = MetadataKeyHelper.getAllSplitTaskPrefix();
        return scanPrefix(key).size() > 0;
    }

    public void addMovePartitionTask(Metapb.Partition partition, MovePartition movePartition)
            throws PDException {
        byte[] key = MetadataKeyHelper.getMoveTaskKey(partition.getGraphName(),
                                                      movePartition.getTargetPartition().getId(),
                                                      partition.getId());

        MetaTask.Task task = MetaTask.Task.newBuilder()
                                          .setType(MetaTask.TaskType.Move_Partition)
                                          .setState(MetaTask.TaskState.Task_Doing)
                                          .setStartTimestamp(System.currentTimeMillis())
                                          .setPartition(partition)
                                          .setMovePartition(movePartition)
                                          .build();
        put(key, task.toByteArray());
    }

    public void updateMovePartitionTask(MetaTask.Task task)
            throws PDException {<FILL_FUNCTION_BODY>}

    public MetaTask.Task getMovePartitionTask(String graphName, int targetId, int partId) throws
                                                                                          PDException {
        byte[] key = MetadataKeyHelper.getMoveTaskKey(graphName, targetId, partId);
        return getOne(MetaTask.Task.parser(), key);
    }

    public List<MetaTask.Task> scanMoveTask(String graphName) throws PDException {
        byte[] prefix = MetadataKeyHelper.getMoveTaskPrefix(graphName);
        return scanPrefix(MetaTask.Task.parser(), prefix);
    }

    /**
     * 按照prefix删除迁移任务，一次分组的
     *
     * @param graphName 图名称
     * @throws PDException io error
     */
    public void removeMoveTaskPrefix(String graphName) throws PDException {
        byte[] key = MetadataKeyHelper.getMoveTaskPrefix(graphName);
        removeByPrefix(key);
    }

    public boolean hasMoveTaskDoing() throws PDException {
        byte[] key = MetadataKeyHelper.getAllMoveTaskPrefix();
        return scanPrefix(key).size() > 0;
    }

}


        byte[] key = MetadataKeyHelper.getMoveTaskKey(task.getPartition().getGraphName(),
                                                      task.getMovePartition().getTargetPartition()
                                                          .getId(),
                                                      task.getPartition().getId());
        put(key, task.toByteArray());
    
<methods>public void <init>(org.apache.hugegraph.pd.config.PDConfig) ,public void clearAllCache() throws org.apache.hugegraph.pd.common.PDException,public void close() ,public boolean containsKey(byte[]) throws org.apache.hugegraph.pd.common.PDException,public List#RAW getListWithTTL(byte[]) throws org.apache.hugegraph.pd.common.PDException,public byte[] getOne(byte[]) throws org.apache.hugegraph.pd.common.PDException,public E getOne(Parser<E>, byte[]) throws org.apache.hugegraph.pd.common.PDException,public org.apache.hugegraph.pd.store.HgKVStore getStore() ,public byte[] getWithTTL(byte[]) throws org.apache.hugegraph.pd.common.PDException,public void put(byte[], byte[]) throws org.apache.hugegraph.pd.common.PDException,public void putWithTTL(byte[], byte[], long) throws org.apache.hugegraph.pd.common.PDException,public void putWithTTL(byte[], byte[], long, java.util.concurrent.TimeUnit) throws org.apache.hugegraph.pd.common.PDException,public long remove(byte[]) throws org.apache.hugegraph.pd.common.PDException,public long removeByPrefix(byte[]) throws org.apache.hugegraph.pd.common.PDException,public void removeWithTTL(byte[]) throws org.apache.hugegraph.pd.common.PDException,public List<org.apache.hugegraph.pd.store.KV> scanPrefix(byte[]) throws org.apache.hugegraph.pd.common.PDException,public List<E> scanPrefix(Parser<E>, byte[]) throws org.apache.hugegraph.pd.common.PDException,public List<org.apache.hugegraph.pd.store.KV> scanRange(byte[], byte[]) throws org.apache.hugegraph.pd.common.PDException,public List<E> scanRange(Parser<E>, byte[], byte[]) throws org.apache.hugegraph.pd.common.PDException<variables>org.apache.hugegraph.pd.config.PDConfig pdConfig,org.apache.hugegraph.pd.store.HgKVStore store