How does BDR replicate changes among nodes in a BDR group
New to this group, so if this is not the right place to ask this question or it has been asked before/documented, please kindly point me the right group or the right thread/documentation, thanks.
A BDR novice, I would like to know how BDR replicate changes among nodes in a BDR group, let's say I have a 4 node group consisting of A, B, C and D, established as follows
A is the initial node
B joins via A
C joins via B
D joins via A
How does BDR replicate a change delta on A to B, C, and D? e.g., A replicates delta to B and D, and B to C, or some other way, or not statically determined?
How about a change delta on B to A, C and D? e.g., B replicates delta to A and C, A to D, or?
How about a change delta on C to A, B and D? e.g., C replicates delta to B, B to A, A to D, or?
How about a change delta on D to A, B and C? e.g., D replicate delta to A, A to B, B to A, or?
Thanks
On 8 June 2017 at 04:50, Zhu, Joshua <jzhu@vormetric.com> wrote:
How does BDR replicate a change delta on A to B, C, and D?
It's a mesh.
Once joined, it doesn't matter what the join node was, all nodes are equal.
e.g., A
replicates delta to B and D, and B to C, or some other way, or not
statically determined?
Each node replicates to all other nodes in an undefined order
determined by network timing etc.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Thanks for the clarification.
A follow up question, then, given *once joined all nodes are equal*, is that:
should the node A dies or taken out of the group, the remaining three node group (with B, C and D) would continue to function properly, correct?
[somewhere I saw the term "downstream" nodes was used, and I am not clear what that meant in the context of a mesh-connected group]
Thanks again
-----Original Message-----
From: Craig Ringer [mailto:craig@2ndquadrant.com]
Sent: Wednesday, June 07, 2017 5:59 PM
To: Zhu, Joshua <jzhu@thalesesec.net>
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] How does BDR replicate changes among nodes in a BDR group
On 8 June 2017 at 04:50, Zhu, Joshua <jzhu@vormetric.com> wrote:
How does BDR replicate a change delta on A to B, C, and D?
It's a mesh.
Once joined, it doesn't matter what the join node was, all nodes are equal.
e.g., A
replicates delta to B and D, and B to C, or some other way, or not
statically determined?
Each node replicates to all other nodes in an undefined order determined by network timing etc.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
On 9 June 2017 at 02:47, Zhu, Joshua <jzhu@vormetric.com> wrote:
Thanks for the clarification.
A follow up question, then, given *once joined all nodes are equal*, is that:
should the node A dies or taken out of the group, the remaining three node group (with B, C and D) would continue to function properly, correct?
Yes. Though you'll need to tell them node A isn't coming back by
parting it from one of the other nodes at some point, otherwise
they'll accumulate WAL in pg_xlog and run out of disk space eventually
as they hold onto the resources A would need to sync back up.
Monitoring is important.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general