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

WTPERF reports incorrect upper bound item count during populate

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.9.0, 4.4.4
    • Affects Version/s: None
    • Component/s: None
    • 3
    • Storage - Ra 2020-12-28

      In execute_populate, wtperf computes the total number of items to populate as:

      max_key = (uint64_t)opts->icount + (uint64_t)opts->scan_icount;

      So max_key is the total number of items that will be inserted during the populate phase. The populate for-loop in that function keeps populating until the item count reaches max_key.

      However, when reporting the progress during the populate phase, wtperf prints, something like:

      X populate inserts (Y of Z) in K secs (M total secs).

      Z should be equal to max_key, but in fact Z is printed as opts->icount by this code line:

      lprintf(wtperf, 0, 1, "%" PRIu64 " populate inserts (%" PRIu64 " of %" PRIu32
                                    ") in %" PRIu32 " secs (%" PRIu32 " total secs)",
                wtperf->insert_ops - last_ops, wtperf->insert_ops, opts->icount, opts->report_interval,
                wtperf->totalsec);
      

      As a result, for workloads where scan_icount is not equal to zero, wtperf prints

      X populate inserts (Y of Z) in K secs (M total secs).

      with Y > Z, which is confusing.

            Assignee:
            monica.ng@mongodb.com Monica Ng
            Reporter:
            sasha.fedorova@mongodb.com Sasha Fedorova
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: