Skip to content
This repository has been archived by the owner on Jun 1, 2021. It is now read-only.

Disaster recovery with uni-directional replication #163

Closed
krasserm opened this issue Dec 5, 2015 · 4 comments
Closed

Disaster recovery with uni-directional replication #163

krasserm opened this issue Dec 5, 2015 · 4 comments

Comments

@krasserm
Copy link
Contributor

krasserm commented Dec 5, 2015

Since implementation of #116, uni-directional (optionally cyclic) replication networks are supported. The current implementation of disaster recovery, however, assumes a bi-directional replication between connected endpoints (see ReplicationEndpoint.recover() API docs). For example, given two event logs, A and B at different endpoints, disaster recovery of A requires

  • a replication connection from B to A to support metadata re-synchronization at B (recover metadata phase)
  • a replication connection from A to B to replicate events from B to A (recover events phase).

When having a replication connection only from A to B, the current disaster recovery implementation (introduced with #157) would not make progress, as A would never receive a ReplicationRead message from B. Disaster recovery at A should therefore skip the recover metadata phase if there's only a replication connection from A to B but no replication connection from B to A.

@krasserm
Copy link
Contributor Author

krasserm commented Dec 5, 2015

@volkerstampa I don't see this as high priority at the moment as most applications anyway have bi-directional replication links between endpoints.

@volkerstampa
Copy link
Contributor

In addition to the fact that A needs to know that the replication link from B to A is missing, A also needs to know if there are additional unidirectional replication links from C to A, as in that case C's replication metadata needs to be reset. As A is currently not aware of those it might be an option that in case of recovery an administrator has to list all of A's incoming replication links explicitly.

@krasserm
Copy link
Contributor Author

@volkerstampa is this now resolved with #308?

@krasserm
Copy link
Contributor Author

@volkerstampa I will anyway close this ticket for now as disaster recovery will be re-designed in context of #314. If you think this ticket is still valid, feel free to re-open.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants