Já ouvi falar de dois tipos de arquiteturas de banco de dados.
mestre-mestre
senhor de escravos
O master-master não é mais adequado para a web de hoje porque é como o Git, cada unidade tem todo o conjunto de dados e se um cair, não importa.
Mestre-escravo me lembra SVN (que eu não gosto) onde você tem uma unidade central que controla as coisas.
Questões:
Quais são os prós e os contras de cada um?
Se você deseja ter um banco de dados local em seu celular, como o iPhone, qual é o mais adequado?
A escolha de um desses é um fator crítico a ser considerado cuidadosamente?
Respostas:
Estamos trocando disponibilidade, consistência e complexidade. Para abordar a última pergunta primeiro: isso importa? Sim, muito! As escolhas sobre como seus dados devem ser gerenciados são absolutamente fundamentais, e não há "melhores práticas" evitando as decisões. Você precisa entender seus requisitos específicos.
Existe uma tensão fundamental:
Uma cópia: a consistência é fácil, mas se acontecer de cair, todo mundo estará fora da água e, se as pessoas estiverem remotas, poderão pagar terríveis custos de comunicação. Traga dispositivos portáteis, que podem precisar operar desconectados, para a imagem e uma cópia não vai cortá-lo.
Master Slave: a consistência não é muito difícil porque cada dado possui exatamente um master proprietário. Mas então o que você faz se não consegue ver aquele mestre, algum tipo de trabalho adiado é necessário.
Mestre-Mestre: bem, se você pode fazer funcionar, parece que oferece tudo, nenhum ponto único de falha, todos podem trabalhar o tempo todo. O problema com isso é que é muito difícil preservar a consistência absoluta. Veja o artigo da wikipedia para mais informações.
A Wikipedia parece ter um bom resumo das vantagens e desvantagens
fonte
Enquanto pesquisava as várias arquiteturas de banco de dados também. Compilei um bom bocado de informação que pode ser relevante para outra pessoa pesquisar no futuro. Me deparei com
Decidi usar o cluster MySQL para meu caso de uso. No entanto, consulte abaixo os vários prós e contras que compilei
1. Replicação mestre-escravo
Prós
Contras
2. Replicação Mestre-Mestre
Prós
Contras
3. Cluster MySQL
O novo garoto na cidade com base no design de cluster MySQL. O cluster MySQL foi desenvolvido com alta disponibilidade e escalabilidade em mente e é a solução ideal para ser usado em ambientes que não requerem tempo de inatividade, alta disponibilidade e escalabilidade horizontal.
Consulte MySQL Cluster 101 para obter mais informações
Prós
Contras
Você pode visitar o meu blog para análise completa, incluindo diagramas de arquitetura que dão mais detalhes sobre as 3 arquiteturas mencionadas.
fonte