-
Notifications
You must be signed in to change notification settings - Fork 720
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
mcs: support forwarding split and scatter request #7190
Conversation
[REVIEW NOTIFICATION] This pull request has been approved by:
To complete the pull request process, please ask the reviewers in the list to review by filling The full list of commands accepted by this bot can be found here. Reviewer can indicate their review by submitting an approval review. |
Codecov Report
@@ Coverage Diff @@
## master #7190 +/- ##
==========================================
- Coverage 74.65% 74.39% -0.27%
==========================================
Files 442 442
Lines 47744 47870 +126
==========================================
- Hits 35642 35611 -31
- Misses 8957 9103 +146
- Partials 3145 3156 +11
Flags with carried forward coverage won't be shown. Click here to find out more. |
@@ -191,6 +185,48 @@ func (s *Service) StoreHeartbeat(ctx context.Context, request *schedulingpb.Stor | |||
return &schedulingpb.StoreHeartbeatResponse{Header: &schedulingpb.ResponseHeader{ClusterId: s.clusterID}}, nil | |||
} | |||
|
|||
// SplitRegions split regions by the given split keys | |||
func (s *Service) SplitRegions(ctx context.Context, request *schedulingpb.SplitRegionsRequest) (*schedulingpb.SplitRegionsResponse, error) { |
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.
Do we need to add some tests about forward requests?
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.
Yes, I have added a TODO in the PR description. Will do it later.
@@ -191,6 +185,48 @@ func (s *Service) StoreHeartbeat(ctx context.Context, request *schedulingpb.Stor | |||
return &schedulingpb.StoreHeartbeatResponse{Header: &schedulingpb.ResponseHeader{ClusterId: s.clusterID}}, nil | |||
} | |||
|
|||
// SplitRegions split regions by the given split keys | |||
func (s *Service) SplitRegions(ctx context.Context, request *schedulingpb.SplitRegionsRequest) (*schedulingpb.SplitRegionsResponse, error) { |
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.
BTW, we seem to need to support AskSplit
, AskBatchSplit
, and GetOperator
with grpc method too.
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 don't need AskSplit/AskBatchSplit. But GetOperator is necessary.
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.
HandleAskBatchSplit
will call GetMergeChecker()
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.
Oh, you are right.
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.
Will do it in the next PR
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. Please update the kvproto first.
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.
the rest LGTM
@@ -2175,7 +2283,7 @@ func (s *GrpcServer) SplitRegions(ctx context.Context, request *pdpb.SplitRegion | |||
} | |||
|
|||
// SplitAndScatterRegions split regions by the given split keys, and scatter regions. | |||
// Only regions which splited successfully will be scattered. | |||
// Only regions which split successfully will be scattered. | |||
// scatterFinishedPercentage indicates the percentage of successfully splited regions that are scattered. | |||
func (s *GrpcServer) SplitAndScatterRegions(ctx context.Context, request *pdpb.SplitAndScatterRegionsRequest) (*pdpb.SplitAndScatterRegionsResponse, error) { |
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.
Do we need to forward this functions?
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.
AFAIK, this API is not used for now.
Signed-off-by: Ryan Leung <rleungx@gmail.com>
Signed-off-by: Ryan Leung <rleungx@gmail.com>
Signed-off-by: Ryan Leung <rleungx@gmail.com>
58fa4dd
to
49d864c
Compare
/merge |
@rleungx: It seems you want to merge this PR, I will help you trigger all the tests: /run-all-tests You only need to trigger
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the ti-community-infra/tichi repository. |
This pull request has been accepted and is ready to merge. Commit hash: 49d864c
|
ref tikv#5839 Signed-off-by: Ryan Leung <rleungx@gmail.com>
What problem does this PR solve?
Issue Number: Ref #5839.
What is changed and how does it work?
Before this PR, the API service was responsible for scatter and split. After this PR, the request will be forwarded to the scheduling service. Once we implement the scheduling service discovery, we can directly send requests to the scheduling service.
Check List
Tests
Release note