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

Dump available space in 1% buckets in compact verbose logging

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Minor - P4 Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: Compaction
    • Storage Engines
    • 3
    • StorEng - Defined Pipeline

      Background

      Compact dumps the the space available in a file in 10% increments at the start and end of a compaction round. For example:

      [1717645739:447465][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]:  0%:            1MB, (free: 1259520B, 23%), (used: 0MB, 73728B, 0%)
      [1717645739:447473][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 10%:            1MB, (free: 1329152B, 25%), (used: 0MB, 4096B, 0%)
      [1717645739:447482][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 20%:            0MB, (free: 0B, 0%), (used: 1MB, 1333248B, 16%)
      [1717645739:447489][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 30%:            0MB, (free: 0B, 0%), (used: 1MB, 1333248B, 16%)
      [1717645739:447497][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 40%:            0MB, (free: 0B, 0%), (used: 1MB, 1333248B, 16%)
      [1717645739:447504][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 50%:            0MB, (free: 28672B, 0%), (used: 1MB, 1304576B, 16%)
      [1717645739:447511][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 60%:            0MB, (free: 0B, 0%), (used: 1MB, 1333248B, 16%)
      [1717645739:447518][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 70%:            0MB, (free: 49152B, 0%), (used: 1MB, 1284096B, 15%)
      [1717645739:447525][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 80%:            1MB, (free: 1333248B, 25%), (used: 0MB, 0B, 0%)
      [1717645739:447533][1745102:0x7efc67933000], test_compact12.test_compact12.test_compact12_truncate, file:test_compact12.wt, WT_SESSION.compact: [WT_VERB_COMPACT][DEBUG_2]: 90%:            1MB, (free: 1300480B, 24%), (used: 0MB, 32768B, 0%)
      

      Change

      There is code in the same function block_dump_file_stat that dumps in 1% increments instead. However, it is currently wrapped around an unused directive:

      #ifdef __VERBOSE_OUTPUT_PERCENTILE
          /*
           * The verbose output always displays 10% buckets, running this code as well also displays 1%
           * buckets. There will be rounding error in the `used` stats because of the bucket size
           * calculation. Adding 50 to minimize the rounding error.
           */
          bucket_size = (uintmax_t)((size + 50) / 100);
          for (i = 0; i < WT_ELEMENTS(percentile); ++i)
              __block_dump_bucket_stat(session, (uintmax_t)size, (uintmax_t)el->bytes, bucket_size,
                (uintmax_t)percentile[i] * 512, i);
      #endif
      

      This could be useful for investigating compaction on large files. We should consider changing the function to use 1% increments when a high level of compact verbose logs is set eg. 3, 4 or 5

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            sean.watt@mongodb.com Sean Watt
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: