A replicação do CouchDB recomendou topologias

1

Estou trabalhando em uma proposta de um sistema com sete servidores CouchDB (A, B, C, D, E, F, G) em diferentes países. A ideia é configurar a replicação multimestre para que todos os dados possam ser mantidos em sincronia.

Eu poderia configurar a replicação bidirecional de cada servidor para outro servidor

massuspeitoqueissopoderesultaremmuitasconexõesquepoderiamreduzirodesempenhoaumentandoalarguradebandausada(éesteocaso?).

Então,minhapróximaideiaéconfigurá-loscomoumanel:

Agora, temos muito menos conexões e ainda temos redundância, já que cada nó está conectado a dois servidores. O problema para minha situação particular é que não queremos ter todos os bancos de dados em todos os nós. Gostaríamos de ter dois nós (A e B) com todos os bancos de dados e o restante com diferentes subconjuntos dele. Por essa razão, estou pensando em fazer isso:

Comonãosouespecialistaemtopologiaderede,gostariadeperguntar:

  • Nãoérealmenteumaboaideiareplicartodososnósemrelaçãoatodososnós?
  • Estaéumatopologiarazoável(aúltimaexibida)?
  • Ondeeupoderiaaprendermaissobreisso?

Apenasparacompletar,osnúmerosforamgeradoscomosseguintescomandosdoMathematica:

Graph[Rule@@@Permutations[CharacterRange["A", "G"], {2}],  VertexLabels -> "Name"]
Graph[Rule @@@ (Partition[CharacterRange["A", "G"], 2, 1, {-1}] /. {a_, b_} :> Sequence[{a, b}, {b, a}]), VertexLabels -> "Name"]
Graph[Flatten[Outer[{#1 -> #2, #2 -> #1} &, {"A", "B"}, CharacterRange["C", "G"]]~Join~{"A" -> "B", "B" -> "A"}], VertexLabels -> "Name"]
    
por gdelfino 12.10.2016 / 00:13

1 resposta

1

Não tenho experiência especial com sete nós (mas com três nós), mas não deve haver nenhum problema com a replicação de cada nó entre si. Eu faço isso também com os três nós que eu uso em nossos projetos. O CouchDB é construído para suportar uma configuração multi-mestre de nós. Mas você também está certo em pensar na largura de banda usada ao replicar para muitos nós com muitas conexões. Eu sugiro que você monitore isso.

O CouchDB está seguindo o teorema CAP com AP: disponibilidade e tolerância à partição. Isso significa que os dados são eventualmente consistentes (consulte o link ). Portanto, você também deve pensar em particionar seus dados, o que resultará em uma configuração diferente que você mostrou acima.

Ou você pode dar uma olhada no CouchDB 2.0, lançado em 20 de setembro. Agora o CouchDB suporta clustering. Tenho certeza de que isso poderia resolver o seu problema. A configuração proposta é executar um cluster com pelo menos (naturalmente) três nós (n) contendo 8 fragmentos (q) em cada nó ( link ). Usar a replicação é ainda possível e acho que poderia ser uma maneira de reduzir sua configuração (embora eu não saiba por que você está pensando em uma configuração de sete nós).

link

    
por 12.10.2016 / 22:24