¿Que és el replica lag?
Para entender que es el réplica lag tenemos que poner primero un poco de contexto. El réplica lag se da en un tipo especial de instancias de bases de datos que llamamos réplicas de lectura. Estas se crean a partir de una instancia de base de datos de origen que hace de base de datos principal. Las actualizaciones (inserción de nuevos datos) que se realizan a la base de datos principal se copian de forma asíncrona en la réplica de lectura. Tener este tipo de réplicas permite reducir la carga de la instancia de base de datos principal enrutando las consultas que son tipo lectura hacia dichas instancias. La replicación entre dichas instancias se da a través de un canal de comunicación seguro y de forma asíncrona.
¿Entonces que es el réplica lag y cómo afecta a nuestras instancias? El réplica lag es el retraso que se da en la replicación asíncrona entre la base de datos principal y la de lectura. Para identificar el estado de la replicación habrá que observar los subprocesos binlog dump, io_thread y sql_thread. Comandos como show master status, show slave status ejecutados en las respectivas instancias y la monitorización continua nos ayudan a identificar si existe algún retraso que pueda afectar al rendimiento causando inconsistencia en los datos.
No podemos eliminar el réplica lag pero si debemos reducirlo el máximo posible. Determinar si hay diferencias de configuración entre la instancia principal y la de réplica, demasiada carga de trabajo de escritura en la instancia principal, transacciones demasiado largas, configuración de parámetros incorrecta, revisar los changelogs de versiones … son las que llevamos a cabo habitualmente en Geko Cloud para dictaminar si se debe realizar algún tipo de actualización u otro tipo de actuación.
Ejemplo de réplica lag
Esto es lo que le ocurrió recientemente a un cliente que después de actualizar la versión de la base de datos principal y sus respectivas réplicas de mariadb a la v.10.4.24 empezó a notar un deterioro en el réplica lag tal como podemos ver en la gráfica.
Nuestro equipo estuvo investigando el problema y después de revisar los Changelogs de la versión 10.5.0 a la 10.5.17, entre otras cosas, pudimos advertir que esta última versión solucionaba los problemas de réplica lag ocasionados por la versión anterior. Además, averiguamos que lo mejor en este caso era actualizar las réplicas a la versión 10.15.17 y dejar la base de datos principal en la versión 10.4.24. Para ello creamos dos réplicas de lectura más, las cuales actualizamos a dicha versión de tal manera que pudiéramos comprobar que efectivamente el réplica lag volvía a reducirse tal como se puede observar en el gráfico.
Dichos gráficos se tomaron de las dos réplicas de lectura con las versiones 10.4.24 y 10.5.17 de mariadb en la misma franja horaria para verificar que realmente el réplica lag había disminuido.
Esperamos que esto te pueda hacer una idea de en qué puede ayudarte el equipo Geko Cloud si necesitas desplegar tus servicios en un entorno Cloud. Solo ponte en contacto con nosotros y estaremos encantados de ayudarte.