-
Notifications
You must be signed in to change notification settings - Fork 315
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
Tracking issue for implementing mito as a region engine #1869
Labels
Milestone
Comments
This was referenced Jul 4, 2023
2 tasks
This was referenced Jul 18, 2023
This was referenced Jul 20, 2023
2 tasks
8 tasks
This was referenced Aug 2, 2023
This was referenced Aug 9, 2023
This was referenced Aug 18, 2023
This was referenced Aug 26, 2023
2 tasks
This was referenced Sep 4, 2023
evenyag
changed the title
Tracking issue for replacing table engine with region engine
Tracking issue for implementing mito as a region engine
Sep 5, 2023
This was referenced Sep 6, 2023
This was referenced Sep 14, 2023
Looks like we can close this issue 👍 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
What type of enhancement is this?
Refactor, Tech debt reduction
What does the enhancement do?
For historical reasons, both frontend and table engines (run in datanode) are aware of multiple regions in a table. That makes implementing a distributed table with multi-regions support complicated. We need to deal table and its regions on both frontend and datanode. We also need to implement procedures for the mito engine to ensure the eventual consistency of altering a table.
We decide to turn the table engine into a region engine, which only has knowledge of regions.
TableEngine
trait becomesRegionEngine
and only deals with regions.RegionServer
. It manages regions assigned to the node and provides region-level access.StorageEngine
with themito
table engine.metasrv
, there is no need to persist them again to the table manifest. We can remove the table manifest.metasrv
. We don't need procedures for the mito engine.Steps
We are going to create a new fork of
mito
crate (maybemito2
).mito2
chore: initialize mito2 crate #1875TableInfo
to replaceRegionMetadata
(We might still reuse theRegionSchema
)MitoRegion
orMitoRegionInfo
to hold metadata feat(mito): Define Version and metadata builders for mito2 #1989RegionManifest
andStorageManifest
refactor(mito2): implement RegionManifestManager #1984Region
trait and forward requests to the engine directlyfile
table engine if necessary feat: migrate file engine from table to reigon #2365TableEngineProcedure
traitmito
andfile
enginemito
withmito2
(renamemito2
tomito
)TableEngine
toRegionEngine
StorageEngine
and related traitsOther Enhancements
There are also some other enhancements we could achieve during refactoring mito. They may not be strictly related to this issue's topic.
sequence
fromRegionMetaAction::Change
LogStore
index and engine sequence (switch to sequence per key mode)Option
from time range inFileMeta
RegionWriter
that supports batching (group commit)Add column family support?We plan to remove column familyThe text was updated successfully, but these errors were encountered: