Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-4435

Add a low contention method of tracking a max statistic

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Cache and eviction
    • Labels:
      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'),

            Assignee:
            neha.khatri Neha Khatri
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: