<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">It seems easy to fix it.<br>
On 12/04/2012 06:03 AM, Nachi Ueno wrote:<br>
</div>
<blockquote
cite="mid:CABJepwhhk7yadzKvr93nhNKY=CJVBfCXkueox4WROuDG=Ak30g@mail.gmail.com"
type="cite">Hi Quantum folks
<div><br>
</div>
<div>This bp for nova looks like solve the quantum one also.</div>
<div><a moz-do-not-send="true"
href="https://blueprints.launchpad.net/nova/+spec/non-blocking-db">https://blueprints.launchpad.net/nova/+spec/non-blocking-db</a><br>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">2012/12/3 Nachi Ueno <span dir="ltr"><<a
moz-do-not-send="true" href="mailto:nachi@nttmcl.com"
target="_blank">nachi@nttmcl.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Hi
Quantum folks</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">
I faced the problem with mysql transaction and eventlet.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Quantum
using transaction support of sqlalchemy</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Quantum
also using eventlet for RPC</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">
Let's say there are api request A and B.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Sql
request of A will lock B's sql request. </div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">
so B's sql request will wait the A's transaction.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">On
the other hand, we are using evenetlet.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Since
we are using mysql c client, the API request may block
eventlet </div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">
thread.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">so
when B start wait sql lock, it blocks all eventlet thread
including api request A until lock timeout.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">I
asked Jay about the this problem, and he said Nova solve
this problem by this way.</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><a
moz-do-not-send="true"
href="https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2610"
target="_blank">https://github.com/openstack/nova/blob/master/nova/db/sqlalchemy/api.py#L2610</a></div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">The
strategy is to get lock just after the transaction started
using. ( I'm not sure we can use same strategy in the
quantum. )</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px"><br>
</div>
<div
style="font-family:arial,sans-serif;font-size:13.63636302947998px">Anyway,
It looks big change needed for me.</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
OpenStack-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>