Tooz is provided with several drivers implementing the provided coordination API. While all drivers provides the same set of features with respect to the API, some of them have different characteristics:
Driver: tooz.drivers.zookeeper.KazooDriver
Characteristics:
tooz.drivers.zookeeper.KazooDriver.CHARACTERISTICS
Entrypoint name: zookeeper
or kazoo
Summary:
The zookeeper is the reference implementation and provides the most solid features as it’s possible to build a cluster of zookeeper servers that is resilient towards network partitions for example.
Test driver: tooz.drivers.zake.ZakeDriver
Characteristics:
tooz.drivers.zake.ZakeDriver.CHARACTERISTICS
Test driver entrypoint name: zake
Driver: tooz.drivers.memcached.MemcachedDriver
Characteristics:
tooz.drivers.memcached.MemcachedDriver.CHARACTERISTICS
Entrypoint name: memcached
Summary:
The memcached driver is a basic implementation and provides little resiliency, though it’s much simpler to setup. A lot of the features provided in tooz are based on timeout (heartbeats, locks, etc) so are less resilient than other backends.
Driver: tooz.drivers.redis.RedisDriver
Characteristics:
tooz.drivers.redis.RedisDriver.CHARACTERISTICS
Entrypoint name: redis
Summary:
The redis driver is a basic implementation and provides reasonable resiliency when used with redis-sentinel. A lot of the features provided in tooz are based on timeout (heartbeats, locks, etc) so are less resilient than other backends.
Driver: tooz.drivers.ipc.IPCDriver
Characteristics: tooz.drivers.ipc.IPCDriver.CHARACTERISTICS
Entrypoint name: ipc
Summary:
The IPC driver is based on Posix IPC API and implements a lock mechanism and some basic group primitives (with huge limitations).
Driver: tooz.drivers.file.FileDriver
Characteristics: tooz.drivers.file.FileDriver.CHARACTERISTICS
Entrypoint name: file
Summary:
The file driver is a simple driver based on files and directories. It implements a lock based on POSIX or Window file level locking mechanism and some basic group primitives (with huge limitations).
Driver: tooz.drivers.pgsql.PostgresDriver
Characteristics:
tooz.drivers.pgsql.PostgresDriver.CHARACTERISTICS
Entrypoint name: postgresql
Summary:
The postgresql driver is a driver providing only a distributed lock (for now) and is based on the PostgreSQL database server and its API(s) that provide for advisory locks to be created and used by applications. When a lock is acquired it will release either when explicitly released or automatically when the database session ends (for example if the program using the lock crashes).
max_locks_per_transaction * (max_connections + max_prepared_transactions)
upper bound (PostgreSQL server configuration settings).Driver: tooz.drivers.mysql.MySQLDriver
Characteristics: tooz.drivers.mysql.MySQLDriver.CHARACTERISTICS
Entrypoint name: mysql
Summary:
The MySQL driver is a driver providing only distributed locks (for now) and is based on the MySQL database server supported get_lock primitives. When a lock is acquired it will release either when explicitly released or automatically when the database session ends (for example if the program using the lock crashes).
Driver: tooz.drivers.etcd.EtcdDriver
Characteristics: tooz.drivers.etcd.EtcdDriver.CHARACTERISTICS
Entrypoint name: etcd
Summary:
The etcd driver is a driver providing only distributed locks (for now) and is based on the etcd server supported key/value storage and associated primitives.
Driver: tooz.drivers.consul.ConsulDriver
Characteristics:
tooz.drivers.consul.ConsulDriver.CHARACTERISTICS
Entrypoint name: consul
Summary:
The consul driver is a driver providing only distributed locks (for now) and is based on the consul server key/value storage and/or primitives. When a lock is acquired it will release either when explicitly released or automatically when the consul session ends (for example if the program using the lock crashes).
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.