dremio InfoSchemaScanCreator 参考调用链

整理一些关于InfoSchemaScanCreator 请求调用链的,方便记录学习

参考调用链信息

  • stack com.dremio.exec.store.ischema.InfoSchemaScanCreator create
ts=2022-07-17 14:50:01;thread_name=e5 - 1d2bde65-fbcb-bfda-7af3-7cc83574a800:frag:0:0;id=a0;is_daemon=false;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@42110406
    @com.dremio.exec.store.ischema.InfoSchemaScanCreator.create()
        at com.dremio.sabot.driver.OperatorCreatorRegistry.getProducerOperator(OperatorCreatorRegistry.java:102)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitSubScan(PipelineCreator.java:224)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitSubScan(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractSubScan.accept(AbstractSubScan.java:85)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:274)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractPhysicalVisitor.visitProject(AbstractPhysicalVisitor.java:84)
        at com.dremio.exec.physical.config.Project.accept(Project.java:55)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:274)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractPhysicalVisitor.visitProject(AbstractPhysicalVisitor.java:84)
        at com.dremio.exec.physical.config.Project.accept(Project.java:55)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitScreen(PipelineCreator.java:248)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitScreen(PipelineCreator.java:117)
        at com.dremio.exec.physical.config.Screen.accept(Screen.java:63)
        at com.dremio.sabot.driver.PipelineCreator.get(PipelineCreator.java:109)
        at com.dremio.sabot.driver.PipelineCreator.get(PipelineCreator.java:103)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.setupExecution(FragmentExecutor.java:467)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.run(FragmentExecutor.java:327)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.access$1600(FragmentExecutor.java:97)
        at com.dremio.sabot.exec.fragment.FragmentExecutor$AsyncTaskImpl.run(FragmentExecutor.java:820)
        at com.dremio.sabot.task.AsyncTaskWrapper.run(AsyncTaskWrapper.java:120)
        at com.dremio.sabot.task.slicing.SlicingThread.mainExecutionLoop(SlicingThread.java:247)
        at com.dremio.sabot.task.slicing.SlicingThread.run(SlicingThread.java:171)
  • stack com.dremio.sabot.driver.OperatorCreatorRegistry getProducerOperator
ts=2022-07-17 14:46:34;thread_name=e4 - 1d2bdf34-ae39-45e9-d056-5e5fab580800:frag:0:0;id=9f;is_daemon=false;priority=5;TCCL=jdk.internal.loader.ClassLoaders$AppClassLoader@42110406
    @com.dremio.sabot.driver.OperatorCreatorRegistry.getProducerOperator()
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitSubScan(PipelineCreator.java:224)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitSubScan(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractSubScan.accept(AbstractSubScan.java:85)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:274)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractPhysicalVisitor.visitProject(AbstractPhysicalVisitor.java:84)
        at com.dremio.exec.physical.config.Project.accept(Project.java:55)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:274)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitOp(PipelineCreator.java:117)
        at com.dremio.exec.physical.base.AbstractPhysicalVisitor.visitProject(AbstractPhysicalVisitor.java:84)
        at com.dremio.exec.physical.config.Project.accept(Project.java:55)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitScreen(PipelineCreator.java:248)
        at com.dremio.sabot.driver.PipelineCreator$CreatorVisitor.visitScreen(PipelineCreator.java:117)
        at com.dremio.exec.physical.config.Screen.accept(Screen.java:63)
        at com.dremio.sabot.driver.PipelineCreator.get(PipelineCreator.java:109)
        at com.dremio.sabot.driver.PipelineCreator.get(PipelineCreator.java:103)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.setupExecution(FragmentExecutor.java:467)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.run(FragmentExecutor.java:327)
        at com.dremio.sabot.exec.fragment.FragmentExecutor.access$1600(FragmentExecutor.java:97)
        at com.dremio.sabot.exec.fragment.FragmentExecutor$AsyncTaskImpl.run(FragmentExecutor.java:820)
        at com.dremio.sabot.task.AsyncTaskWrapper.run(AsyncTaskWrapper.java:120)
        at com.dremio.sabot.task.slicing.SlicingThread.mainExecutionLoop(SlicingThread.java:247)
        at com.dremio.sabot.task.slicing.SlicingThread.run(SlicingThread.java:171)
  • watch com.dremio.exec.store.ischema.InfoSchemaScanCreator create '{params, target, returnObj, throwExp}' -x 2
