Comment 3 for bug 1759597

Revision history for this message
Dmitrii Shcherbakov (dmitriis) wrote : Re: Change tooz coordination service backend from memcached to zookeeper

I don't think redis is much better for coordination purposes than memcached being a mostly in-memory store.

https://docs.openstack.org/tooz/latest/user/drivers.html#characteristics
https://docs.openstack.org/tooz/latest/user/compatibility.html

Subjectively, a backing store for a coordination system should be consistent.

This thread has some considerations discussed: http://lists.openstack.org/pipermail/openstack-dev/2017-March/113885.html

Based on what I see, designate requires leadership and grouping support:

https://github.com/openstack/designate/blob/master/designate/coordination.py

From the compatibility page I can see that only zookeeper checks all boxes while being a consistency-oriented system.

There are two drivers for etcd (2 and 3). etcd 3 supports distributed lock manager (DLM) functionality and group membership but not leadership: https://github.com/openstack/tooz/blob/master/tooz/drivers/etcd3.py

Designate uses those two methods in coordination.py which are not implemented for etcd3 in tooz:
"@staticmethod
    def watch_elected_as_leader(group_id, callback):
        raise tooz.NotImplemented

    @staticmethod
    def unwatch_elected_as_leader(group_id, callback):
        raise tooz.NotImplemented"