On 03/23/2016 12:49 PM, pnkk wrote:
Joshua,

We are performing few scaling tests for our solution and see that there
are errors as below:

Failed saving logbook 'cc6f5cbd-c2f7-4432-9ca6-fff185cf853b'\n  InternalError: 
(pymysql.err.InternalError) (1205, u'Lock wait timeout exceeded; try restarting 
transaction') [SQL: u'UPDATE logbooks SET created_at=%s, updated_at=%s, meta=%s, 
name=%s, uuid=%s WHERE logbooks.uuid = %s'] [parameters: (datetime.datetime(2016, 3, 
18, 18, 16, 40), datetime.datetime(2016, 3, 23, 3, 3, 44, 95395), u'{}', u'test', 
u'cc6f5cbd-c2f7-4432-9ca6-fff185cf853b', 
u'cc6f5cbd-c2f7-4432-9ca6-fff185cf853b')]"


We have about 800 flows as of now and each flow is updated in the same logbook 
in a separate eventlet thread.


Every thread calls save_logbook() on the same logbook record. I think this 
function is trying to update logbook record even though my usecase needs only 
flow details to be inserted and it doesn't update any information related to 
logbook.


Right its trying to update the 'updated_at' field afaik,


Probably one of the threads was holding the lock while updating, and others 
tried for lock and failed after the default interval has elapsed.


I can think of few alternatives at the moment:


1. Increase the number of logbooks

2. Increase theinnodb_lock_wait_timeout

3. There are some suggestions to make the innodb transaction isolation level to "READ 
COMMITTED" instead of "REPEATABLE READ", but I am not very familiar of the side 
effects they can cause

4. Add some basic retries?

5. The following review should also help (and save less) @ https://review.openstack.org/#/c/241441/

Afaik we are also using READ COMMITTED already ;)

https://github.com/openstack/taskflow/blob/master/taskflow/persistence/backends/impl_sqlalchemy.py#L105



Appreciate your thoughts on given alternatives or probably even better 
alternative

Do u want to try using https://pypi.python.org/pypi/retrying in a few strategic places so that if the above occurs, that it retries?



Thanks,

Kanthi






On Sun, Mar 20, 2016 at 10:00 PM, Joshua Harlow <[email protected]
<mailto:[email protected]>> wrote:

    Lingxian Kong wrote:

        Kanthi, sorry for chiming in, I suggest you may have a chance to
        take
        a look at Mistral[1], which is the workflow as a service in
        OpenStack(or without OpenStack).


    Out of curiosity, why? Seems the ML post was about 'TaskFlow
    persistence' not mistral, just saying (unsure how it is relevant to
    mention mistral in this)...

    Back to getting more coffee...

    -Josh



    __________________________________________________________________________
    OpenStack Development Mailing List (not for usage questions)
    Unsubscribe:
    [email protected]?subject:unsubscribe
    <http://[email protected]?subject:unsubscribe>
    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [email protected]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to