-
Notifications
You must be signed in to change notification settings - Fork 89
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
[da-vinci][common] DVC consumer for materialized view (batch only) #1466
base: main
Are you sure you want to change the base?
Conversation
Limiting the change to support batch only materialized view to keep the PR small. Hybrid DVC consumer support and related features such as heartbeat will be added in a separate PR 1. New DaVinciClientFactory APIs for creating DVC for a given view. 2. Defined a new "storeName" rule for views to be used for metrics reporting and shared DVC client. See VeniceView.getStoreAndViewName for details. Trying to reuse much of the existing DVC code and structure while providing the support for users to subscribe to the original store and different views of the same store. 3. Introduced ReadOnlyMaterializedViewVersion and StoreViewBackend abstractions to minimize the code change needed for DVC to understand and work with views. ReadOnlyMaterializedViewVersion will provide view sepcific properties for a ReadOnlyVersion and StoreViewBackend will provide view specific properties for a StoreBackend.
42b48dd
to
e546936
Compare
Hi @xunyin8
Here is one idea in my mind:
If we build such capability, the change in DVRT or CDC will be fairly straightforward. WDYT? |
This makes sense, I was hoping to be able to only keep the adapting layer in |
[da-vinci][common] DVC consumer for materialized view (batch only)
Limiting the change to support batch only materialized view to keep the PR small. Hybrid DVC consumer support and related features such as heartbeat will be added in a separate PR
New DaVinciClientFactory APIs for creating DVC for a given view.
Defined a new "storeName" rule for views to be used for metrics reporting and shared DVC client. See VeniceView.getStoreAndViewName for details. Trying to reuse much of the existing DVC code and structure while providing the support for users to subscribe to the original store and different views of the same store.
Introduced ReadOnlyMaterializedViewVersion and StoreViewBackend abstractions to minimize the code change needed for DVC to understand and work with views. ReadOnlyMaterializedViewVersion will provide view sepcific properties for a ReadOnlyVersion and StoreViewBackend will provide view specific properties for a StoreBackend.
There is some issue with chunking support on the read path. Despite writers are properly configured the read path would return null for materialized view if chunking is enabled. Still looking into it.
How was this PR tested?
Unit tests WIP
Added new integration test
Does this PR introduce any user-facing changes?