sql >> Base de Datos >  >> RDS >> Mysql

Rails Octopus Gem - Comportamiento de la conexión de replicación maestro-esclavo cuando el esclavo está inactivo

Como leí en esta publicación de blog un esclavo apagado o que no responde puede causar fallas en la aplicación porque el comportamiento predeterminado de Octopus es escribir todos los datos en el maestro y leer todos los datos de los esclavos (ya que los datos escritos en el maestro se replican en todos los esclavos conectados). Como se indica en la wiki de Octopus, sección "Múltiples esclavos" la lectura en un entorno de varios esclavos se realiza por turnos, por lo que siempre recupera datos de un esclavo de forma predeterminada.

También tomado del blog mencionado anteriormente:como mecanismo alternativo, debe leer los datos del Maestro directamente (usando .using(:master) ) si ninguno de los nodos esclavos está disponible o los datos aún no se han replicado completamente en los esclavos. También puede ser una opción almacenar en caché los cambios/resultados de la aplicación para evitar lecturas repetidas de los nodos de la base de datos.