Creo que se puede depender Percona XtraDB Cluster Feature 2: Multi-Master replication
que la replicación normal MySQL
Prometen los ss:
por Multi-Ma ster me refiero a la capacidad de escribir en cualquier nodo de tu clúster y no te preocupes porque eventualmente saldrás de la situación de sincronización, como suele suceder con la replicación regular de MySQL si escribes imprudentemente al servidor incorrecto.
Con Cluster puede escribir en cualquier nodo, y el Cluster garantiza la coherencia de las escrituras. Es decir, la escritura está comprometida en todos los nodos o no está comprometida en absoluto.
Las dos consecuencias importantes de la arquitectura Muti-master.
Primero: podemos tener varios aplicadores trabajando en paralelo. Esto nos da una verdadera replicación paralela. El esclavo puede tener muchos subprocesos paralelos, y puede sintonizarlo mediante la variable wsrep_slave_threads
Segundo: Puede haber un pequeño período de tiempo cuando el esclavo no está sincronizado desde el maestro. Esto sucede porque el maestro puede aplicar el evento más rápido que un esclavo. Y si lees del esclavo, puedes leer datos, que aún no han cambiado. Puedes ver eso desde el diagrama. Sin embargo, puede cambiar este comportamiento utilizando la variable wsrep_causal_reads = ON. En este caso, la lectura del esclavo esperará hasta que se aplique el evento (esto aumentará el tiempo de respuesta de la lectura. Esta brecha entre el esclavo y el maestro es la razón por la cual esta replicación se llama "virtually synchronous replication
", no real "synchronous replication
"
El comportamiento descrito de COMMIT también tiene la segunda implicación grave Si ejecuta transacciones de escritura en dos nodos diferentes, el clúster usará un modelo de bloqueo optimista. Eso significa que una transacción no controlará posibles conflictos de bloqueo durante consultas individuales, sino más bien en la etapa de COMPROMISO. Y puede obtener una respuesta de ERROR en COMMIT.Estoy destacando esto, ya que esta es una de las incompatibilidades con InnoDB regular, que puede experimentar. En InnoDB generalmente los errores DEADLOCK y LOCK TIMEOUT suceden en respuesta a una consulta particular, pero no en COMMIT. Bueno, si sigues una buena práctica, sigues revisando el código de errores después de la consulta "COMPROMISO", pero vi muchas aplicaciones que no lo hacen.
So, if you plan to use Multi-Master capabilities of XtraDB Cluster, and run write transactions on several nodes, you may need to make sure you handle response on “COMMIT” query.
You can find it here along with pictorial expln
Según tengo entendido, las claves auto_increment solo son típicamente relevantes en la creación de nuevas filas/registros. Como en mi caso, solo un maestro puede ** crear ** registros (el otro maestro solo puede actualizar los registros existentes), de su respuesta deduzco que he evitado todo el problema. ¿Es eso correcto? – Jake
Absolutamente correcto. Esto también implica que puedes dividir las lecturas con relativa impunidad. – RolandoMySQLDBA
Genial, ¡entonces esa es la respuesta a mi pregunta! – Jake