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

Investigate improvements or removal of command monitoring object cloning

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: None
    • Component/s: Performance
    • Labels:
    • 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 driver user
      I want performant command monitoring and logging
      So that there is not a significant cost to enabling application insight

      We should consider lazily cloning or no longer cloning commands and responses. This reduces the overhead of monitoring making command logging more accessible to more applications.

      TBD:

      • No longer cloning would be replaced with typescript & documentation that it is unexpected for modifications to be made to responses/commands so it's out of scope for our driver to handle
      • Make cloning lazy via getter
        • perhaps instead make clones of the BSON bytes, costly but less so than a recursive clone of a JS object, better at type info preservation

      User Impact

      • By no longer cloning, command or response modification can impact driver behavior

      Dependencies

      • upstream and/or downstream requirements and timelines to bear in mind

      Unknowns

      • questions that need to be answered to determine implementation

      Acceptance Criteria

      Implementation Requirements

      • functional reqs, potential snafus to avoid, performance targets, etc

      Testing Requirements

      • unit test, spec test sync, etc

      Documentation Requirements

      • DOCSP ticket, API docs, etc

      Follow Up Requirements

      • additional tickets to file, required releases, etc

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

              Created:
              Updated: