Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

defaultMaxTimeMS

defaultMaxTimeMS

Nuevo en la versión 8.0.

Disponible para ambos mongod y mongos.

Especifica un límite de tiempo por defecto en milisegundos para que se completen las operaciones individuales de lectura. Si una query especifica una opción maxTimeMS(), ese valor reemplazará el valor defaultMaxTimeMS.

defaultMaxTimeMS se aplica a las siguientes operaciones de lectura:

Para modificar los parámetros del clúster, se debe autenticar como un usuario que tenga uno de los siguientes roles:

Para configurar defaultMaxTimeMS para su implementación, ejecute el siguiente comando en la base de datos de admin:

db.adminCommand(
{
setClusterParameter: {
defaultMaxTimeMS: { readOperations: <value> }
}
}
)

Para ver el valor actual de defaultMaxTimeMS, ejecuta el siguiente comando en la base de datos admin:

db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )

Por defecto, defaultMaxTimeMS.readOperations es 0, lo que significa que no se establece un tiempo de espera predeterminado para la query. Si no hay un tiempo de espera de query predeterminado, la query se ejecuta hasta que se devuelva un resultado o se produzca un error.

Si una query especifica una opción maxTimeMS(), ese valor sobrescribe el valor defaultMaxTimeMS.

Si tu implementación necesita ejecutar queries largas, como consultas nodo de análisis, debes especificar un tiempo de espera para esas consultas a nivel de operación utilizando maxTimeMS(). Si no especificas un tiempo de espera de operación, esas consultas usarán el tiempo de espera defaultMaxTimeMS y no se ejecutarán durante el tiempo requerido.

El siguiente comando establece el tiempo de espera por defecto de la query 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)
}

Después de configurar defaultMaxTimeMS para tu implementación, considera estas consultas:

db.test.find( { name: "Carol" } )
db.test.find( { name: "Carol" } ).maxTimeMS( 8000 )

La primera query utiliza el valor defaultMaxTimeMS de 5,000 milisegundos.

La segunda consulta especifica maxTimeMS(), que sobrescribe el defaultMaxTimeMS y provoca que la consulta agote el tiempo de espera después de 8,000 milisegundos.

Volver

changeStreamOptions

En esta página