-
Notifications
You must be signed in to change notification settings - Fork 411
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
storage: handle IngestSST using segment split #6378
Merged
ti-chi-bot
merged 26 commits into
pingcap:master
from
breezewish:wenxuan/ingest-by-split-2
Dec 1, 2022
Merged
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
97e1f08
Pick impl from older branch
breezewish 678f40f
Check external files are not overlapped in ingestFiles
breezewish 39d2917
Fix tests
breezewish 1b97371
storage: Add more checks for ingest
breezewish 09aee07
Merge remote-tracking branch 'origin/master' into wenxuan/ingest_chec…
breezewish a91ded3
Reformat
breezewish 9a3e9d4
Revert the segment abandon change
breezewish 52b7427
Merge remote-tracking branch 'origin/master' into wenxuan/ingest-by-s…
breezewish 85b6ac2
Merge commit 'a91ded340ded7a19629e355e43b0d1784b62bbf7' into wenxuan/…
breezewish 8514195
Address comments
breezewish cab390b
Cherry pick upstream changes
breezewish 1eac9ae
Fix clang-tidy lints
breezewish 640b397
Merge branch 'master' into wenxuan/ingest_check_not_overlap
ti-chi-bot 525db1e
storage: Accepts a snapshot for segment replaceData API
breezewish 52cf4be
Merge branch 'master' into wenxuan/replace_data_snapshot
breezewish 5648b3c
Merge commit '640b3974c6aa6880d4a65dcfd9b75714b9408ca8' into wenxuan/…
breezewish edd09e4
Fix typos
breezewish 37c7eba
Merge commit '52cf4be99306a6b4aef4e46a2fdae057bdfb499f' into wenxuan/…
breezewish 2e7122d
Merge commit 'f57ec4be15f1eb3a5e459fe5850b2a1b6ce678d9' into wenxuan/…
breezewish 64b1e94
Fix merge issue
breezewish 49064f4
Add concurrent write & ingest test
breezewish 1a1f7eb
Add debug logs
breezewish f093c49
Address comments
breezewish d631a73
Unify the name of splitByIngest and splitByReplace (they are the same)
breezewish e4b5c02
storage: Simplify segmentIngestData
breezewish 742f389
Merge branch 'master' into wenxuan/ingest-by-split-2
flowbehappy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Note: This recursive mutex happens when:
The real problem is we do not distinguish the segment update lock with the delta lock. When both lock is needed, they are conflicted. Also, I did not changed the
ingestColumnFiles
API to allow passing an external lock, because other APIs in the DeltaVS do not have this pattern and I think it may not be a good idea.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.
Usually, in
DeltaMergeStore::segmentApplyXXX
we will acquire the segment update lock and won't change the DeltaVS inside the "apply".segmentIngestData
brings a special pattern that may change the DeltaVS inside its "apply". But I didn't figure out a better solution