From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Garzik Subject: Re: [tabled patch 3/3] Fix metadata replication Date: Tue, 10 Aug 2010 15:14:19 -0400 Message-ID: <4C61A50B.9020901@garzik.org> References: <20100805214029.742b23c4@lembas.zaitcev.lan> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=dUjFd+5uZsdiA+b/WIC15vRpPihKNPlZe0aFc+sLAO4=; b=DIUTjUURBn8czVyFxZ8YFWR8hpVRGLhDsltZMEYE2brfYIeMI17x3EaNBV4hDsIVyN 9Au9JCmDesON5cS1YjKqZgK0QXTbnnmJdi59nc+ImDv6WfM/nWser7TTLfufI71aEdCZ nkCi29b6KAEfCGz1g2lPWrTNVoQwaNVb0awGI= In-Reply-To: <20100805214029.742b23c4@lembas.zaitcev.lan> Sender: hail-devel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: Pete Zaitcev Cc: Project Hail List 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 > > --- > 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...