-
Notifications
You must be signed in to change notification settings - Fork 599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(meta): iterative streaming scheduler (part 2) #7659
Changes from all commits
508cb0a
c0c9edb
ad3e901
c5cd76b
303bffd
9c758f6
e551e9e
869fe03
29cd9eb
42c3a7f
848c41d
7653b39
90f996e
aac75c1
d8a5b91
12cdb91
1e271e0
3ff8792
d357b7b
bd29344
b54f64c
00a9193
92acf26
43251cf
8251598
30585a1
96697b5
3a640a3
9e1ff93
96df668
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -346,6 +346,9 @@ enum ChainType { | |
// 1. MergeNode (as a placeholder) for streaming read. | ||
// 2. BatchPlanNode for snapshot read. | ||
message ChainNode { | ||
reserved 5; | ||
reserved "same_worker_node"; | ||
|
||
uint32 table_id = 1; | ||
// The schema of input stream, which will be used to build a MergeNode | ||
repeated plan_common.Field upstream_fields = 2; | ||
|
@@ -356,8 +359,6 @@ message ChainNode { | |
// large. However, in some cases, e.g., shared state, the barrier cannot be rearranged in ChainNode. | ||
// ChainType is used to decide which implementation for the ChainNode. | ||
ChainType chain_type = 4; | ||
// Whether to place this chain on the same worker node as upstream actors. | ||
bool same_worker_node = 5; | ||
// Whether the upstream materialize is and this chain should be a singleton. | ||
// FIXME: This is a workaround for fragmenter since the distribution info will be lost if there's only one | ||
// fragment in the downstream mview. Remove this when we refactor the fragmenter. | ||
|
@@ -562,13 +563,11 @@ message Dispatcher { | |
repeated uint32 downstream_actor_id = 5; | ||
} | ||
|
||
// Used to place an actor together with another actor in the same worker node. | ||
message ColocatedActorId { | ||
uint32 id = 1; | ||
} | ||
|
||
// A StreamActor is a running fragment of the overall stream graph, | ||
message StreamActor { | ||
reserved 7; | ||
reserved "colocated_upstream_actor_id"; | ||
|
||
uint32 actor_id = 1; | ||
uint32 fragment_id = 2; | ||
StreamNode nodes = 3; | ||
|
@@ -578,8 +577,6 @@ message StreamActor { | |
// It is painstaking to traverse through the node tree and get upstream actor id from the root StreamNode. | ||
// We duplicate the information here to ease the parsing logic in stream manager. | ||
repeated uint32 upstream_actor_id = 6; | ||
// Placement rule for actor, need to stay on the same node as a specified upstream actor. | ||
ColocatedActorId colocated_upstream_actor_id = 7; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The field is here because the |
||
// Vnodes that the executors in this actor own. | ||
// If the fragment is a singleton, this field will not be set and leave a `None`. | ||
common.Buffer vnode_bitmap = 8; | ||
|
@@ -619,10 +616,11 @@ message StreamFragmentGraph { | |
} | ||
|
||
message StreamFragmentEdge { | ||
reserved 2; | ||
reserved "same_worker_node"; | ||
|
||
// Dispatch strategy for the fragment. | ||
DispatchStrategy dispatch_strategy = 1; | ||
// Whether the two linked nodes should be placed on the same worker node | ||
bool same_worker_node = 2; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be derived from the |
||
// A unique identifier of this edge. Generally it should be exchange node's operator id. When | ||
// rewriting fragments into delta joins or when inserting 1-to-1 exchange, there will be | ||
// virtual links generated. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We remove this as it's actually always
true
, due to NoShuffle exchange.