He oído hablar de dos tipos de arquitecturas de bases de datos.
maestro maestro
maestro-esclavo
¿No es el maestro-maestro más adecuado para la web de hoy porque es como Git, cada unidad tiene el conjunto completo de datos y si uno falla, no importa del todo?
Maestro-esclavo me recuerda a SVN (que no me gusta) donde tienes una unidad central que se encarga de todo.
Preguntas:
¿Cuáles son los pros y los contras de cada uno?
Si desea tener una base de datos local en su teléfono móvil como iPhone, ¿cuál es más apropiada?
¿Es la elección de uno de estos un factor crítico a considerar a fondo?
Respuestas:
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
fuente
Mientras investiga las diversas arquitecturas de bases de datos también. He recopilado una buena cantidad de información que podría ser relevante para otra persona que investigue en el futuro. Me encontré con
He decidido conformarme con usar MySQL Cluster para mi caso de uso. Sin embargo, consulte a continuación los diversos pros y contras que he compilado
1. Replicación maestro-esclavo
Pros
Contras
2. Replicación maestro-maestro
Pros
Contras
3. Clúster MySQL
El nuevo chico de la ciudad basado en el diseño de clústeres MySQL. El clúster MySQL se desarrolló teniendo en cuenta la alta disponibilidad y escalabilidad y es la solución ideal para entornos que no requieren tiempo de inactividad, alta disponibilidad y escalabilidad horizontal.
Consulte MySQL Cluster 101 para obtener más información.
Pros
Contras
Puede visitar el desglose completo de mi blog, incluidos los diagramas de arquitectura que detallan más sobre las 3 arquitecturas mencionadas.
fuente