Hi Niphold,

you are right: I have an extra database select in order to get the list of 
dead workers.

Usually I have four workers for example. They are static and shouldn't 
terminate often. In this case, I call only once the database in order to 
get the list of dead workers and I assume this list is always empty. In 
this case nothing is to do. The inner part of my condition will be 
important very rare and because of that I can ignore this within my runtime 
complexity calculation. In our original code we call always twice the 
question how many dead workers there are (update and delete). My suggestion 
reflects a runtime rate of 1 for 2.

Anyway, if I run the worker with my suggested extra condition I could 
eliminate the deadlock cases. This works very well because the extra 
condition. I am happy :)

Thx a lot.
Erwn

On Monday, October 31, 2016 at 3:02:42 PM UTC+1, Niphlod wrote:
>
> sorry, but it doesn't really make sense. 
> You're executing twice the same command (the call enclosed in len() and 
> the actual .delete() call), which is the counter-arg for relaxing a 
> pressured database environment. 
>
> On Monday, October 31, 2016 at 2:04:24 PM UTC+1, Erwn Ltmann wrote:
>>
>> Hi,
>>
>> thank you for your reply.
>>
>> @Pierre: MariaDB (in my case) handled deadlocks automaticly too. Good to 
>> known, I don't have to be worry about that.
>>
>> @Niphlod: I tried to beef up my database host. No effects. Another 
>> suggestion is to prevent the cases for such situation. I did it by an 
>> another extra code line in your worker function send_heartbeat:
>>
>> *if len(db.executesql(dead_workers_name)) > 0:*
>>>   db(
>>>    (st.assigned_worker_name.belongs(dead_workers_name)) &
>>>    (st.status == RUNNING)
>>>   ).update(assigned_worker_name='', status=QUEUED)
>>>   dead_workers.delete()
>>>
>>
>>
>>
>> Erwn
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to