-
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
Supports multi-region #625
Comments
Currently all partition rules are parsed in frontend and datanode does not validate if data inserted satisfies partition rule, but we may add this validation once repartition is supported. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Also, if there're regions with different schema in a table, then what will be the schema for record batches yielded? Can we compare the versions of schemas of all regions and find the schema with the min version? |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Looks like region failover(#1126) also requires multi region support. |
Close this issue as version 0.4 already supports multi-region. |
What type of enhancement is this?
Tech debt reduction
What does the enhancement do?
Currently in GreptimeDB, only one region can be created for a table on one datanode, which will cause data corruption when the number of table partitons exceeds the number of datanodes.
In fact, table engine supports creating multiple regions for one table, but we have to go through all those components on datanodes whether they can accommodate multiple regions.
Implementation challenges
To support multiple regions on datanode, both standalone and distributed mode should be considered.
options
field to SystemCatalogTablegreptimedb/src/catalog/src/system.rs
Line 49 in 8402ef9
DistTable
. But in standalone mode, requests are directly forwarded to datanode. Thus we need to extract the partition logic to some separate struct to reused it in both distributed mode and standalone mode.greptimedb/src/frontend/src/table.rs
Lines 85 to 95 in 8402ef9
Future work
greptimedb/src/mito/src/table.rs
Lines 178 to 186 in 5d62e19
DROP TABLE
SQL is not currently implemented in parser, we need to support drop all regions on datanode. Support drop table clause #497The text was updated successfully, but these errors were encountered: