diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2023-01-17 19:35:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-17 19:35:14 +0200 |
commit | 7279dd092c23fbafcd7edb8ef7f3f79e1a0e5ecb (patch) | |
tree | 730e1cc845613b1751ad79f5d8ba6bdce1ad9491 /database/engine/cache.h | |
parent | 6be264d62788b1b50109dc1f2a0cb6f622cfb804 (diff) |
DBENGINE v2 - improvements part 3 (#14269)
* reduce journal v2 shared memory using madvise() - not integrated yet
* working attempt to minimize dbengine shared memory
* never call willneed - let the kernel decide which parts of each file are really needed
* journal files get MADV_RANDOM
* dont call MADV_DONTNEED too frequently
* madvise() is always called with the journal unlocked but referenced
* call madvise() even less frequently
* added chart for monitoring database events
* turn batch mode on under critical conditions
* max size to evict is 1/4 of the max
* fix max size to evict calculation
* use dbengine_page/extent_alloc/free to pages and extents allocations, tracking also the size of these allocations at free time
* fix calculation for batch evictions
* allow main and open cache to have as many evictors as needed
* control inline evictors for each cache; report different levels of cache pressure on every cache evaluation
* more inline evictors for extent cache
* bypass max inline evictors above critical level
* current cache usage has to be taken
* re-arrange items in journafile
* updated docs - work in progress
* more docs work
* more docs work
* Map / unmap journal file
* draw.io diagram for dbengine operations
* updated dbengine diagram
* updated docs
* journal files v2 now get mapped and unmapped as needed
* unmap journal v2 immediately when getting retention
* mmap and munmap do not block queries evaluating journal files v2
* have only one unmap function
Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com>
Diffstat (limited to 'database/engine/cache.h')
-rw-r--r-- | database/engine/cache.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/database/engine/cache.h b/database/engine/cache.h index 7dd52614ae..c68ae82a53 100644 --- a/database/engine/cache.h +++ b/database/engine/cache.h @@ -164,7 +164,8 @@ typedef void (*save_dirty_page_callback)(PGC *cache, PGC_ENTRY *entries_array, P // create a cache PGC *pgc_create(size_t clean_size_bytes, free_clean_page_callback pgc_free_clean_cb, size_t max_dirty_pages_per_flush, save_dirty_page_callback pgc_save_dirty_cb, - size_t max_pages_per_inline_eviction, size_t max_skip_pages_per_inline_eviction, + size_t max_pages_per_inline_eviction, size_t max_inline_evictors, + size_t max_skip_pages_per_inline_eviction, size_t max_flushes_inline, PGC_OPTIONS options, size_t partitions, size_t additional_bytes_per_page); |