Definición
defaultMaxTimeMSNuevo en la versión 8.0.
Disponible para ambos
mongody.mongosEspecifica un límite de tiempo predeterminado en milisegundos para que se completen las operaciones de lectura individuales. Si una consulta especifica la opción, ese valor anula
maxTimeMS()eldefaultMaxTimeMSvalor.defaultMaxTimeMSse aplica a las siguientes operaciones de lectura:
Control de acceso
Para modificar los parámetros del clúster, debe autenticarse como un usuario que tenga uno de los siguientes roles:
Sintaxis
Para configurar defaultMaxTimeMS para su implementación, ejecute el siguiente comando en la base de datos admin:
db.adminCommand( { setClusterParameter: { defaultMaxTimeMS: { readOperations: <value> } } } )
Para ver el valor actual de defaultMaxTimeMS, ejecute el siguiente comando en la base de datos admin:
db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )
Comportamiento
De forma predeterminada, defaultMaxTimeMS.readOperations es 0, lo que significa que no hay un tiempo de espera de consulta predeterminado. Si no hay un tiempo de espera de consulta predeterminado, la consulta se ejecuta hasta que devuelva un resultado o falle.
Si una consulta especifica una opción, ese valor anula maxTimeMS() el defaultMaxTimeMS valor.
Consultas de larga duración
Si su implementación necesita ejecutar consultas largas, como Para las consultas del nodo de análisis, debe especificar un tiempo de espera para dichas consultas a nivel de operación maxTimeMS() mediante. Si no especifica un tiempo de espera de operación, dichas consultas utilizarán el defaultMaxTimeMS tiempo de espera y no se ejecutarán durante el tiempo requerido.
Ejemplo
El siguiente comando establece el tiempo de espera de consulta predeterminado en 5000 milisegundos:
db.runCommand( { setClusterParameter: { defaultMaxTimeMS: { readOperations: 5000 } } } )
Para comprobar el valor de defaultMaxTimeMS, ejecute el siguiente comando:
db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )
{ "clusterParameters" : [ { "_id" : "defaultMaxTimeMS", "clusterParameterTime" : Timestamp(1711564868, 17), "readOperations" : Long(5000) } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1712161244, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : Long(0) } }, "operationTime" : Timestamp(1712161244, 1) }
Resultados
Después de configurar defaultMaxTimeMS para su implementación, considere estas consultas:
db.test.find( { name: "Carol" } ) db.test.find( { name: "Carol" } ).maxTimeMS( 8000 )
La primera consulta utiliza el valor defaultMaxTimeMS de 5,000 milisegundos.
La segunda consulta especifica, que maxTimeMS() anula defaultMaxTimeMS y hace que la consulta expire después 8 de,000 milisegundos.