[openstack-dev] [oslo.db][sqlalchemy][mistral] Configuring default transaction isolation level

ELISHA, Moshe (Moshe) moshe.elisha at alcatel-lucent.com
Tue Dec 8 13:13:43 UTC 2015

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:gord at live.ca]
Sent: Tuesday, December 08, 2015 2:50 PM
To: openstack-dev at 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:

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.elisha at alcatel-lucent.com<mailto:moshe.elisha at alcatel-lucent.com>> wrote:


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.


[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-request at lists.openstack.org<mailto:OpenStack-dev-request at lists.openstack.org>?subject:unsubscribe


OpenStack Development Mailing List (not for usage questions)

Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<mailto:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe>



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151208/3dcdf3fe/attachment.html>

More information about the OpenStack-dev mailing list