es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambio de flujos de MongoDB: ¿tiene la configuración FullDocument = UpdateLookup implicaciones de rendimiento en la base de datos fuente?

Estoy intentando profundizar en la implementación de los cambios de secuencia de Mongo para entender si la configuración de la búsqueda completa del documento para operaciones de actualización afectará el rendimiento de la base de datos en un entorno de producción.

Supongo que la búsqueda completa del documento es simplemente una consulta simple por ID. Por lo tanto, mi principal preocupación es cómo afectará al origen de la base de datos cuando haya muchas escrituras ocurriendo en ella. Tal vez haya una configuración para consultar por lotes de IDs, eso podría ayudar.

Si el cursor del cambio de secuencia consultará mi colección cada vez que ve una actualización en el oplog, simplemente significa que cada escritura aplicativa en la colección es efectivamente una escritura y una lectura. No quiero afectar el rendimiento de una base de datos operativa y, por lo tanto, afectar el rendimiento de la aplicación.

Por mi comprensión, los cambios de secuencia que leen desde el oplog no afectarán tanto a la base de datos, pero si mi suposición anterior es correcta, esta ventaja principal desaparecerá.

Configuración de fondo:
– Tengo la intención de utilizar esto aprovechando el conector nativo de origen Mongo de Kafka-Connect, que implementa cambios de secuencia bajo el capó (el conductor java-sync).
– Mi colección de origen está en MongoDB 4.4.
– La colección de origen tiene muchas escrituras en ella.

Aprecio cualquier pieza de información sobre este asunto.

Gracias a todos.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Impacto de la configuración de la búsqueda completa de documentos en el rendimiento de MongoDB Change Streams

    Como experto en TI especializado en MongoDB, Apache Kafka, Apache Kafka connect, captura de datos de cambio y cambio de flujo, puedo compartir algunos conocimientos sobre la configuración de la búsqueda completa de documentos en MongoDB Change Streams y su impacto en el rendimiento de la base de datos.

    En primer lugar, es esencial comprender que la búsqueda completa de documentos no es una simple consulta por ID. En su lugar, recupera el documento completo que está siendo actualizado o eliminado por el cursor de cambio de flujo. Esto significa que cada operación de escritura en la colección desencadenará una operación de lectura para recuperar el documento completo.

    En un entorno de producción donde se están produciendo muchas escrituras en la colección, esto puede afectar el rendimiento de la base de datos al agregar una carga adicional al sistema. Sin embargo, MongoDB ofrece algunas opciones de configuración para manejar este impacto.

    Una forma de manejar este impacto es usar el parámetro maxAwaitTime en el cursor watch. Esto permite que el cursor de cambio de flujo espere múltiples cambios antes de desencadenar una operación de lectura, reduciendo el número de operaciones de lectura desencadenadas por operaciones de escritura.

    Otra forma de manejar este impacto es limitar el alcance de la búsqueda completa de documentos. Por ejemplo, si solo necesita campos específicos del documento, puede recuperar solo esos campos en lugar de todo el documento.

    En cuanto al impacto de la lectura del cambio de flujo desde el oplog, no es significativo, ya que el oplog está diseñado para manejar un alto volumen de escritura. Los cambios de flujo solo leen desde el oplog y no afectan los datos reales en la colección.

    En resumen, la configuración de la búsqueda completa de documentos en MongoDB Change Streams puede afectar el rendimiento de la base de datos, especialmente en un entorno de producción con alto volumen de escritura. Sin embargo, MongoDB ofrece opciones de configuración para manejar este impacto y limitar el alcance de la búsqueda completa de documentos también puede ayudar. Como experto en TI, recomiendo probar la configuración detalladamente antes de implementarla en un entorno de producción.

Comments are closed.