[Bucardo-general] Replacing ontimecopy with cloning for b5
Greg Sabino Mullane
greg at endpoint.com
Wed Oct 16 02:49:18 UTC 2013
On Tue, Oct 15, 2013 at 10:02:43AM -0700, David E. Wheeler wrote:
...
> It will also need to deactivate any other kids associated with the tables
> to be copied, and then re-activate them when it’s done.
Yes, I've gone back and forth on this. First, it should only do so when
its copies of tables and dbgroups matches a sync exactly. Second, I'm
not sure there is a need to - the delta syncs should be very short, and
I think MVCC will take care of everything. The truncates may cause issue
though. I'll think about this some more. We would need a smooth way to
handle the kids too - it may be enough to simply kill the kid, let
clone slip in, and then the CTL resurrects the kid who gets in line
behind the clone process?
> Does onetimecopy even work in the 5.0 branch?
No.
> > For more than one source, we'll simply assume that there is no overlap
> > and the sources will copy to each other, but will not truncate. So
> > for example, with databases A:source, B:source, and C:target, a
> > clone command will do the following:
> >
> > C: TRUNCATE TABLE foo;
> > A: COPY * FROM foo => B: COPY FROM STDIN
> > A: COPY * FROM foo => C: COPY FROM STDIN
> > B: COPY * FROM foo => A: COPY FROM STDIN
> > B: COPY * FROM foo => C: COPY FROM STDIN
>
> I don’t think that’s a good idea. If A and B are both sources, I would
> *expect* there to be a lot of overlap. A better choice, IMO, would be to
> require that only one source be used for the clone, and either truncate
> and clone only to targets, or optionally also truncate and clone to
> other sources.
I should be more clear - the above scenario only happens when people
explicitly request it. In which case, caveat emptor. A use case for
that is a swap sync with alternating sequences that needs to be brought
online.
I have in mind that the CLI will complain if you try to clone a
multi-source sync, and demand you pick a "winner" or give it the
go ahead and do the above.
I'm also envisioning a pretty print out and final confirmation before
all clone events, as it is a pretty major dropped row "are you sure?"
moment.
As always, appreciate the feedback.
--
Greg Sabino Mullane greg at endpoint.com
End Point Corporation
PGP Key: 0x14964AC8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 163 bytes
Desc: Digital signature
URL: <https://mail.endcrypt.com/pipermail/bucardo-general/attachments/20131015/170bb56d/attachment-0001.sig>
More information about the Bucardo-general
mailing list