Press Q or Ctrl+C to abort.
Affect(class count: 1 , method count: 2) cost in 260 ms, listenerId: 22
method=com.dremio.exec.store.ischema.InfoSchemaScanCreator.create location=AtExit
ts=2022-07-17 15:00:01; [cost=0.226267ms] result=@ArrayList[
    @Object[][
        @FragmentExecutionContext[com.dremio.sabot.exec.fragment.FragmentExecutionContext@5c2fb16c],
        @OperatorContextImpl[com.dremio.sabot.exec.context.OperatorContextImpl@2eca7bc2],
        @InfoSchemaSubScan[com.dremio.exec.store.ischema.InfoSchemaSubScan@28104b33],
    ],
    @InfoSchemaScanCreator[
    ],
    @ScanOperator[
        logger=@Logger[Logger[com.dremio.sabot.op.scan.ScanOperator]],
        injector=@NoOpControlsInjector[com.dremio.exec.testing.NoOpControlsInjector@6e04f55e],
        outgoing=@VectorContainer[com.dremio.exec.record.VectorContainer@51ac732e[recordCount = -1, schema = null, wrappers = [], ...]],
        fieldVectorMap=@HashMap[isEmpty=true;size=0],
        state=@State[NEEDS_SETUP],
        context=@OperatorContextImpl[com.dremio.sabot.exec.context.OperatorContextImpl@2eca7bc2],
        readers=@[com.dremio.exec.store.parquet.RecordReaderIterator$1@7b4ff3fb],
        currentReader=@InformationSchemaRecordReader[com.dremio.exec.store.ischema.InformationSchemaRecordReader@5a4a892f[columns = [`TABLE_CATALOG`, `TABLE_SCHEMA`, `TABLE_NAME`, `TABLE_TYPE`], isStarQuery = false, isSkipQuery = false]],
        mutator=@ScanMutator[com.dremio.sabot.op.scan.ScanOperator$ScanMutator@27a3edcf],
        callBack=@MutatorSchemaChangeCallBack[com.dremio.sabot.op.scan.MutatorSchemaChangeCallBack@1524df16],
        schema=@BatchSchema[schema(TABLE_CATALOG::varchar, TABLE_SCHEMA::varchar, TABLE_NAME::varchar, TABLE_TYPE::varchar)],
        selectedColumns=@RegularImmutableList[isEmpty=false;size=4],
        tableSchemaPath=@ArrayList[isEmpty=false;size=2],
        config=@InfoSchemaSubScan[com.dremio.exec.store.ischema.InfoSchemaSubScan@28104b33],
        globalDictionaries=null,
        peerJoinFragmentMap=@HashMap[isEmpty=true;size=0],
        peerJoinFilterMap=@HashMap[isEmpty=true;size=0],
        readTime=@Stopwatch[0.000 ns],
        columnsToBoost=@HashSet[isEmpty=true;size=0],
        foremanEndpoint=null,
        queryContextInfo=null,
        runtimeFilters=@ArrayList[isEmpty=true;size=0],
    ],
    null,
]
method=com.dremio.exec.store.ischema.InfoSchemaScanCreator.create location=AtExit
ts=2022-07-17 15:00:01; [cost=2.037962ms] result=@ArrayList[
    @Object[][
        @FragmentExecutionContext[com.dremio.sabot.exec.fragment.FragmentExecutionContext@5c2fb16c],
        @OperatorContextImpl[com.dremio.sabot.exec.context.OperatorContextImpl@2eca7bc2],
        @InfoSchemaSubScan[com.dremio.exec.store.ischema.InfoSchemaSubScan@28104b33],
    ],
    @InfoSchemaScanCreator[
    ],
    @ScanOperator[
        logger=@Logger[Logger[com.dremio.sabot.op.scan.ScanOperator]],
        injector=@NoOpControlsInjector[com.dremio.exec.testing.NoOpControlsInjector@6e04f55e],
        outgoing=@VectorContainer[com.dremio.exec.record.VectorContainer@51ac732e[recordCount = -1, schema = null, wrappers = [], ...]],
        fieldVectorMap=@HashMap[isEmpty=true;size=0],
        state=@State[NEEDS_SETUP],
        context=@OperatorContextImpl[com.dremio.sabot.exec.context.OperatorContextImpl@2eca7bc2],
        readers=@[com.dremio.exec.store.parquet.RecordReaderIterator$1@7b4ff3fb],
        currentReader=@InformationSchemaRecordReader[com.dremio.exec.store.ischema.InformationSchemaRecordReader@5a4a892f[columns = [`TABLE_CATALOG`, `TABLE_SCHEMA`, `TABLE_NAME`, `TABLE_TYPE`], isStarQuery = false, isSkipQuery = false]],
        mutator=@ScanMutator[com.dremio.sabot.op.scan.ScanOperator$ScanMutator@27a3edcf],
        callBack=@MutatorSchemaChangeCallBack[com.dremio.sabot.op.scan.MutatorSchemaChangeCallBack@1524df16],
        schema=@BatchSchema[schema(TABLE_CATALOG::varchar, TABLE_SCHEMA::varchar, TABLE_NAME::varchar, TABLE_TYPE::varchar)],
        selectedColumns=@RegularImmutableList[isEmpty=false;size=4],
        tableSchemaPath=@ArrayList[isEmpty=false;size=2],
        config=@InfoSchemaSubScan[com.dremio.exec.store.ischema.InfoSchemaSubScan@28104b33],
        globalDictionaries=null,
        peerJoinFragmentMap=@HashMap[isEmpty=true;size=0],
        peerJoinFilterMap=@HashMap[isEmpty=true;size=0],
        readTime=@Stopwatch[0.000 ns],
        columnsToBoost=@HashSet[isEmpty=true;size=0],
        foremanEndpoint=null,
        queryContextInfo=null,
        runtimeFilters=@ArrayList[isEmpty=true;size=0],
    ],
    null,
]

参考资料

sabot/kernel/src/main/java/com/dremio/exec/store/ischema/InfoSchemaScanCreator.java
sabot/kernel/src/main/java/com/dremio/sabot/op/spi/ProducerOperator.java
sabot/kernel/src/main/java/com/dremio/sabot/driver/OperatorCreatorRegistry.java
sabot/kernel/src/main/java/com/dremio/sabot/driver/StraightPipe.java

posted on 2022-07-17 23:04  荣锋亮  阅读(32)  评论(0编辑  收藏  举报

导航