[openstack-dev] [kolla][tc] add service discovery, proxysql, vault, fabio and FQDN endpoints

Jay Pipes jaypipes at gmail.com
Fri Oct 12 23:20:29 UTC 2018


On 10/11/2018 01:08 PM, Zane Bitter wrote:
> On 10/10/18 1:35 PM, Jay Pipes wrote:
>> +tc topic
>>
>> On 10/10/2018 11:49 AM, Fox, Kevin M wrote:
>>> Sorry. Couldn't quite think of the name. I was meaning, openstack 
>>> project tags.
>>
>> I think having a tag that indicates the project is no longer using 
>> SELECT FOR UPDATE (and thus is safe to use multi-writer Galera) is an 
>> excellent idea, Kevin. ++
> 
> I would support such a tag, especially if it came with detailed 
> instructions on how to audit your code to make sure you are not doing 
> this with sqlalchemy. (Bonus points for a flake8 plugin that can be 
> enabled in the gate.)

I can contribute to such a tag's documentation, but I don't currently 
have the bandwidth to start and shepherd it.

> (One question for clarification: is this actually _required_ to use 
> multi-writer Galera? My previous recollection was that it was possible, 
> but inefficient, to use SELECT FOR UPDATE safely as long as you wrote a 
> lot of boilerplate to restart the transaction if it failed.)

Certainly not. There is just a higher occurrence of the deadlock error 
in question when using SELECT FOR UPDATE versus using a compare-and-swap 
technique that does things like this:

UPDATE tbl SET field = value, generation = generation + 1
WHERE generation = $expected_generation;

The vast majority of cases I've seen where the deadlock occurred were 
during Rally tests, which were just brute-forcing breakage points and 
not particularly reflecting a real-world usage pattern.

So, in short, yes, it's perfectly safe and fine to use Galera in a 
multi-writer setup from the get-go with most OpenStack projects. It's 
just that *some* OpenStack projects of later releases have fewer code 
areas that aggravate the aforementioned deadlock conditions with Galera 
in multi-writer mode.

Best,
-jay

>> -jay
>>
>>> ________________________________________
>>> From: Jay Pipes [jaypipes at gmail.com]
>>> Sent: Tuesday, October 09, 2018 12:22 PM
>>> To: openstack-dev at lists.openstack.org
>>> Subject: Re: [openstack-dev] [kolla] add service discovery, proxysql, 
>>> vault, fabio and FQDN endpoints
>>>
>>> On 10/09/2018 03:10 PM, Fox, Kevin M wrote:
>>>> Oh, this does raise an interesting question... Should such 
>>>> information be reported by the projects up to users through labels? 
>>>> Something like, "percona_multimaster=safe" Its really difficult for 
>>>> folks to know which projects can and can not be used that way 
>>>> currently.
>>>
>>> Are you referring to k8s labels/selectors? or are you referring to
>>> project tags (you know, part of that whole Big Tent thing...)?
>>>
>>> -jay
>>>
>>> __________________________________________________________________________ 
>>>
>>> OpenStack Development Mailing List (not for usage questions)
>>> Unsubscribe: 
>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>> __________________________________________________________________________ 
>>>
>>> OpenStack Development Mailing List (not for usage questions)
>>> Unsubscribe: 
>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>
>>
>> __________________________________________________________________________ 
>>
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: 
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list