My understanding is it is still safeish to use when you deal with it right. it causes a transaction abort if the race condition ever hits, and you can keep retrying until your commit makes it. So, there are two issues here: 1. its a more rare kind of abort, so unless you are testing and retrying, it can cause operations to fail in a way the user might notice needlessly. This is bad. It should be tested for in the gate. 2. in highly contended systems, it can be a performance issue. This is less bad then #1. For certain codes, it may never be a problem.
Thanks, Kevin ________________________________________ From: Zane Bitter [zbit...@redhat.com] Sent: Thursday, October 11, 2018 10:08 AM To: openstack-dev@lists.openstack.org Subject: Re: [openstack-dev] [kolla][tc] add service discovery, proxysql, vault, fabio and FQDN endpoints 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.) (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.) > -jay > >> ________________________________________ >> From: Jay Pipes [jaypi...@gmail.com] >> Sent: Tuesday, October 09, 2018 12:22 PM >> To: openstack-dev@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-requ...@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-requ...@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-requ...@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-requ...@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-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev