class IndexLabelRemoveJob extends SchemaJob {

    @Override
    public String type() {
        return REMOVE_SCHEMA;
    }

    @Override
    public Object execute() {
        removeIndexLabel(this.params(), this.schemaId());
        return null;
    }

    protected static void removeIndexLabel(HugeGraphParams graph, Id id) {<FILL_FUNCTION_BODY>}
}

        GraphTransaction graphTx = graph.graphTransaction();
        SchemaTransaction schemaTx = graph.schemaTransaction();
        IndexLabel indexLabel = schemaTx.getIndexLabel(id);
        // If the index label does not exist, return directly
        if (indexLabel == null) {
            return;
        }
        if (indexLabel.status().deleting()) {
            LOG.info("The index label '{}' has been in {} status, " +
                     "please check if it's expected to delete it again",
                     indexLabel, indexLabel.status());
        }
        LockUtil.Locks locks = new LockUtil.Locks(graph.name());
        try {
            locks.lockWrites(LockUtil.INDEX_LABEL_DELETE, id);
            // TODO add update lock
            // Set index label to "deleting" status
            schemaTx.updateSchemaStatus(indexLabel, SchemaStatus.DELETING);
            try {
                // Remove indexLabel from indexLabels of vertex/edge label
                schemaTx.removeIndexLabelFromBaseLabel(indexLabel);

                // Remove index data
                // TODO: use event to replace direct call
                graphTx.removeIndex(indexLabel);
                /*
                 * Should commit changes to backend store before release
                 * delete lock
                 */
                graph.graph().tx().commit();
                // Remove index label
                removeSchema(schemaTx, indexLabel);
            } catch (Throwable e) {
                schemaTx.updateSchemaStatus(indexLabel, SchemaStatus.UNDELETED);
                throw e;
            }
        } finally {
            locks.unlock();
        }
    
<methods>public non-sealed void <init>() ,public static java.lang.String formatTaskName(org.apache.hugegraph.type.HugeType, org.apache.hugegraph.backend.id.Id, java.lang.String) <variables>public static final java.lang.String CLEAR_OLAP,public static final java.lang.String CREATE_INDEX,public static final java.lang.String CREATE_OLAP,protected static final Logger LOG,public static final java.lang.String REBUILD_INDEX,public static final java.lang.String REMOVE_OLAP,public static final java.lang.String REMOVE_SCHEMA,private static final java.lang.String SPLITOR