-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
lightning: try balance lighting throughput to all tikvs(consider all peers) #54976
base: release-6.5-20231120-v6.5.4
Are you sure you want to change the base?
lightning: try balance lighting throughput to all tikvs(consider all peers) #54976
Conversation
shouyan.guo seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @guoshouyan. Thanks for your PR. I'm waiting for a pingcap member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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 kubernetes/test-infra repository. |
Hi @guoshouyan. Thanks for your PR. PRs from untrusted users cannot be marked as trusted with I understand the commands that are listed here. 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 kubernetes-sigs/prow repository. |
/ok-to-test |
rr := pickRanges(rangeAndRegions, ®ionProcessingMap, finished) | ||
startKey := rr.r.start | ||
endKey := rr.r.end | ||
processingRegions := rr.regions |
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.
passing processingRegions
to writeAndIngestByRange
in line 1722, to skip the inner scan region API in line 1470?
@guoshouyan: The following tests failed, say
Full PR test history. Your PR dashboard. 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 kubernetes/test-infra repository. I understand the commands that are listed here. |
previously PR: #54615
in previous PR, it only consider leader region store id when trying to balance throughput to all tikv. In this PR, I try to consider all peers
RangeAndRegion
to store both the range and its regions informationregionProcessingMap := sync.Map{}
to stores all store id that are currently importing. when we assign a range to a worker, we increase the count. When the range finishes, we decrease the count.pickRanges
, it will find the best range to import. It iterates through all ranges and calculate a score: sum(number of current region importing). And we always try to schedule the one with lowest score.perform testing: importing about 10T data with 7 lightning on a cluster with 30 tikv nodes and store limit of 30MB
without pre split(base line): time taken 130 mins, throughput about 666 MB/s per lightning
with presplit: time taken more than 3 hours, killed. throughput below 300 MB/s
with presplit and balance across leader region store id: time taken 160 mins, throughput 512 MB/s
with presplit and balance across all peer store id: time take 100 mins, throughput around 800~1000 MB/s
What problem does this PR solve?
Issue Number: ref #56113
Problem Summary:
What changed and how does it work?
Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.