-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Cache and Eviction
-
None
-
5
-
Storage Engines 2019-02-25, Storage Engines 2019-03-11
Our current statistics are spread across many buckets to avoid contention when they are updated by many threads. For statistics that we gather that track a max seen value, we don't use that mechanism - rather generally track a max value in another data structure and update the statistic when it's exceeded. The value in the other data structure will be a heavily used shared resource.
It would be valuable to add a way to track maximum value statistics using multiple buckets.
It would also be interesting to be able to reset those statistics when after each checkpoint - similarly to how the cache_eviction_maximum_page_size is reset manually at the moment.
The particular statistics I was thinking of adding were:
CursorStat('cursor_insert_max_recent', 'cursor insert with largest key and value bytes since last checkpoint', 'size'),
CursorStat('cursor_modify_max_recent', 'cursor modify with largest key and value bytes affected since last checkpoint', 'size'),
CursorStat('cursor_modify_max_recent_touch', 'cursor modify with largest value bytes touched since last checkpoint', 'size'),
CursorStat('cursor_update_max_recent', 'cursor updated with largest key and value bytes since last checkpoint', 'size'),