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

Add whether SBE is in use to currentOp output



    • Task
    • Status: Open
    • Major - P3
    • Resolution: Unresolved
    • None
    • None
    • None
    • None


      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.


        Issue Links



              backlog-query-execution Backlog - Query Execution
              dianna.hohensee@mongodb.com Dianna Hohensee
              0 Vote for this issue
              6 Start watching this issue