This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch parallelDispatch in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8efd28af10dcc1b42f49ab7816a539be564cf89c Author: shuwenwei <s13979062...@gmail.com> AuthorDate: Thu May 22 16:57:09 2025 +0800 remove comments --- .../scheduler/FragmentInstanceDispatcherImpl.java | 85 ---------------------- 1 file changed, 85 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java index f773da76d0a..80ff49c30ba 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/scheduler/FragmentInstanceDispatcherImpl.java @@ -215,91 +215,6 @@ public class FragmentInstanceDispatcherImpl implements IFragInstanceDispatcher { }); } - // public Future<FragInstanceDispatchResult> parallelDispatchRead( - // SubPlan root, List<FragmentInstance> instances) { - // long startTime = System.nanoTime(); - // Queue<SubPlan> queue = new LinkedList<>(); - // queue.add(root); - // List<List<FragmentInstance>> dispatchOrder = new ArrayList<>(); - // calculateFragmentInstancesDispatchOrder(dispatchOrder, instances, root, 0); - // try { - // for (List<FragmentInstance> currentLevel : dispatchOrder) { - // List<Future<FragInstanceDispatchResult>> futures = new ArrayList<>(currentLevel.size()); - // for (FragmentInstance fragmentInstance : currentLevel) { - // futures.add(asyncDispatchOneInstance(fragmentInstance)); - // } - // for (Future<FragInstanceDispatchResult> future : futures) { - // try { - // FragInstanceDispatchResult result = future.get(); - // if (!result.isSuccessful()) { - // return immediateFuture(result); - // } - // } catch (Exception e) { - // return immediateFuture( - // new FragInstanceDispatchResult( - // RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()))); - // } - // } - // } - // return immediateFuture(new FragInstanceDispatchResult(true)); - // } finally { - // long queryDispatchReadTime = System.nanoTime() - startTime; - // QUERY_EXECUTION_METRIC_SET.recordExecutionCost(DISPATCH_READ, queryDispatchReadTime); - // queryContext.recordDispatchCost(queryDispatchReadTime); - // } - // } - // - // private void calculateFragmentInstancesDispatchOrder( - // List<List<FragmentInstance>> result, - // List<FragmentInstance> fragmentInstances, - // SubPlan current, - // int level) { - // List<FragmentInstance> currentLevelFragmentInstances; - // if (level == result.size()) { - // currentLevelFragmentInstances = new ArrayList<>(); - // result.add(currentLevelFragmentInstances); - // } else { - // currentLevelFragmentInstances = result.get(level); - // } - // int indexInFragmentInstanceList = - // current.getPlanFragment().getIndexInFragmentInstanceList(); - // currentLevelFragmentInstances.add(fragmentInstances.get(indexInFragmentInstanceList)); - // for (SubPlan child : current.getChildren()) { - // calculateFragmentInstancesDispatchOrder(result, fragmentInstances, child, level + 1); - // } - // } - // - - // private Future<FragInstanceDispatchResult> asyncDispatchOneInstance(FragmentInstance instance) - // { - // return readDispatchThreadPool.submit( - // () -> { - // try (SetThreadName threadName = new SetThreadName(instance.getId().getFullId())) { - // dispatchOneInstance(instance); - // } catch (FragmentInstanceDispatchException e) { - // return new FragInstanceDispatchResult(e.getFailureStatus()); - // } catch (Throwable t) { - // LOGGER.warn(DISPATCH_FAILED, t); - // new FragInstanceDispatchResult( - // RpcUtils.getStatus( - // TSStatusCode.INTERNAL_SERVER_ERROR, UNEXPECTED_ERRORS + t.getMessage())); - // } finally { - // // friendly for gc, clear the plan node tree, for some queries select all devices, - // it - // // will - // // release lots of memory - // if (!queryContext.isExplainAnalyze()) { - // // EXPLAIN ANALYZE will use these instances, so we can't clear them - // instance.getFragment().clearUselessField(); - // } else { - // // TypeProvider is not used in EXPLAIN ANALYZE, so we can clear it - // instance.getFragment().clearTypeProvider(); - // } - // } - // return new FragInstanceDispatchResult(true); - // }); - // } - // TODO: (xingtanzjr) currently we use a sequential dispatch policy for READ, which is // unsafe for current FragmentInstance scheduler framework. We need to implement the // topological dispatch according to dependency relations between FragmentInstances