Re: [tabled patch 3/3] Fix metadata replication
Jeff Garzik <[email protected]> Tue, 10 Aug 2010 15:14:19 -0400
| Newsgroups | org.kernel.vger.hail-devel |
|---|---|
| Message-ID | <[email protected]> |
On 08/05/2010 11:40 PM, Pete Zaitcev wrote: > The metadata replication in tabled nominally existed, but did not > worked. There were a couple of small bugs (such as an attempt to > boot directly into Slave state would lead to a hang). However, the > biggest problem was how the identity of nodes in Replication Manager > API had to be the same as hostname. When doing so, repmgr code > used the hostname to bind instead of a wildcard socket. But when > doing so, on any stock Fedora or RHEL system it would end listening > on loopback only, because the /etc/hosts aliased the hostname to > loopback address. Thus running any replication required addition > host configuration that can cause any kind of unexpected consequences. > In addition it's impossible to run two nodes on one host for testing. > > This patch does away with the Replication Manager and uses Base API > instead. This way, issues with host aliasing are addressed, and > the state transitions occur much faster because there is no voting. > > Note that the provision is added to run peers on the same host, > using a configuration clause TDBRepName. I was unable to come up with > a reliable way to make persistent, nonconflicting identifiers that > would replace hostnames. Fortunately, this should only be used > for build tests, where we probably can live with it. > > The resulting replication feature was tested to work. Not sure if > it is enough to trust it with one's data, but it's better than before. > > Signed-off-by: Pete Zaitcev<[email protected]> > > --- > doc/etc.tabled.conf | 8 > doc/setup.txt | 13 + > include/tdb.h | 15 - > lib/tdb.c | 130 ++++++------- > server/Makefile.am | 2 > server/bucket.c | 34 +-- > server/cldu.c | 416 ++++++++++++++++++++++++++++++++++++------ > server/config.c | 10 + > server/object.c | 22 +- > server/replica.c | 8 > server/server.c | 404 ++++++++++++++++++++++++++++++++++++---- > server/tabled.h | 97 +++++++++ > server/tdbadm.c | 51 +---- > 13 files changed, 963 insertions(+), 247 deletions(-) Including metarep.c would be helpful ;-) Will wait on release for this...