-
Notifications
You must be signed in to change notification settings - Fork 3k
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
enhance: add rw/ro streaming query node replica management #38677
enhance: add rw/ro streaming query node replica management #38677
Conversation
@chyezh E2e jenkins job failed, comment |
c3ce6ad
to
0c32ff6
Compare
@chyezh E2e jenkins job failed, comment |
1 similar comment
@chyezh E2e jenkins job failed, comment |
@chyezh go-sdk check failed, comment |
5d38958
to
781ff46
Compare
@chyezh go-sdk check failed, comment |
@chyezh E2e jenkins job failed, comment |
781ff46
to
3f613f6
Compare
@chyezh go-sdk check failed, comment |
9db9bcf
to
3953e7c
Compare
@chyezh E2e jenkins job failed, comment |
70a9f34
to
2544e08
Compare
@chyezh go-sdk check failed, comment |
1 similar comment
@chyezh go-sdk check failed, comment |
@chyezh E2e jenkins job failed, comment |
@chyezh go-sdk check failed, comment |
@chyezh E2e jenkins job failed, comment |
413fd4b
to
1546f5a
Compare
99e8552
to
e22ad87
Compare
e22ad87
to
789b8dc
Compare
@chyezh E2e jenkins job failed, comment |
5dfd0d7
to
1f5b4ca
Compare
Signed-off-by: chyezh <[email protected]>
@chyezh go-sdk check failed, comment |
rerun go-sdk |
@chyezh E2e jenkins job failed, comment |
/run-cpu-e2e |
@chyezh E2e jenkins job failed, comment |
/run-cpu-e2e |
1 similar comment
/run-cpu-e2e |
@chyezh E2e jenkins job failed, comment |
/run-cpu-e2e |
@chyezh E2e jenkins job failed, comment |
/run-cpu-e2e |
s.cond.L.Unlock() | ||
return nil | ||
}); err != nil { | ||
return err |
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.
Although here only context cancel error, I still suggest adding a log before the return
|
||
// StreamingNodeManager is a manager for manage the querynode that embedded into streaming node. | ||
// StreamingNodeManager is exclusive with ResourceManager. | ||
type StreamingNodeManager struct { |
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.
Use StreamingNodeObserver instead of StreamingNodeManager
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.
/lgtm
/approve
@@ -175,6 +177,10 @@ func GetMilvusRoles(args []string, flags *flag.FlagSet) *roles.MilvusRoles { | |||
role.EnableIndexNode = enableIndexNode | |||
role.EnableProxy = enableProxy | |||
role.EnableStreamingNode = enableStreamingNode |
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.
Why we don't check IsStreamingServiceEnabled
here?
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.
If enableStreamingNode is setup, IsStreamingServiceEnabled is always true for mixture.
Because the streaming service must be enabled at 2.6, we will remove all checker before 2.6 release.
But here is huge amount related-unittest modification, the removing pr is deferred.
@@ -150,7 +150,9 @@ func GetMilvusRoles(args []string, flags *flag.FlagSet) *roles.MilvusRoles { | |||
role.EnableIndexNode = true | |||
case typeutil.StreamingNodeRole: | |||
streamingutil.MustEnableStreamingService() |
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.
Redundant check
"github.com/milvus-io/milvus/pkg/util/typeutil" | ||
) | ||
|
||
var StaticStreamingNodeManager = newStreamingNodeManager() |
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.
Why don't use Sync.Once
. Plz CMIIW, this will be inited no matter what kind of nodes
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.
it's a static-initialized variable, no busy operation happened when init, no concurrent issue here.
So sync.Once is not applied, but a redundant dead goroutine here.
It should be only available at coordinator, I will fix it.
// EnableEmbededQueryNode set server labels for embedded query node. | ||
func EnableEmbededQueryNode() { | ||
MustEnableStreamingService() | ||
os.Setenv(sessionutil.SupportedLabelPrefix+sessionutil.LabelStreamingNodeEmbeddedQueryNode, "1") |
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.
Curios why we set a env variable instead of a global variable
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.
both env and global var is ok here.
i will modify to use global var at another pr.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: chyezh, liliu-z The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
issue: #38399
QUERYNODE_STREAMING-EMBEDDED
.