-
Notifications
You must be signed in to change notification settings - Fork 308
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
feat: implement FlowTaskMetadataManager #3766
feat: implement FlowTaskMetadataManager #3766
Conversation
fb52f58
to
7602bac
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3766 +/- ##
==========================================
- Coverage 85.55% 85.32% -0.24%
==========================================
Files 947 952 +5
Lines 160481 161940 +1459
==========================================
+ Hits 137307 138172 +865
- Misses 23174 23768 +594 |
032cd50
to
6973fb5
Compare
Yes, I think we should treat a catalog as a tenant. cc @discord9 |
It would make sense for one user to use multiple database as input, so task should be cross database but also belong to one catalog, so it's per user? |
fb6d4d6
to
d6fcaed
Compare
Can we reduce the depth of the key? I think we can end up with "flownode_id", put flow task id and partition id in the value. |
I don't think it's good to place the variable "catalog" between two static prefixes. For example, better |
5df990f
to
6e62e3f
Compare
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.
LGTM
We need to be able to see all keys under a catalog, and the catalog also serves as an isolation, in other words: catalog1 cannot see catalog2. |
I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
#3664
What's changed and what's your intention?
FlowTaskInfoKey
, layout:__flow_task/{catalog}/info/{flow_task_id}
, which stores the metadata of the flow task.FlowTaskNameKey
, layout:__flow_task/{catalog}/name/{task_name}
, which mappingtask_name
totask_id
.FlownodeTaskKey
, layout:__flow_task/{catalog}/flownode/{flownode_id}/{flow_task_id}/{partition_id}
, which mappingflownode_id
totask_id
.TableTaskKey
, layout:__table_task/{catalog}/source_table/{table_id}/{flownode_id}/{flow_task_id}/{partition_id}
, which mappingtable_id
tonode_id
.FlowTaskMetadataManager
, and implements thecreate_flow_task_metadata
method.The whole picture will be like this:
Checklist