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

Yanyan Hu huyanyan84 at gmail.com
Wed Dec 9 01:55:26 UTC 2015


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.elisha at 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: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:
>
> 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.elisha at 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-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
>
>
>
> --
>
> gord
>
>
> __________________________________________________________________________
> 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
>
>


-- 
Best regards,

Yanyan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151209/646428d9/attachment.html>


More information about the OpenStack-dev mailing list