Update deep_bson.json for compatibility with strong-typed benchmarks

XMLWordPrintableJSON

    • Type: Spec Change
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • None
    • Needed - No Spec Changes
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-6299 Blocked
      CXX-3473 Blocked
      CSHARP-6003 Blocked
      GODRIVER-3868 Backlog
      JAVA-6172 Blocked
      NODE-7545 Backlog
      PYTHON-5804 Blocked
      PHPLIB-1831 Blocked
      RUBY-3812 Blocked
      RUST-2408 Blocked
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-6299 Blocked CXX-3473 Blocked CSHARP-6003 Blocked GODRIVER-3868 Backlog JAVA-6172 Blocked NODE-7545 Backlog PYTHON-5804 Blocked PHPLIB-1831 Blocked RUBY-3812 Blocked RUST-2408 Blocked

      Summary

      C# implements a strong-typed benchmarks variation. Java will consider adding strong typed benchmarks as well.
      The current deep_bson structure is not suitable for that due to conflicting data types, properties can be both objects and strings.
      Drivers implementing standard benchmarks should not be affected by the change.

      Proposing to change the leaf nodes from:

      {
          "right": {
              "right": "...",
              "left": "..."
          },
          "left": {
              "right": "...",
              "left": "..."
          }
      }
      

      to

      {
          "right": {
              "rightValue": "...",
              "leftValue": "..."
          },
          "left": {
              "rightValue": "...",
              "leftValue": "..."
          }
      }
      

      Motivation

      Who is the affected end user?

      Drivers implementing strong-typed benchmarks

      How does this affect the end user?

       

      How likely is it that this problem or use case will occur?

      NA

      If the problem does occur, what are the consequences and how severe are they?

      NA

      Is this issue urgent?

      No

      Is this ticket required by a downstream team?

      No

      Is this ticket only for tests?

      Yes

      Acceptance Criteria

      Benchmarks pipeline passing

            Assignee:
            Boris Dogadov
            Reporter:
            Boris Dogadov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: