-
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
Local cache for catalog #816
Comments
As the PR for async There's still one caveat,
|
A quick glimpse of datafusion and our codes, there are mainly two usage of catalog/schema manager: 1. list all tables in catalog; 2. find a specific table. For listing tables I think we can just ignore the caching demand, because:
For finding tables, I think we can now use moka to cache tables in |
Since datafusion has already refactored their requirements for table resolution, the whole "schema provider"/"catalog provider" can be removed I think. As for table cache, I'm ok with moka, as long as we can explicitly notify datanode to refresh cache on demand. |
Let's wait for datafusion's catalog refactor in apache/datafusion#5291 |
There may be a problem: |
You can implement heartbeat in frontend first, and make this cache invalidation in heartbeat response. |
Can we establish a heartbeat mechanism between fronend and meta, similar to the heartbeat of datanode and mata. In this way, we can transmit information such as table alter through heartbeats to trigger frontend cache updates or do other things. |
of course |
completed in #1592 |
What type of enhancement is this?
Performance
What does the enhancement do?
CatalogManager
'sschema
/table
API in in the critical path of every table request. Current implementation is a workaround since arrow-datfusion catalog is sync method while the implementation is async, which may introduce extra overhead.I opened an issue for async version of
Catalog
APIs and arrow-datafusion's async catalog api is still under development. We may end up with building a local cache for catalogs/schemas/tables.Implementation challenges
NA
The text was updated successfully, but these errors were encountered: