memtx: add transaction management support for multikey indexes#8465
Open
CuriousGeorgiy wants to merge 4 commits intotarantool:masterfrom
Open
memtx: add transaction management support for multikey indexes#8465CuriousGeorgiy wants to merge 4 commits intotarantool:masterfrom
CuriousGeorgiy wants to merge 4 commits intotarantool:masterfrom
Conversation
c5f3e1a to
c4bc058
Compare
|
You have successfully added a new CodeQL configuration |
9061d98 to
1129bb9
Compare
This was referenced Mar 20, 2023
e703cf1 to
7d122c7
Compare
Member
Author
|
Ignoring following
|
70f8c60 to
7141e4e
Compare
locker
reviewed
Mar 21, 2023
cafcf1b to
4114df1
Compare
Currently, transaction management of space replace is decoupled index replaces: this is not convenient, since we may need to retrieve additional meta information from certain indexes (e.g., successor tuple from tree index or results of individual replace operations for multikey index) — in order to achieve this, couple transaction management with index replaces. Needed for tarantool#6385 NO_CHANGELOG=refactoring NO_DOC=refactoring NO_TEST=refactoring
Currently, replace in multikey index is done via a replace function specialization for tree index: not only is it excessive (because it unnecessarily couples multikey replace with index replace), but it also doesn't allow for proper transaction manager notification of replace event, since all the meta-information is lost — refactor multikey index replace as a sequence of regular replace operations, which potentially allows for implementing multikey on top any type of index, not limiting it to tree. Needed for tarantool#6385 NO_CHANGELOG=refactoring NO_DOC=refactoring NO_TEST=refactoring
Multikey index tuple hashing is needed for memtx transaction manager support of multikey indexes: enable multikey hashing by simply adding a loop iterating over the multikey indices of a multikey key definition. Needed for tarantool#6385 NO_CHANGELOG=refactoring NO_DOC=refactoring NO_TEST=refactoring
Multikey indexes require separate history chains for each of the keys: this is required for tuple clarification as well as for gap tracking. In order to achieve this, we add another layer of indirection via a key array for each story: history chains are now formed by keys rather than stories. Closes tarantool#6385 NO_DOC=<the documentation doesn't mention that multikey indexes are not supported by memtx MVCC transaction manager>
4114df1 to
ffe9c4f
Compare
Member
Author
|
@locker this ERROR:CODE_IDENT: code indent should match comment
#2266: FILE: src/box/memtx_tx.c:2536:
+ */
+ } |
andreyaksenov
approved these changes
Apr 13, 2023
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #6385