Skip to content

[opt](meta-cache) refine the meta cache (#33449) - #33754

Merged
morningman merged 1 commit into
apache:branch-2.1from
morningman:21-bp33449
Apr 17, 2024
Merged

[opt](meta-cache) refine the meta cache (#33449)#33754
morningman merged 1 commit into
apache:branch-2.1from
morningman:21-bp33449

Conversation

@morningman

Copy link
Copy Markdown
Contributor

1. Use `caffeine` instead of `guava cache` to get better performace
2. Add a new class `CacheFactory`
All (Async)LoadingCache should be built from `CacheFactory`
3. Use separator executor for different caches
1. rowCountRefreshExecutor
For row count cache.
Row count cache is an async loading cache, and we can ignore the result
if cache missing or thread pool is full.
So use a separate executor for this cache.
2. commonRefreshExecutor
For other caches. Other caches are sync loading cache.
But commonRefreshExecutor will be used for async refresh.
That is, if cache entry is missing, the cache value will be loaded in caller thread, sychronously.
if cache entry need refresh, it will be reloaded in commonRefreshExecutor.
3. fileListingExecutor
File listing is a heavy operation, so use a separate executor for it.
For fileCache, the refresh operation will still use commonRefreshExecutor to trigger refresh.
And fileListingExecutor will be used to list file.
4. Change the refresh and expire logic of caches
For most of caches, set `refreshAfterWrite` strategy, so that
even if the cache entry is expired, the old entry can still be
used while new entry is being loaded.
5. Add new global variable `enable_get_row_count_from_file_list`
Default is true, if false, will disable getting row count from file list
@doris-robot

Copy link
Copy Markdown

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR

Since 2024-03-18, the Document has been moved to doris-website.
See Doris Document.

@morningman
morningman merged commit e61848d into apache:branch-2.1Apr 17, 2024
morningman added a commit to morningman/doris that referenced this pull request Apr 19, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@morningman@doris-robot