Re: Supporting Partial Replication
Ryan Moats <[email protected]>
| Newsgroups | gmane.ietf.ldup |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Dec 06, 2001 at 02:45:14PM +1100, Steven Legg wrote: | | | Folks, | | A while ago I promised to write up my thoughts on changes to the LDUP | architecture to support partial replication. Well this is part one of | that write up, which discusses changes to the architecture to make it | more amenable to replication topologies involving partial replicas. | | | Consider the following replication topology: | | S1 ====== S2 | \ / | \ / | \ / | S3 | | Servers S1 & S2 hold full copies of replication area R1. S3 holds | replication area R2, a subset of R1. R2 could be a subtree of R1, a | sparse replica or a fractional replica. The exact details don't matter | at this stage. It is enough to recognize that R2 is a subset of the | information in R1. | | Suppose that there are two successive update operations, U1 & U2, performed | at S2, where U1 affects information in R1 but wholly outside of R2 and U2 | is wholly within R2 (and thus also within R1). The CSN alloted to U1 is | less than the CSN alloted to U2. | | Suppose S3 and S2 establish replication sessions to exchange updates. | S3 has no changes to send. S2 will send U2 because it is within the scope | of the replication agreement S3 has with S2, but will not send U1. | | S3 and S1 then establish replication sessions. S1 has no changes to send. | S3 sends U2 since the CSN for U2 is more recent than the CSN corresponding | to S2 in S1's update vector. S1 will set the CSN corresponding to S2 in | its update vector to be the CSN for U2. | | Now, if S2 establishes a replication session with S1 it will send no | updates. In particular, it won't send U1 because the CSN corresponding to | S2 in S1's update vector is already greater than the CSN for U1. In fact, | S1 will never receive U1, so the requirement for all replicas to converge | will not be satisfied. In general, the current LDUP architecture only | works if the replication topology has no cycles, or where there are | cycles, if the replicas in each cycle have replication agreements for | exactly the same area of replication. | Hold on... I'm deleting the rest of this message because you've lost me here. I thought that (a) we had a separate CSN vector for each other server and that (b) that CSN vector was to the level of attribute and entry. Thus, I don't see the problem. Ryan