[openstack-dev] [Heat] Summit recap
Zane Bitter
zbitter at redhat.com
Mon May 9 23:22:40 UTC 2016
On 09/05/16 09:44, Julien Danjou wrote:
> On Mon, May 09 2016, Thomas Herve wrote:
>
>
> […]
>
>> Using DLM
>> ----------------
>>
>> We managed to not talk about ZooKeeper too much :). We want to remove
>> the database locks that we have and use tooz instead. The key is to
>> provide a nice upgrade path, so starting with the locks use for
>> convergence seems easier. If it turns out to be painless, we'll move
>> the stack locks from the legacy engine as well.
>
> I don't know what stack lock so my apologies if I'm saying anything
> wrong.
>
> There might be a nice upgrade path solution, which is to use your
> database as the lock manager. Tooz provides locking primitive against
> MySQL and PostgreSQL with their respective driver.
>
> We do that by default in Gnocchi. It offers a very nice and simple
> "works by default": Gnocchi picks the database URL and pass it to Tooz,
> so we have a DLM "for free".
>
> Then, bigger deployments can tweak the Tooz URL to make it point to
> something more robust (ZooKeeper, etcd…).
I missed this session because I was at a TripleO one, but that would be
a good plan for anything where we have an entry in the StackLock table.
I know that this includes the stack-level locks in the legacy code path.
I believe, but am open to correction, that the resource-level locks in
convergence are directly in the Resource table - that is, they ensure
that the writes we're already doing are atomic, rather than providing a
distributed mutex implementation. In performance terms, we get this
effectively for free because we are doing those writes anyway. Switching
to a database-backed distributed mutex like tooz or our existing
StackLock would result in a bunch of extra database writes at a time
when we're trying to _reduce_ the impact of convergence hammering the
DB. So in that case I think we'd have to make it optional/selectable.
(Optional locking would actually work here - it would eliminate
contention at the DB level and therefore improve worst-case performance,
but wouldn't be required for correctness since our writes are already
atomic.)
cheers,
Zane.
More information about the OpenStack-dev
mailing list