Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-88951

Performance: change some low-level tasserts to dasserts

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 8.0.0-rc2
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • Fully Compatible
    • v8.0

      There are a lot of tasserts in low-level VM functions, such as those in vm_block.cpp and arith.cpp that mainly verify the TypeTags of slot values that should never change. The Linux "perf" tool detects many of these as being quite expensive - some low-level functions spend 10-15% of their time checking these tasserts.

      This ticket is narrowly scoped to improve $group block processing performance by changing the few most-expensive tasserts to dasserts in vm_block.cpp (code introduced by the PM-3417 feature this ticket is part of), i.e. those that call allBools(). This will remove them from non-debug builds (--dbg=off).

            Assignee:
            kevin.cherkauer@mongodb.com Kevin Cherkauer
            Reporter:
            kevin.cherkauer@mongodb.com Kevin Cherkauer
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: