Conversation
pass checks for python3
182f0d7 to
cca807f
Compare
|
Sorry this doesn't work for us as the DB is the source of truth, the executor's state can get out of sync and ultimately we trust what is in the DB... |
|
@mistercrunch And I'm wondering how the executor's state can get out of sync? By multiple schedulers?. Maybe a better solution is using curator/zookeeper's semaphore to solve this problem(each of the task get a resource from the semaphore). In summary, simply counting the number of running tasks can lead to concurrency issues when multiple task_instance is checking the database at the same time. We need to solve it using other mechanism |
|
Right, it's a tricky situation as we want to support multiple schedulers in the future, and we certainly don't want to make zookeeper a hard requirement. Having support for multiple executors (and even more in the future), that only leaves the DB as the source of truth, and means we'd have to use it as a message queue almost, which isn't great. |
|
@mistercrunch Just curious how you are going to solve this issue using DB though? thanks |
|
Yeah I think that's the idea, it may take a little while though. I'm going to write a design proposal and submit it out for review soon. |
|
|
|
@lucafuji I am not sure we have a clear design for this on our end, but if you still want to be involved feel free to reply. If we do not hear from you, we might close this PR for now as part of a cleanup effort for long standing PRs. |
|
@artwr Feel free to abandon this one, this PR also has race condition issue though. |
Hi, I change the check from database to base executor to ensure each task_instance will get the consistent view of running instances in memory. Coding style may be not very good. But I will appreciate if you can review the logic, thanks a lot!