Definici贸n
Novedad en la versi贸n 3.6.
$currentOpDevuelve un flujo de documentos que contiene informaci贸n sobre operaciones activas y/o inactivas, as铆 como sesiones inactivas que mantienen bloqueos como parte de una transacci贸n. La etapa devuelve un documento para cada operaci贸n o sesi贸n. Para ejecutar
$currentOp, utiliza eldb.aggregate()asistente en la base de datosadmin.La etapa de agregaci贸n
$currentOpes preferible a el comandocurrentOpy su m茅todo asistentemongoshdb.currentOp(). Debido a que el comandocurrentOpy el m茅todo auxiliardb.currentOp()devuelven los resultados en un 煤nico documento, el tama帽o total del conjunto de resultadoscurrentOpest谩 sujeto al l铆mite m谩ximo de 16MB del tama帽o BSON para documentos. La$currentOpetapa devuelve un cursor sobre un flujo de documentos, cada uno de los cuales informa sobre una sola operaci贸n. Cada documento de operaci贸n est谩 sujeto al l铆mite de BSON de 16MB, pero a diferencia del comandocurrentOp, no hay l铆mite en el tama帽o total del conjunto de resultados.$currentOptambi茅n te permite realizar transformaciones arbitrarias de los resultados a medida que los documentos pasan por el pipeline.
Sintaxis
Cambiado en la versi贸n 4.2.
{ $currentOp: { allUsers: <boolean>, idleConnections: <boolean>, idleCursors: <boolean>, idleSessions: <boolean>, localOps: <boolean> } }
$currentOp toma un documento de opciones como su operando:
Opci贸n | Descripci贸n |
|---|---|
Booleano.
Para conjuntos aut贸nomos y sets de r茅plicas que aplican el control de acceso, se requiere el privilegio Para los cl煤steres particionados que aplican el control de acceso, se requiere el privilegio Se establece por defecto en | |
booleano. Si se configura en Se establece por defecto en | |
Booleano. Si se configura en La informaci贸n sobre los cursores inactivos tiene la La informaci贸n sobre los cursores actualmente activos en una Se establece por defecto en Nuevo en la versi贸n 4.2. | |
Booleano.
Se establece por defecto en | |
booleano. Si se establece en El par谩metro Se establece por defecto en | |
booleano. Determina si la informaci贸n de la pila de llamadas se devuelve como parte del campo de salida
Se establece por defecto en Nuevo en la versi贸n 4.2.2. |
Omitir cualquiera de los par谩metros anteriores causar谩 que $currentOp use el valor por defecto de ese par谩metro. Especifica un documento vac铆o, como se muestra a continuaci贸n, para usar los valores por defecto de todos los par谩metros.
{ $currentOp: { } }
Restricciones
pipeline
$currentOpdebe ser la primera etapa en la pipeline.Los pipelines que empiezan con
$currentOpsolo se pueden ejecutar en la base de datosadmin.
Control de acceso
Para conjuntos aut贸nomos y sets de r茅plicas que aplican el control de acceso, se requiere el privilegio de
inprogpara ejecutar$currentOpsi allUsers: true.Para los cl煤steres fragmentados que hacen cumplir el control de acceso, se requiere el privilegio
inprogpara ejecutar el$currentOp.
Transacciones
$currentOpno est谩 permitido en transacciones.
Ejemplo
El siguiente ejemplo devuelve informaci贸n sobre las sesiones inactivas que mantienen bloqueos como parte de una transacci贸n. En concreto:
La primera etapa devuelve documentos para todas las operaciones activas, as铆 como sesiones inactivas que mantienen bloqueos como parte de una transacci贸n.
La segunda etapa filtra s贸lo aquellos documentos relacionados con sesiones inactivas que est谩n manteniendo bloqueos como parte de una transacci贸n.
db.getSiblingDB("admin").aggregate( [ { $currentOp : { allUsers: true, idleSessions: true } }, { $match : { active: false, transaction : { $exists: true } } } ] )
A partir de la versi贸n 4.2, puedes usar $currentOp.type para especificar un filtro equivalente:
db.getSiblingDB("admin").aggregate( [ { $currentOp : { allUsers: true, idleSessions: true } }, { $match : { type: "idleSession" } } ] )
Tip
Para las transacciones en un cl煤ster fragmentado, incluye localOps:true en los ejemplos anteriores para obtener una vista compuesta de las transacciones.
Ambas operaciones devuelven documentos con el siguiente formato:
Cuando se ejecuta en un mongod que forma parte de un set de r茅plicas:
{ "type" : "idleSession", "host" : "example.mongodb.com:27017", "desc" : "inactive transaction", "client" : "198.51.100.1:50428", "connectionId" : NumberLong(32), "appName" : "", "clientMetadata" : { "driver" : { "name" : "PyMongo", "version" : "3.9.0" }, "os" : { "type" : "Darwin", "name" : "Darwin", "architecture" : "x86_64", "version" : "10.14.5" }, "platform" : "CPython 3.7.1.final.0" }, "lsid" : { "id" : UUID("ff21e1a9-a130-4fe0-942f-9e6b6c67ea3c"), "uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=") }, "transaction" : { "parameters" : { "txnNumber" : NumberLong(4), "autocommit" : false, "readConcern" : { "level" : "snapshot", "afterClusterTime" : Timestamp(1563892246, 1) } }, "readTimestamp" : Timestamp(0, 0), "startWallClockTime" : "2019-07-23T10:30:49.461-04:00", "timeOpenMicros" : NumberLong(1913590), "timeActiveMicros" : NumberLong(55), "timeInactiveMicros" : NumberLong(1913535), "expiryTime" : "2019-07-23T10:31:49.461-04:00" }, "waitingForLock" : false, "active" : false, "locks" : { "ReplicationStateTransition" : "w", "Global" : "w", "Database" : "w", "Collection" : "w" }, "lockStats" : { "ReplicationStateTransition" : { "acquireCount" : { "w" : NumberLong(5) } }, "Global" : { "acquireCount" : { "r" : NumberLong(3), "w" : NumberLong(1) } }, "Database" : { "acquireCount" : { "r" : NumberLong(2), "w" : NumberLong(1) } }, "Collection" : { "acquireCount" : { "w" : NumberLong(1) } }, "Mutex" : { "acquireCount" : { "r" : NumberLong(3) } }, "oplog" : { "acquireCount" : { "r" : NumberLong(2) } } }, "waitingForFlowControl" : false, "flowControlStats" : { } }
Al ejecutar $currentOp con localOps:true, se obtiene una vista compuesta (en lugar de por partici贸n) de las transacciones en curso que se ejecutan en ese mongos.
db.getSiblingDB("admin").aggregate( [ { $currentOp : { allUsers: true, idleSessions: true, localOps: true } }, { $match : { type: "idleSession" } } ] ); // or db.getSiblingDB("admin").aggregate( [ { $currentOp : { allUsers: true, idleSessions: true, localOps: true } }, { $match : { active: false, transaction : { $exists: true } } } ] )
{ "type" : "idleSession", "host" : "example.mongodb.com:27017", "desc" : "inactive transaction", "client" : "198.51.100.1:49618", "connectionId" : NumberLong(48), "appName" : "", "clientMetadata" : { "driver" : { "name" : "PyMongo", "version" : "3.9.0" }, "os" : { "type" : "Darwin", "name" : "Darwin", "architecture" : "x86_64", "version" : "10.14.6" }, "platform" : "CPython 3.7.1.final.0", "mongos" : { "host" : "example.mongodb.com:27017", "client" : "198.51.100.1:53268", "version" : "4.2.1" } }, "lsid" : { "id" : UUID("2c9ce111-133e-45b7-a00f-a7871005cae1"), "uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=") }, "active" : false, "transaction" : { "parameters" : { "txnNumber" : NumberLong(2), "autocommit" : false, "readConcern" : { "level" : "snapshot", "afterClusterTime" : Timestamp(1571869019, 2) } }, "globalReadTimestamp" : Timestamp(1571869019, 2), "startWallClockTime" : "2019-10-23T18:16:59.341-04:00", "timeOpenMicros" : NumberLong(169244639), "timeActiveMicros" : NumberLong(535), "timeInactiveMicros" : NumberLong(169244104), "numParticipants" : 2, "participants" : [ { "name" : "shardB", "coordinator" : true, "readOnly" : false }, { "name" : "shardA", "coordinator" : false, "readOnly" : false } ], "numReadOnlyParticipants" : 0, "numNonReadOnlyParticipants" : 2 } }
Cuando se ejecuta sin localOps:true en el mongos, la informaci贸n de la transacci贸n es por partici贸n.
Cuando se ejecuta en un mongos sin localOps:true, la informaci贸n sobre la transacci贸n es por partici贸n.
{ "shard" : "shardB", "type" : "idleSession", "host" : "shardB.mongodb.com:27018", "desc" : "inactive transaction", "client_s" : "198.51.100.1:53961", "connectionId" : NumberLong(63), "appName" : "", "clientMetadata" : { "driver" : { "name" : "PyMongo", "version" : "3.9.0" }, "os" : { "type" : "Darwin", "name" : "Darwin", "architecture" : "x86_64", "version" : "10.14.6" }, "platform" : "CPython 3.7.1.final.0", "mongos" : { "host" : "example.mongodb.com:27017", "client" : "198.51.100.1:53976", "version" : "4.2.0" } }, "lsid" : { "id" : UUID("720d403c-8daf-40bb-b61e-329e20b0493b"), "uid" : BinData(0,"3pxqkATNUYKV/soT7qqKE0zC0BFb0pBz1pk4xXcSHsI=") }, "transaction" : { "parameters" : { "txnNumber" : NumberLong(1), "autocommit" : false, "readConcern" : { "level" : "snapshot" } }, "readTimestamp" : Timestamp(0, 0), "startWallClockTime" : "2019-10-21T18:31:12.192-04:00", "timeOpenMicros" : NumberLong(24137008), "timeActiveMicros" : NumberLong(52), "timeInactiveMicros" : NumberLong(24136956), "expiryTime" : "2019-10-21T18:32:12.192-04:00" }, "waitingForLock" : false, "active" : false, "locks" : { "ReplicationStateTransition" : "w", "Global" : "w", "Database" : "w", "Collection" : "w" }, "lockStats" : { "ReplicationStateTransition" : { "acquireCount" : { "w" : NumberLong(3) } }, "Global" : { "acquireCount" : { "r" : NumberLong(1), "w" : NumberLong(1) } }, "Database" : { "acquireCount" : { "r" : NumberLong(1), "w" : NumberLong(1) } }, "Collection" : { "acquireCount" : { "r" : NumberLong(1), "w" : NumberLong(1) } }, "Mutex" : { "acquireCount" : { "r" : NumberLong(6) } } } } { "shard" : "shardA", "type" : "idleSession", ... }
Campos de salida
Cada documento de salida puede contener un subconjunto de los siguientes campos seg煤n sea relevante para la operaci贸n:
$currentOp.typeNuevo en la versi贸n 4.2.
El tipo de operaci贸n. Los valores son:
opidleSessionidleCursor
Si el
$currentOp.typeest谩op,$currentOp.opproporciona detalles sobre la operaci贸n espec铆fica.
$currentOp.shardEl nombre de la partici贸n en el que se est谩 ejecutando la operaci贸n.
Solo presente para cl煤steres fragmentados.
$currentOp.clientLa direcci贸n IP (o el nombre de host) y el puerto ef铆mero de la conexi贸n del cliente en donde se origina la operaci贸n.
Para transacciones multi-documento,
$currentOp.clientalmacena informaci贸n sobre el cliente m谩s reciente que ejecut贸 una operaci贸n dentro de la transacci贸n.Solo para aut贸nomos y sets de r茅plicas
$currentOp.client_sLa direcci贸n IP (o nombre del host) y el puerto ef铆mero del
mongosdonde se origina la operaci贸n.Solo para cl煤steres fragmentados
$currentOp.clientMetadataInformaci贸n adicional del cliente.
Para transacciones multi-documento,
$currentOp.clientalmacena informaci贸n sobre el cliente m谩s reciente que ejecut贸 una operaci贸n dentro de la transacci贸n.
$currentOp.appNameNovedad en la versi贸n 3.4.
El identificador de la aplicaci贸n cliente que ejecut贸 la operaci贸n. Utiliza la opci贸n de cadena de conexi贸n
appNamepara establecer un valor personalizado para el campoappName.
$currentOp.activeUn valor booleano que especifica si la operaci贸n ha comenzado. El valor es
truesi la operaci贸n ha comenzado ofalsesi la operaci贸n est谩 inactiva, como una conexi贸n inactiva, una sesi贸n inactiva o un hilo interno que actualmente est谩 inactivo. Una operaci贸n puede estar activa incluso si la operaci贸n ha cedido a otra operaci贸n.
$currentOp.twoPhaseCommitCoordinatorInformaci贸n sobre cualquiera de los siguientes:
Las m茅tricas de coordinaci贸n de confirmaci贸n para una transacci贸n cuyas operaciones de guardado abarcan m煤ltiples particiones.
La coordinaci贸n de la confirmaci贸n la realiza una partici贸n, y
$currentOp(ejecuta en unmongoso en un nodo de la partici贸n) devuelve la informaci贸n de coordinaci贸n de una partici贸n 煤nicamente para las transacciones que se encuentran actualmente coordinadas por esa partici贸n.Para filtrar solo por las m茅tricas de coordinaci贸n de confirmaciones:
db.getSiblingDB("admin").aggregate( [ { $currentOp: { allUsers: true, idleSessions: true } }, { $match: { desc: "transaction coordinator" } } ] ) Una operaci贸n de coordinaci贸n de env铆os espec铆fica (es decir,
typeesopydesces"TransactionCoordinator") gestado por el coordinador de transacciones.
Nota
Si se ejecuta con idleSessions: false,
$currentOpno devuelve la informaci贸n$currentOp.twoPhaseCommitCoordinatoreninactivestateSi el control de acceso est谩 habilitado y allUsers: false,
$currentOpno devuelve informaci贸n de$currentOp.twoPhaseCommitCoordinator.
$currentOp.twoPhaseCommitCoordinator.lsidEl identificador de sesi贸n para la transacci贸n multipartici贸n.
La combinaci贸n de
lsidytxnNumberidentifica la transacci贸n.Disponible tanto para las m茅tricas de coordinaci贸n de confirmaciones como para operaciones de coordinaci贸n espec铆ficas.
$currentOp.twoPhaseCommitCoordinator.txnNumberEl n煤mero de transacci贸n para la transacci贸n de m煤ltiples particiones.
La combinaci贸n de
txnNumberylsididentifica la transacci贸n.Disponible tanto para las m茅tricas de coordinaci贸n de confirmaciones como para operaciones de coordinaci贸n espec铆ficas.
$currentOp.twoPhaseCommitCoordinator.actionLa operaci贸n espec铆fica de coordinaci贸n de confirmaci贸n originada por el coordinador de transacciones:
"sendingPrepare""sendingCommit""sendingAbort""writingParticipantList""writingDecision""deletingCoordinatorDoc"
Solo disponible para operaci贸n de coordinaci贸n espec铆fica.
$currentOp.twoPhaseCommitCoordinator.startTimeLa fecha y hora de inicio del
action.Solo disponible para operaci贸n de coordinaci贸n espec铆fica.
$currentOp.twoPhaseCommitCoordinator.numParticipantsN煤mero de particiones que participan en este commit.
Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
$currentOp.twoPhaseCommitCoordinator.stateEl paso/estado actual del proceso de coordinaci贸n de confirmaciones.
Paso/etapaDescripci贸ninactiveNo forma parte activamente de una commit.
writingParticipantListRegistrando un registro local de la lista de particiones que forman parte de esta transacci贸n multi-partici贸n.
waitingForVotesEsperando que los participantes respondan con su voto para confirmar o abortar.
writingDecisionRedacci贸n de un registro local de la decisi贸n del coordinador de confirmar o abortar en funci贸n de los votos.
waitingForDecisionAckEsperando que los participantes reconozcan la decisi贸n del coordinador de confirmar o cancelar.
deletingCoordinatorDocBorrando el registro local de la decisi贸n de confirmaci贸n.
Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
Ver tambi茅n
$currentOp.twoPhaseCommitCoordinator.stepDurations.
$currentOp.twoPhaseCommitCoordinator.commitStartTimeLa fecha y hora en que comenz贸 el commit.
Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailoverUn booleano que indica si la coordinaci贸n de confirmaciones se reinici贸 debido a un cambio de respaldo en la partici贸n que coordina la confirmaci贸n.
Si
hasRecoveredFromFailoveres verdadero, entonces los tiempos especificados en$currentOp.twoPhaseCommitCoordinator.stepDurationspueden no ser precisos para todos los pasos.Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
$currentOp.twoPhaseCommitCoordinator.stepDurationsUn documento que contiene la duraci贸n, en microsegundos, de la
steps/statecompletada o en curso del proceso en activo, as铆 como la duraci贸n total acumulada; por ejemplo:"stepDurations" : { "writingParticipantListMicros" : NumberLong(17801), "totalCommitDurationMicros" : NumberLong(42488463), "waitingForVotesMicros" : NumberLong(30378502), "writingDecisionMicros" : NumberLong(15015), "waitingForDecisionAcksMicros" : NumberLong(12077145), "deletingCoordinatorDocMicros" : NumberLong(6009) }, Si
$currentOp.twoPhaseCommitCoordinator.hasRecoveredFromFailoveres verdadero, entonces los tiempos especificados enstepDurationspueden no ser precisos para todos los pasos.Para un coordinador en un estado
inactive, el documento est谩 vac铆o:"stepDurations" : { } Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
Se puede consultar
$currentOp.twoPhaseCommitCoordinator.state.
$currentOp.twoPhaseCommitCoordinator.decisionUn documento que contiene la decisi贸n de confirmaci贸n/cancelaci贸n, por ejemplo:
Para una decisi贸n de compromiso:
"decision" : { "decision" : "commit", "commitTimestamp" : Timestamp(1572034669, 3) } Para una decisi贸n de aborto:
"decision" : { "decision" : "abort", "abortStatus" : { "code" : 282, "codeName" : "TransactionCoordinatorReachedAbortDecision", "errmsg" : "Transaction exceeded deadline" } }
Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
$currentOp.twoPhaseCommitCoordinator.deadlineLa fecha y hora en que el compromiso debe finalizar.
Solo est谩 disponible para las m茅tricas de coordinaci贸n de commits.
$currentOp.effectiveUsersUn arreglo que contiene un documento para cada usuario asociado con la operaci贸n. Cada documento de usuario contiene el
usernombre y la autenticaci贸ndb.Nuevo en la versi贸n 4.2.
$currentOp.runByUn arreglo que contiene un documento para cada usuario que est茅 falseando identidad como el
effectiveUser(s)para la operaci贸n. El documento runBy contiene el nombre deusery la autenticaci贸ndb. En general, el usuario que suplanta es el usuario__system; por ejemplo."runBy" : [ { "user" : "__system", "db" : "local" } ] Nuevo en la versi贸n 4.2.
$currentOp.opidEl identificador de la operaci贸n. Puedes pasar este valor a
db.killOp()enmongoshpara finalizar la operaci贸n.Advertencia
Finaliza las operaciones en marcha con extrema precauci贸n. S贸lo use
db.killOp()para finalizar las operaciones iniciadas por los clientes y no terminar operaciones internas de base de datos.
$currentOp.secs_runningLa duraci贸n de la operaci贸n en segundos. MongoDB calcula este valor restando la hora de inicio de la operaci贸n de la hora actual.
Solo est谩 presente si la operaci贸n se est谩 ejecutando; es decir, si
activeest谩true.
$currentOp.microsecs_runningLa duraci贸n de la operaci贸n en microsegundos. MongoDB calcula este valor restando la hora actual de la hora de inicio de la operaci贸n.
Solo se presenta si la operaci贸n est谩 en marcha; es decir, si
activeest谩true.
$currentOp.lsidEl identificador de sesi贸n.
Solo se presenta si la operaci贸n est谩 asociada a una sesi贸n.
Novedad en la versi贸n 3.6.
$currentOp.transactionUn documento que contiene informaci贸n sobre una transacci贸n multi-documento.
Solo se presenta si la operaci贸n es parte de una transacci贸n:
En un set de r茅plicas.
En un cl煤ster fragmentado si
$currentOpse ejecuta sin localOps:true. La informaci贸n de la transacci贸n es por partici贸n.En un cl煤ster particionado si
$currentOpse ejecuta con localOps:true. La informaci贸n de la transacci贸n es una vista compuesta en lugar de por partici贸n.
$currentOp.transaction.parametersUn documento que contiene informaci贸n sobre transacci贸n multi-documento.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.parameters.txnNumberEl n煤mero de transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.parameters.autocommitUna bandera booleana que indica si autocommit est谩 activado para la transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.parameters.readConcernEl nivel de consistencia de lectura para la transacci贸n.
Las transacciones multi-documento admiten el nivel de consistencia de lectura
"snapshot","local"y"majority".Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.globalReadTimestampLa marca de tiempo de la instant谩nea le铆da por las operaciones en la transacci贸n de cl煤ster particionado que utiliza "preocupaci贸n de lectura de instant谩nea". Para las transacciones en cl煤steres particionados, el nivel de consistencia de lectura
"snapshot"de los datos se sincroniza entre las particiones; es decir, otros niveles de consistencia de lectura no pueden garantizar que los datos sean de la misma vista de snapshot en todas las particiones.Solo est谩 presente cuando se ejecuta con localOps: true para transacciones de cl煤ster particionadas.
$currentOp.transaction.readTimestampLa marca de tiempo del snapshot que leen las operaciones en esta transacci贸n
Solo se presenta si la operaci贸n forma parte de una transacci贸n multi-documento. Sin embargo, el campo no se devuelve si:
la transacci贸n est谩 en un cl煤ster y utiliza lecturas de snapshot, y
$currentOpse ejecuta con localOps: true.
En su lugar, se devuelve
$currentOp.transaction.globalReadTimestamp.
$currentOp.transaction.startWallClockTimeLa fecha y hora (con zona horaria) del inicio de la transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.timeOpenMicrosLa duraci贸n, en microsegundos, de la transacci贸n.
El
timeActiveMicrosvalor a帽adido altimeInactiveMicrosdebe ser igual altimeOpenMicros.Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.timeActiveMicrosLa cantidad total de tiempo que la transacci贸n ha estado activa; es decir, cuando la transacci贸n ten铆a operaciones en ejecuci贸n.
El
timeActiveMicrosvalor a帽adido altimeInactiveMicrosdebe ser igual altimeOpenMicros.Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.timeInactiveMicrosLa cantidad total de tiempo que la transacci贸n ha estado inactiva, es decir, cuando la transacci贸n no ten铆a operaciones en ejecuci贸n.
El
timeInactiveMicrosvalor a帽adido altimeActiveMicrosdebe ser igual altimeOpenMicros.Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.transaction.numParticipantsN煤mero de particiones que participan en esta transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n en un cl煤ster particionado y
$currentOpse ejecuta con localOps: true
$currentOp.transaction.participantsUn arreglo de documentos que detallan los shards participantes en esta transacci贸n. Cada documento contiene el nombre, una bandera que indica si la partici贸n act煤a como coordinador de confirmaci贸n, y una bandera que indica si la partici贸n solo est谩 involucrado en operaciones de lectura de la transacci贸n.
{ "name" : "shardA", "coordinator" : false, "readOnly" : false } Solo est谩 presente si la operaci贸n forma parte de una transacci贸n en un cl煤ster particionado y
$currentOpse ejecuta con localOps: true
$currentOp.transaction.numReadOnlyParticipantsN煤mero de particiones solo afectados por operaciones de lectura en esta transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n en un cl煤ster particionado y
$currentOpse ejecuta con localOps: true
$currentOp.transaction.numNonReadOnlyParticipantsN煤mero de particiones afectadas por operaciones distintas a las de lectura en esta transacci贸n.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n en un cl煤ster particionado y
$currentOpse ejecuta con localOps: true
$currentOp.transaction.expiryTimeLa fecha y hora (con zona horaria) en que la transacci贸n expirar谩 y abortar谩.
El
$currentOp.transaction.expiryTimees igual al$currentOp.transaction.startWallClockTime+ eltransactionLifetimeLimitSeconds.Para obtener m谩s informaci贸n, consulte L铆mite de tiempo de ejecuci贸n para las transacciones.
Solo est谩 presente si la operaci贸n forma parte de una transacci贸n multidocumento.
$currentOp.opUna string que identifica el tipo de operaci贸n espec铆fico. Solo se presenta si
$currentOp.typeesop.Los valores posibles son:
"none""update""insert""query""command""getmore""remove""killcursors"
"command"las operaciones incluyen la mayor铆a de los comandos comocreateIndexes,aggregateyfindAndModify."query"las operaciones incluyen operacionesfindy operaciones OP_QUERY.
$currentOp.nsEl namespace al que se dirige la operaci贸n. Un namespace consiste en el nombre de la base de datos y el nombre de la colecci贸n concatenados con un punto (
.); es decir,"<database>.<collection>".
$currentOp.commandUn documento que contiene el objeto de comando completo asociado con esta operaci贸n.
Por ejemplo, la siguiente salida contiene el objeto de comando para una
findoperaci贸n en una colecci贸n llamadaitemsen una base de datos llamadatest:"command" : { "find" : "items", "filter" : { "sku" : 1403978 }, ... "$db" : "test" } El siguiente resultado de ejemplo contiene el objeto de comando para una operaci贸n
getMoregenerado por un comando con ID de cursor19234103609en una colecci贸n llamadaitemsen una base de datos llamadatest:"command" : { "getMore" : NumberLong("19234103609"), "collection" : "items", "batchSize" : 10, ... "$db" : "test" }, Si el documento de comando supera 1 kilobyte, el documento tiene la siguiente forma:
"command" : { "$truncated": <string>, "comment": <string> } El campo
$truncatedcontiene un resumen en forma de string del documento, excluyendo el campocommentdel documento si est谩 presente. Si el resumen sigue superando 1 kilobyte, se trunca a煤n m谩s, indicado por una elipsis (...) al final de la string.El campo
commentest谩 presente si se pas贸 un comentario a la operaci贸n. Se puede adjuntar un comentario a cualquier comando de base de datos.
$currentOp.cursorNuevo en la versi贸n 4.2.
Un documento que contiene la informaci贸n del cursor para las operaciones
idleCursorygetmore; es decir, dondetypeesidleCursoroopesgetmore.Si se informa sobre una operaci贸n de
getmoreantes de quegetmorehaya accedido a su informaci贸n de cursor, el campocursorno estar谩 disponible.$currentOp.cursor.lastAccessDateNuevo en la versi贸n 4.2.
La fecha y hora en que se utiliz贸 el cursor por 煤ltima vez.
Si el cursor est谩 en uso activo (es decir,
opesgetmorey eltypeno esidleCursor), entonceslastAccessDatese informa bien el tiempo en que termin贸 elgetmoreanterior o el tiempo en que se cre贸 el cursor si este es el primergetmore.
$currentOp.cursor.nDocsReturnedNuevo en la versi贸n 4.2.
El n煤mero acumulativo de documentos devueltos por el cursor.
$currentOp.cursor.nBatchesReturnedNuevo en la versi贸n 4.2.
El n煤mero cumulativo de lotes que devuelve el cursor.
$currentOp.cursor.noCursorTimeoutNuevo en la versi贸n 4.2.
La bandera que indica que el cursor no se agotar谩 por inactividad; es decir, si el cursor tiene activada la opci贸n
noTimeout.Si es cierto, el cursor no agota el tiempo cuando est谩 inactivo.
Si es falso, el cursor expirar谩 cuando est茅 inactivo.
$currentOp.cursor.tailableNuevo en la versi贸n 4.2.
La bandera que indica si el cursor es un cursor con seguimiento para una colecci贸n con tama帽o fijo. Los cursores con seguimiento permanecen abiertos despu茅s de que el cliente agota los resultados en el cursor inicial.
$currentOp.cursor.awaitDataNuevo en la versi贸n 4.2.
El indicador que se帽ala si el cursor con seguimiento debe bloquear temporalmente un comando
getMoreen el cursor mientras espera nuevos datos en lugar de devolver ning煤n dato.Para los cursores sin seguimiento, el valor siempre es false.
$currentOp.cursor.originatingCommandNuevo en la versi贸n 4.2.
El campo
originatingCommandcontiene el objeto de comando completo (por ejemplo,findoaggregate) que originalmente cre贸 el cursor.Nota
A partir de la versi贸n 4.2, MongoDB ahora devuelve el campo
originatingCommandcomo un campo anidado en el nuevo campocursor. En versiones anteriores, eloriginatingCommandera un campo de nivel superior para el documento asociado"getmore".
$currentOp.cursor.planSummaryNuevo en la versi贸n 4.2.
Una string que especifica si el cursor utiliza un escaneo de colecci贸n (
COLLSCAN) o un escaneo de 铆ndice (IXSCAN { ... }).El
IXSCANtambi茅n incluye el documento de especificaciones del 铆ndice utilizado.No est谩 disponible cuando se ejecuta con
localOps: trueenmongoso al hacer reporte enidleCursors.
$currentOp.planSummaryUna string que especifica si el cursor utiliza un escaneo de colecci贸n (
COLLSCAN) o un escaneo de 铆ndice (IXSCAN { ... }).No disponible al ejecutarse con
localOps: trueenmongos.
$currentOp.prepareReadConflictsEl n煤mero de veces que la operaci贸n actual tuvo que esperar a que una transacci贸n preparada con un guardado se confirmara o abortara.
Mientras espera, la operaci贸n sigue manteniendo cualquier bloqueo necesario y recursos del motor de almacenamiento.
Nuevo en la versi贸n 4.2.
$currentOp.writeConflictsEl n煤mero de veces que la operaci贸n actual entr贸 en conflicto con otra operaci贸n de guardar en el mismo documento.
Nuevo en la versi贸n 4.2.
$currentOp.numYieldsnumYieldses un contador que informa el n煤mero de veces que la operaci贸n ha suspendido para permitir que otras operaciones se completen.Por lo general, las operaciones ceden cuando necesitan acceder a datos que MongoDB a煤n no ha le铆do completamente en la memoria. Esto permite que otras operaciones que tienen datos en memoria se completen r谩pidamente mientras MongoDB lee los datos de la operaci贸n de ceder recursos.
$currentOp.dataThroughputLastSecondCantidad de datos (en MiB) procesados por la operaci贸n
validateen el 煤ltimo segundo. Solo disponible para unavalidateoperaci贸n que actualmente est谩 escaneando documentos. Por ejemplo:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%", "progress" : { "done" : 7258, "total" : 24000 }, "numYields" : 0, "dataThroughputLastSecond" : 15.576952934265137, "dataThroughputAverage" : 15.375944137573242,
$currentOp.dataThroughputAverageLa cantidad promedio de datos (en MiB) procesados por la operaci贸n
validate. Solo disponible para unavalidateoperaci贸n que actualmente est谩 escaneando documentos. Por ejemplo:"msg" : "Validate: scanning documents Validate: scanning documents: 7258/24000 30%", "progress" : { "done" : 7258, "total" : 24000 }, "numYields" : 0, "dataThroughputLastSecond" : 15.576952934265137, "dataThroughputAverage" : 15.375944137573242,
$currentOp.waitingForLatchEl documento
waitingForLatchsolo est谩 disponible si la operaci贸n est谩 esperando adquirir una primitiva de bloqueo interna (tambi茅n conocida como latch) o si se cumple una condici贸n interna.Por ejemplo,
"waitingForLatch" : { "timestamp" : ISODate("2020-03-19T23:25:58.412Z"), "captureName" : "FutureResolution", "backtrace" : [ ] // Only if backtrace: true }, Campo de salidaDescripci贸nMarca de tiempo
La fecha y hora en que la operaci贸n comenz贸 a esperar.
captureName
El nombre interno de la secci贸n donde se encuentra actualmente bloqueada la operaci贸n.
backtrace
El stack de llamadas, si est谩 disponible. El campo solo se incluye si backtrace: true.
$currentOp.locksEl documento
locksinforma el tipo y el modo de bloqueos que la operaci贸n mantiene actualmente. Los posibles tipos de bloqueo son los siguientes:Tipo de bloqueoDescripci贸nParallelBatchWriterModeRepresenta un bloqueo para el modo de escritura por lotes paralelo.
En versiones anteriores, la informaci贸n de PBWM se informaba como parte de la informaci贸n de bloqueo de
Global.ReplicationStateTransitionRepresenta el bloqueo tomado para las transiciones de estado del nodo del set de r茅plicas.
GlobalRepresenta el bloqueo global.
DatabaseRepresenta el bloqueo de la base de datos.
CollectionRepresenta un bloqueo de colecci贸n.
MutexRepresenta una exclusi贸n mutua.
MetadataRepresenta un bloqueo de metadatos.
oplogRepresenta un bloqueo en el oplog.
Los modos posibles son los siguientes:
Modo de bloqueoDescripci贸nRRepresenta un bloqueo compartido (S).
WRepresenta un bloqueo exclusivo (X).
rRepresenta un bloqueo de intenci贸n compartida (IS).
wRepresenta un bloqueo de intenci贸n exclusiva (IX).
$currentOp.lockStatsPara cada tipo y modo de bloqueo (ver
lockspara descripciones de tipos y modos de bloqueo), devuelve la siguiente informaci贸n:$currentOp.lockStats.acquireCountCantidad de veces que la operaci贸n adquiri贸 el bloqueo en el modo especificado.
$currentOp.lockStats.acquireWaitCountCantidad de veces que la operaci贸n tuvo que esperar para la adquisici贸n de bloqueos
acquireCountporque los bloqueos se manten铆an en una moda conflictiva.acquireWaitCountes menor o igual queacquireCount.
$currentOp.lockStats.timeAcquiringMicrosTiempo acumulado en microsegundos que la operaci贸n tuvo que esperar para adquirir los bloqueos.
timeAcquiringMicrosdividido poracquireWaitCountproporciona un tiempo de espera promedio aproximado para la moda de bloqueo particular.
$currentOp.waitingForLockDevuelve un valor booleano.
waitingForLockestruesi la operaci贸n est谩 esperando un bloqueo yfalsesi la operaci贸n tiene el bloqueo requerido.
$currentOp.msgEl
msgproporciona un mensaje que describe el estado y el progreso de la operaci贸n. En el caso de las operaciones de indexaci贸n o mapReduce, el campo informa el porcentaje de finalizaci贸n.
$currentOp.progressInformes sobre el progreso de las operaciones de mapReduce o indexaci贸n. Los campos
progresscorresponden al porcentaje de finalizaci贸n del campomsg. Elprogressespecifica la siguiente informaci贸n:
$currentOp.killPendingDevuelve
truesi la operaci贸n est谩 actualmente marcada para su finalizaci贸n. Cuando la operaci贸n encuentre su siguiente punto seguro de terminaci贸n, la operaci贸n terminar谩.
$currentOp.waitingForFlowControlUn valor booleano que indica si la operaci贸n tuvo que esperar debido al control de flujo.
Nuevo en la versi贸n 4.2.
$currentOp.flowControlStatsLas estad铆sticas de control de flujo para esta operaci贸n.
Nuevo en la versi贸n 4.2.
$currentOp.flowControlStats.acquireCountEl n煤mero de veces que esta operaci贸n adquiri贸 un ticket.
Nuevo en la versi贸n 4.2.
$currentOp.totalOperationTimeElapsedEl tiempo total transcurrido, en segundos, para la operaci贸n de re-sharding actual. El tiempo se establece en 0 cuando comienza una nueva operaci贸n de rehashing.
Solo est谩 presente si se est谩 realizando una operaci贸n de re-asignaci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.remainingOperationTimeEstimatedEl tiempo estimado restante, en segundos, para la operaci贸n de redistribuci贸n de particiones en curso. El tiempo se establece en -1 cuando se inicia una nueva operaci贸n de redistribuci贸n de particiones.
Solo est谩 presente cuando se est谩 realizando una operaci贸n de reparto.
Nuevo en la versi贸n 5.0.
$currentOp.approxDocumentsToCopyEl n煤mero aproximado de documentos que se copiar谩n desde las particiones donantes a las particiones destinatarias durante la operaci贸n de reasignaci贸n de particiones. Este n煤mero es una estimaci贸n que se establece al inicio de la operaci贸n de resharding y no cambia una vez que se haya establecido. El n煤mero se establece en 0 cuando comienza una nueva operaci贸n de redistribuci贸n de datos. Es posible que
$currentOp.documentsCopiedy$currentOp.bytesCopiedacaben superando a$currentOp.approxDocumentsToCopyy$currentOp.approxBytesToCopy, respectivamente, si la distribuci贸n de datos posterior a la redistribuci贸n de particiones no es perfectamente uniforme.Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.documentsCopiedLa cantidad de documentos copiados desde particiones donantes a particiones receptoras durante la operaci贸n de refragmentaci贸n. El n煤mero se establece en 0 cuando se inicia una nueva operaci贸n de cambio de partici贸n.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.approxBytesToCopyEl n煤mero aproximado de bytes que se copiar谩n de las particiones donantes a las particiones receptoras durante la operaci贸n de reshardeo. Esta cifra es una estimaci贸n que se establece al inicio de la operaci贸n de reconfiguraci贸n y que no cambia despu茅s de haber sido definida. El n煤mero se establece en 0 cuando inicia una nueva operaci贸n de redistribuci贸n de shards. Es posible que
$currentOp.documentsCopiedy$currentOp.bytesCopiedterminen superando$currentOp.approxDocumentsToCopyy$currentOp.approxBytesToCopy, respectivamente, si la distribuci贸n de datos posterior a la redistribuci贸n no es perfectamente uniforme.Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.bytesCopiedEl n煤mero de bytes copiados de particiones donantes a particiones receptoras durante la operaci贸n de refragmentaci贸n. El n煤mero se establece en 0 cuando se inicia una nueva operaci贸n de reestructuraci贸n.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.totalCopyTimeElapsedEl tiempo total transcurrido, en segundos, para las tareas en curso de copia de datos desde las particiones donantes a las particiones receptoras para la operaci贸n de redistribuci贸n actual. El tiempo se establece en 0 cuando comienza una nueva operaci贸n de reasignaci贸n de particiones.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.oplogEntriesFetchedEl n煤mero de entradas obtenidas del oplog para la operaci贸n de reestructuraci贸n actual. El n煤mero se pone a 0 cuando comienza una nueva operaci贸n de redistribuci贸n de datos.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.oplogEntriesAppliedEl n煤mero de entradas aplicadas al Oplog para la operaci贸n actual de re-sharding. El n煤mero se establece en 0 cuando comienza una nueva operaci贸n de cambiaci贸n de particiones.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.totalApplyTimeElapsedEl tiempo total transcurrido, en segundos, para el paso de aplicar de la operaci贸n de redistribuci贸n actual. En el paso de aplicaci贸n, los fragmentos receptores aplican entradas de oplog para modificar sus datos bas谩ndose en nuevas escrituras entrantes de fragmentos donantes. El tiempo se ajusta a 0 cuando se inicia una nueva operaci贸n de redistribuci贸n.
Solo est谩 presente en una partici贸n receptora cuando se est谩 realizando una operaci贸n de redistribuci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.countWritesDuringCriticalSectionEl n煤mero de guardados realizados en la secci贸n cr铆tica para la operaci贸n de resegmentaci贸n actual. La secci贸n cr铆tica impide nuevas escrituras entrantes en la colecci贸n que se est谩 redistribuyendo actualmente. El n煤mero se establece en 0 cuando comienza una nueva operaci贸n de redistribuci贸n de particiones.
Solo est谩 presente en una partici贸n donante cuando se est谩 llevando a cabo una operaci贸n de reconstrucci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.totalCriticalSectionTimeElapsedEl tiempo total transcurrido, en segundos, para la secci贸n cr铆tica de la operaci贸n de resharding actual. La secci贸n cr铆tica impide nuevas escrituras entrantes en la colecci贸n que est谩 siendo redistribuida actualmente. El tiempo se establece en 0 cuando inicia una nueva operaci贸n de redistribuci贸n de datos.
Solo est谩 presente en una partici贸n donante cuando se est谩 llevando a cabo una operaci贸n de reconstrucci贸n de particiones.
Nuevo en la versi贸n 5.0.
$currentOp.donorStateEl estado actual de una partici贸n donante para la operaci贸n de nueva partici贸n. El estado se establece en
unusedcuando se inicia una nueva operaci贸n de re-shard.Solo est谩 presente en una partici贸n donante cuando se est谩 llevando a cabo una operaci贸n de reconstrucci贸n de particiones.
EstadoDescripci贸nunusedLa operaci贸n de recrisprado est谩 a punto de comenzar o recuperarse de un traspaso primario.
preparing-to-donateLa partici贸n donante se est谩 preparando para donar datos a las particiones receptoras.
donating-initial-dataEl fragmento donante est谩 transfiriendo datos a los fragmentos receptores.
donating-oplog-entriesLa partici贸n donante est谩 donando entradas de oplog a las particiones receptoras.
preparing-to-block-writesLa partici贸n donante est谩 a punto de impedir nuevas operaciones de guardado en la colecci贸n que se est谩 redistribuyendo.
errorSe ha producido un error durante la operaci贸n de redistribuci贸n de fragmentos.
blocking-writesLa partici贸n donante est谩 impidiendo nuevas operaciones de guardado entrantes y ha notificado a todas las particiones receptoras que se han impedido nuevos guardados entrantes.
doneLa partici贸n donante ha descartado la antigua colecci贸n particionada y la operaci贸n de redistribuci贸n ha finalizado.
Nuevo en la versi贸n 5.0.
$currentOp.recipientStateEl estado actual de una partici贸n receptora para una operaci贸n de redistribuci贸n de particiones. El estado se establece en
unusedcuando se inicia una nueva operaci贸n de re-shard.Solo est谩 presente en una partici贸n donante cuando se est谩 llevando a cabo una operaci贸n de reconstrucci贸n de particiones.
EstadoDescripci贸nunusedLa operaci贸n de recrisprado est谩 a punto de comenzar o recuperarse de un traspaso primario.
awaiting-fetch-timestampLa partici贸n receptora est谩 esperando que las particiones donantes est茅n preparadas para donar sus datos.
creating-collectionLa partici贸n receptora est谩 creando la nueva colecci贸n particionada.
cloningLa partici贸n receptora est谩 recibiendo datos de las particiones donantes.
applyingLa partici贸n receptora est谩 aplicando entradas del oplog para modificar su copia de los datos en funci贸n de las nuevas operaciones de guardado entrantes de las particiones donantes.
errorSe produjo un error durante la operaci贸n de cambio de partici贸n.
strict-consistencyLa partici贸n receptora tiene todos los cambios de datos almacenados en una colecci贸n temporal.
doneLa operaci贸n de redistribuci贸n est谩 completa.
Nuevo en la versi贸n 5.0.
$currentOp.coordinatorStateEl estado del coordinador de resharding para la operaci贸n de resharding actual. El coordinador de resharding es una operaci贸n que se ejecuta en el primario del servidor de configuraci贸n. El estado se establece en
unusedcuando una nueva operaci贸n de resharding comienza.Solo est谩 presente en el servidor de configuraci贸n coordinador.
EstadoDescripci贸nunusedLa operaci贸n de recrisprado est谩 a punto de comenzar o recuperarse de un traspaso primario.
initializingEl coordinador de redistribuci贸n ha insertado el documento del coordinador en
config.reshardingOperationsy ha agregado elreshardingFieldsa la entradaconfig.collectionspara la colecci贸n original.preparing-to-donateEl coordinador de redistribuci贸n
ha creado una entrada
config.collectionspara la colecci贸n de redistribuci贸n temporal.ha insertado entradas en
config.chunkspara los rangos basados en la nueva clave de partici贸n.ha insertado entradas en
config.tagspara cualquier zona asociada con la nueva clave de partici贸n.
El coordinador informa a las particiones participantes que comiencen la operaci贸n de redistribuci贸n. A continuaci贸n, el coordinador espera hasta que todas las particiones donantes hayan elegido un
minFetchTimestampy est茅n listas para donar.cloningEl coordinador de redistribuci贸n informa a las particiones donantes que deben donar datos a las particiones receptoras. El coordinador espera a que todas las particiones receptoras terminen de clonar los datos de la partici贸n donante.
applyingEl coordinador de redistribuci贸n informa a las particiones receptoras que modifiquen sus copias de datos bas谩ndose en nuevos guardados entrantes de particiones donantes. El coordinador espera a que todas las particiones receptoras terminen de aplicar las entradas de oplog.
blocking-writesEl coordinador de redistribuci贸n informa a las particiones donantes que eviten que se vuelvan a redistribuir las nuevas operaciones de guardado entrantes a la colecci贸n. A continuaci贸n, el coordinador espera a que todas las particiones receptoras hayan recibido todos los cambios de datos.
abortingSe produjo un error irrecuperable durante la operaci贸n de redistribuci贸n o se ejecut贸 el comando
abortReshardCollection(o el m茅todosh.abortReshardCollection()).committingEl coordinador de redistribuci贸n remueve la entrada
config.collectionspara la colecci贸n de redistribuci贸n temporal. A continuaci贸n, el coordinador agrega elrecipientFieldsa la entrada de la colecci贸n de origen.Nuevo en la versi贸n 5.0.
$currentOp.opStatusEl estado actual de una operaci贸n de resharding.
Solo presente si se est谩 realizando una operaci贸n de reconfiguraci贸n. Una vez que la operaci贸n se haya completado, se eliminar谩 la operaci贸n de la salida
currentOp.EstadoDescripci贸nactively runningLa operaci贸n de redistribuci贸n de particiones se est谩 ejecutando activamente.
successLa operaci贸n de resharding ha tenido 茅xito.
failureLa operaci贸n de redistribuci贸n de particiones ha fallado.
canceledLa operaci贸n de refactorizaci贸n fue cancelada.
Nuevo en la versi贸n 5.0.