Estamos negociando disponibilidad, consistencia y complejidad. Para abordar la última pregunta primero: ¿Importa esto? ¡Sí mucho! Las opciones relativas a cómo se administrarán sus datos son absolutamente fundamentales, y no hay "Mejores prácticas" que eludan las decisiones. Debe comprender sus requisitos particulares.
Hay una tensión fundamental:
Una copia: la consistencia es fácil, pero si resulta que todo el mundo está fuera del agua, y si la gente está lejos, entonces pueden pagar costos de comunicación horribles. Traiga dispositivos portátiles, que pueden necesitar operar desconectados, en la imagen y una copia no será suficiente.
Maestro esclavo: la coherencia no es demasiado difícil porque cada pieza de datos tiene exactamente un maestro propietario. Pero entonces, ¿qué haces si no puedes ver a ese maestro? Se necesita algún tipo de trabajo pospuesto.
Maestro-Maestro: bueno, si puedes hacer que funcione, parece que ofrece todo, ningún punto único de falla, todos pueden trabajar todo el tiempo. El problema con esto es que es muy difícil mantener una consistencia absoluta. Ver el artículo de wikipedia para obtener más información.
Wikipedia parece tener un buen resumen de las ventajas y desventajas
Ventajas
Si un maestro falla, otros maestros continuarán actualizando la base de datos.
Los maestros pueden estar ubicados en varios sitios físicos, es decir, distribuidos a través de la red.
Desventajas
La mayoría de los sistemas de replicación multimaestro son sólo vagamente coherentes, es decir, perezosos y asincrónicos, violando las propiedades de ACID.
Los sistemas de replicación ansiosos son complejos e introducen cierta latencia de comunicación.
Problemas como la resolución de conflictos pueden volverse intratables a medida que aumenta el número de nodos involucrados y disminuye la latencia requerida.