A SubPlan will to convert by LocalExecutionPlanner to LocalExecutionPlan which has a operator sequence.
HashJoinOperator andHashBuilderOperator is connected by SourceHash which contains the output of HashBuilderOperator.
You can image Slice is a byte array. The Slice size is the array size. The Block size is the Slice size. The Page size is sum of all the Block sizes.
Every Split is only allowed to execute 1s by default. When the time is up, the split will be put back to the queue.
RecordSetDataStreamProvider is a subclass of ConnectorDataStreamProvider.
When DiscoveryNodeManager receives any Node information query, it will check if the cache is expired (5 seconds).If so, it will ask the ServiceSelectorto fetch the active nodes and drop the failure nodes.ServiceSelector will fetch the new node list from the Discovery Server every 10s by default.There is a thread in HeartbeatFailureDetector which will send the heartbeat to every active node 500ms by default.
Ask active nodes
Is the data
When the data of this
Split is ready, put the
Fetch one Page
Is the Split
Thread number = core nubmer * 4
• Select acceptable nodes (as least 10 nodes by
– Nodes has the same address
– If not enough, add nodes in the same rack
– If not enough, randomly select nodes in other
• Select the node with the smallest number of
assignments (pending tasks)
• Only has SELETE statement
– Currently query results are streamed to the client
• Protocol: HTTP
• Data Format: JSON
• Every instance has one server and one client