Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

151
Vistas
Galera Mariadb Multi-Master Replicación

Estoy tratando de configurar un grupo de 3 servidores en 3 ubicaciones diferentes; Dallas-EE. UU., Londres-Reino Unido, Mumbai-India. En cada ubicación, configuré un servidor web y un servidor de base de datos. En el servidor db, configuré el clúster Multi-Master de Galera Mariadb para replicar db entre los tres servidores. Cada uno de mis servidores web está conectado con IP local a su servidor de base de datos regional. Espero que mi servidor web de Dallas obtenga registros de base de datos del servidor de base de datos de Dallas; Servidor web de Londres desde el servidor de base de datos de Londres y servidor web de Mumbai desde el servidor de base de datos de Mumbai.

Todo funciona bien, pero descubrí que la consulta mysql lleva mucho tiempo por encima de 100 mientras se recupera el registro. He probado Mariadb con una sola instancia y está obteniendo datos en 5 segundos.

¿Qué estoy haciendo mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Es posible configurar Galera para que sea un solo maestro. No parece que hayas hecho eso, pero sugiere una doble verificación.

Dado que se puede escribir en todos los nodos, aquí hay una vista simplificada de lo que sucede en cada transacción.

  1. Haga todo el trabajo para almacenar/actualizar los datos en el Maestro al que está conectado. (Presumiblemente, es la máquina local).
  2. En el momento de COMMIT, realice un solo viaje de ida y vuelta entre los nodos (probablemente ~200 ms) para darles la oportunidad de decir "¡espere! Eso podría causar un conflicto".
  3. Por lo general, el paso 2 volverá con "está bien". En este punto, COMMIT devuelve el éxito al cliente.

(Nota: si no está utilizando BEGIN...COMMIT , sino auto_commit=ON , entonces hay un COMMIT implícito al final de cada instrucción DML).

Para una lectura local, la acción predeterminada debería regresar "inmediatamente".

Pero, tal vez le preocupe el problema de la "lectura crítica". (cf wsrep_sync_wait ) En este caso, desea asegurarse de que se haya propagado una escritura a su servidor. Es probable que esto provoque un retraso de 200 ms en la lectura porque espera a que se capture el "gcache".

Si puede suponer que solo leen desde el mismo servidor en el que escriben, considere establecer wsrep_sync_wait=0 . Si alguien escribe y luego lee entre centros de datos, podría encontrar el problema de "lectura crítica". (Aquí es donde escribe algo, pero es posible que no lo vea en la próxima lectura).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda