Hi, Moshe, I think you can try the following way to change the isolation_level of a specific transaction when using oslo.db. We apply it to solve the concurrency issue happen in Senlin project. Hope that will be helpful.
1272 session = _session(context) 1273 session.begin() 1274 session.connection( 1275 execution_options={'isolation_level': 'SERIALIZABLE'}) https://review.openstack.org/#/c/252231/11/senlin/db/sqlalchemy/api.py #Line1214 2015-12-08 21:13 GMT+08:00 ELISHA, Moshe (Moshe) < moshe.eli...@alcatel-lucent.com>: > Thank you, Gordon for your reply. > > > > In your patch I see that you are setting the isolation_level to > REPEATABLE_READ. We are trying to change the isolation level to > READ_COMMITTED. > > I like to refer you to this performance article[1] that determines that > READ_COMMITTED is usually better than REPEATABLE_READ. > > > > In addition, maybe an additional reason for your slowness is that you do > it when you get the connection – so you do an extra DB command that sets > the isolation level. > > My patch is changing the default isolation level for all connections > upfront. > > > > [1] > https://www.percona.com/blog/2015/01/14/mysql-performance-implications-of-innodb-isolation-modes/ > > > > > > > > *From:* gord chung [mailto:g...@live.ca] > *Sent:* Tuesday, December 08, 2015 2:50 PM > *To:* openstack-dev@lists.openstack.org > *Subject:* Re: [openstack-dev] [oslo.db][sqlalchemy][mistral] Configuring > default transaction isolation level > > > > we had this in ceilometer events. you can see it here: > https://github.com/openstack/ceilometer/commit/898cd3d036c4358aa16f7b3e2028365dc9829213 > > note, that patch is removing it because it slowed everything way down > because of locking. if you can avoid it, avoid it. > > On 08/12/2015 7:28 AM, Renat Akhmerov wrote: > > Hi, > > > > Moshe, thanks a lot for bringing this up. I remember I tried to find a way > to change isolation level per connection but also was unable to do that. > > > > An advice from oslo team would be very helpful. > > > > Renat Akhmerov > > @ Mirantis Inc. > > > > > > > > On 08 Dec 2015, at 13:41, ELISHA, Moshe (Moshe) < > moshe.eli...@alcatel-lucent.com> wrote: > > > > Hi, > > > > We at Mistral want to move from the default transaction isolation level of > REPEATABLE READ to READ COMMITTED as part of a bugfix[1]. > > > > I did not find a way to pass the isolation level to sqlachemy using > oslo.db and the current solution is to use monkey-patching[2] that adds the > “isolation_level” property. > > > > Is there currently a better way to set the default isolation level? > > If not – I will create a BP for it. > > > > Thanks. > > > > [1] https://review.openstack.org/#/c/253819 > > [2] > https://review.openstack.org/#/c/253819/11/mistral/db/sqlalchemy/base.py > > > > __________________________________________________________________________ > 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 > > > > -- > > gord > > > __________________________________________________________________________ > 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 > > -- Best regards, Yanyan
__________________________________________________________________________ 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