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

Implement fuzzy result comparison between floating point values in the shell helper

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Optimization
    • 200

      When we ported the fuzzer's result comparison logic over from JavaScript to the c++ shell helper, we made numeric comparison stricter with exact equality comparisons. This has led to the proliferation of fuzzer BFs that boil down to different versions having slightly different floating point precision values (i.e. when a constant folding optimization reorders constants in $sum when it's not fully associative).

      Since we've decided these optimizations are acceptable despite leading to these small differences in floating point precision, we should port over fuzzy result comparison to the c++ shell helper to reduce BF noise from the fuzzer. This PR has a POC that could be reworked for this purpose. We still use woCompare here, so we should modify this to use approximate equality comparison via Knuth's algorithm instead.

            Assignee:
            Unassigned Unassigned
            Reporter:
            lynne.wang@mongodb.com Lynne Wang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: