On 02/10/2015 06:28 AM, Attila Fazekas wrote: > ----- Original Message ----- >> From: "Jay Pipes" <jaypipes at gmail.com> >> To: "Attila Fazekas" <afazekas at redhat.com>, "OpenStack Development Mailing List (not for usage questions)" >> <openstack-dev at lists.openstack.org> >> Cc: "Pavel Kholkin" <pkholkin at mirantis.com> >> Sent: Monday, February 9, 2015 7:15:10 PM >> Subject: Re: [openstack-dev] [all][oslo.db][nova] TL; DR Things everybody should know about Galera >> >> On 02/09/2015 01:02 PM, Attila Fazekas wrote: >>> I do not see why not to use `FOR UPDATE` even with multi-writer or >>> Is the retry/swap way really solves anything here. >> <snip> >>> Am I missed something ? >> >> Yes. Galera does not replicate the (internal to InnnoDB) row-level locks >> that are needed to support SELECT FOR UPDATE statements across multiple >> cluster nodes. > > Galere does not replicates the row-level locks created by UPDATE/INSERT ... > So what to do with the UPDATE? No, Galera replicates the write sets (binary log segments) for UPDATE/INSERT/DELETE statements -- the things that actually change/add/remove records in DB tables. No locks are replicated, ever. > Why should I handle the FOR UPDATE differently? Because SELECT FOR UPDATE doesn't change any rows, and therefore does not trigger any replication event in Galera. See here: http://www.percona.com/blog/2014/09/11/openstack-users-shed-light-on-percona-xtradb-cluster-deadlock-issues/ -jay >> https://groups.google.com/forum/#!msg/codership-team/Au1jVFKQv8o/QYV_Z_t5YAEJ >> >> Best, >> -jay >>