[firebase-br] Replicação

Carlos H. Cantu listas em warmboot.com.br
Segunda Julho 14 08:42:53 -03 2025


A replicação nativa foi desenvolvida para ser unidirecional, mas eles 
implementaram de uma forma que no futuro ela possa se tornar bi-direcional.

No entanto, conforme o Dmitry Yemanov mostrou em sua palestra no 20º FDD, há
muitos problemas e situações que precisam ser resolvidas para que uma replicação
multi-master funcione adequadamente, e que hoje ainda estão sem respostas:

Abaixo reproduzi o conteúdo do slide dele, que fala sobre isso:

### Replicação bidirecional

* Tecnicamente possível usando múltiplas réplicas de leitura / gravação.
* Configure o banco de dados como primário **e** réplica no `replication.conf`, 
  com `cascade_replication = false`.

Alguns problemas:

* Como evitar conflitos de chave primária (PK)?
  * Use GUIDs, chaves compostas (host + local) ou chaves baseadas em faixas – 
    todas são estratégias possíveis.

* Como lidar com conflitos lógicos de chave única (UK)?
  * A estratégia “primeiro a gravar vence” é simplista demais; é preciso usar 
    carimbos de data/hora reais ou prioridades por nó.
  
* E as sequências (generators)?

* Usar quóruns para evitar SBS e recorra novamente a ferramentas de fail-over.


Enfim, hoje a única forma de ter replicação multi-master seria recorrer a
replicadores, e adequar os metadados da base para permitir isso.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 5 - www.firebase.com.br/guiafb5.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

CSvl> Boa noite
CSvl> Tudo bem?

CSvl> A replicação do Firebird 5.0 pode ser configurada em dois sentidos, isto é,
CSvl> o servidor A enviar alterações do banco para o servidor B e o B também pode
CSvl> enviar para o A.
CSvl> Se for possível, saberiam me dizer quais as implicações desse cenário?
CSvl> Teria que usar identificadores tipo GUID?

CSvl> Obrigado!




Mais detalhes sobre a lista de discussão lista