Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-15743

Investigate changes in SERVER-68803: Add whether SBE is in use to currentOp output

      Original Downstream Change Summary

      Added a queryFramework field to the currentOp output for query and getMore commands.

      [see comments]

      Description of Linked Ticket

      It would be helpful to distinguish whether active queries are using the SBE or classic engines, in case there's ever a problem where SBE specifically is misbehaving, versus the classic engine, when both are running on a mongod depending on the query. 

      I did some investigation into adding flags to currentOp output, so I've added some notes below in case it is helpful.


      The info should be carried across to getMore cmds, so it looks like the info will need to hook into/through the ClientCursor (perhaps a flag on the PlanExecutor the ClientCursor holds). The decision whether to use SBE appears to take place in getExecutor. So perhaps inside the getSlotBasedExecutor where OpDebug info is set (this will ultimately go into <db>.system.profile after the operation is done), we can add setting a flag on CurOp.

      I'm unfamiliar with if there are any nesting problems to worry about, e.g. the DBDirectClient and leaving CurOp flags set when no longer running a query, or perhaps even subsequently running a query that uses the classic engine. Granted, that sounds like a problem for internal server operations, rather than user initiated operations. I'm not sure what the status quo is for this type of thing.

            alison.huh@mongodb.com Alison Huh
            backlog-server-pm Backlog - Core Eng Program Management Team
            0 Vote for this issue
            5 Start watching this issue

              1 year, 24 weeks, 2 days ago