Uploaded image for project: 'Node.js Driver'
  1. Node.js Driver
  2. NODE-5960

Incorporate on-demand BSON API into driver

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.8.0
    • Affects Version/s: None
    • Component/s: None
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      Use Case

      As a Node.js Driver engineer
      I want to spread CPU intensive work across event loop ticks
      So that Node.js applications remain as responsive as possible

      User Impact

      • Currently the driver parses all BSON at once. The goal is to experiment with parsing only the BSON needed for driver functionality (ok:1/0, errmsg, cursor.id) and parse the rest (firstBatch, nextBatch) as a cursor is iterated.

      Dependencies

      Unknowns

      • None

      Acceptance Criteria

      Implementation Requirements

      • PoC parsing partial cursor results and parsing the user data as we iterate
      • Measure the performance effects of this change
      • Answer the following:
        • What are the performance gains?
        • How much BSON "parsing" logic belongs in the driver vs in BSON?

      Testing Requirements

      • Existing tests to ensure no regressions
      • Unit test conditions that enable partial parsing (only occurs for specific cursor commands)

      Documentation Requirements

      • None

      Follow Up Requirements

      • None

            Assignee:
            neal.beeken@mongodb.com Neal Beeken
            Reporter:
            neal.beeken@mongodb.com Neal Beeken
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: