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<zaitcev@xxxxxxxxxx> --- 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... -- To unsubscribe from this list: send the line "unsubscribe hail-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html