I have a table that runs some heavier computation (process length ~ 5 minutes per key). I want to reserve jobs and run it on multiple machines. I noticed that computers get locked out from the table as soon as one machine starts processing a job - they effectively have to wait until one of the jobs finished before it starts its own, or gets a chance to grab a job. Where does this behavior stem from? I seem to run into "Lock wait timeout exceeded errors" on other machines then the one that is currently processing a job when the job is taking too long.
@schema
class HeavyComputation(dj.Computed):
definition = """
# ...
-> Table1
class_label : varchar(25)
-> Table2.proj(somekey2="somekey")
---
analyzed : longblob
I am running .populate() on the table with
settings = {"display_progress": True,
"reserve_jobs": True,
"suppress_errors": True,
"order": "random"}