public static ShuffleSinkNode deserialize(ByteBuffer byteBuffer) {
    int size = ReadWriteIOUtils.readInt(byteBuffer);
    List<DownStreamChannelLocation> downStreamChannelLocationList = new ArrayList<>();
    for (int i = 0; i < size; i++) {
      downStreamChannelLocationList.add(DownStreamChannelLocation.deserialize(byteBuffer));
    }
    PlanNodeId planNodeId = PlanNodeId.deserialize(byteBuffer);
    return new ShuffleSinkNode(planNodeId, downStreamChannelLocationList);
  }
Responsible for creating ShuffleHelperOperator and corresponding SinkHandle
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/planner/plan/node/sink/ShuffleSinkNode.java