@Override
  public void deserialize(ByteBuffer byteBuffer) {
    super.deserialize(byteBuffer);
    try {
      int removedDataNodeSize = byteBuffer.getInt();
      removedDataNodes = new ArrayList<>(removedDataNodeSize);
      for (int i = 0; i < removedDataNodeSize; i++) {
        removedDataNodes.add(ThriftCommonsSerDeUtils.deserializeTDataNodeLocation(byteBuffer));
      }
      int regionMigrationPlanSize = byteBuffer.getInt();
      regionMigrationPlans = new ArrayList<>(regionMigrationPlanSize);
      for (int i = 0; i < regionMigrationPlanSize; i++) {
        regionMigrationPlans.add(RegionMigrationPlan.deserialize(byteBuffer));
      }
      int nodeStatusMapSize = byteBuffer.getInt();
      nodeStatusMap = new HashMap<>(nodeStatusMapSize);
      for (int i = 0; i < nodeStatusMapSize; i++) {
        int dataNodeId = byteBuffer.getInt();
        NodeStatus nodeStatus = NodeStatus.values()[byteBuffer.get()];
        nodeStatusMap.put(dataNodeId, nodeStatus);
      }
    } catch (ThriftSerDeException e) {
      LOG.error("Error in deserialize RemoveConfigNodeProcedure", e);
    }
  }
Used to keep procedure lock even when the procedure is yielded or suspended.

@param env env
@return true if hold the lock
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java