在我的气流升级到2.0.0(然后是2.0.1)并将调度器扩展到3个节点之后,发生了一些奇怪的事情:
hostname(https://github.com/apache/airflow/issues/13692)
。
当只有一个调度程序节点时,这些现象从未发生过。
我发现,在调度器节点创建了新dagrun的任务实例之后,在另一个调度器节点的task_instance_scheduling_decisions函数中没有找到它们。
然后我检查了mysql配置,发现默认情况下事务隔离被设置为可重复读取。
在我将事务隔离设置为read之后,现在一切似乎都很好。但我还是想知道有什么副作用吗?
发布于 2021-03-22 15:26:25
是的,提交的读与可重复的读取不同。
如果使用可重复读取,则在此事务中:
START TRANSACTION;
SELECT * FROM mytable;
SELECT * FROM mytable; -- i.e. the same query
COMMIT;您可以保证两个选择都返回相同的结果(只要它们没有锁定查询)。
但在READ中,如果其他会话在两个选择之间提交了对数据的更改,则它们可以返回不同的结果。
换句话说,可重复读取意味着SELECT查询总是返回在开始事务时提交的数据。READ意味着SELECT查询返回事务启动后提交的数据,直到每个SELECT启动为止。
这两个级别的事务隔离都有适当的用途。但他们的行为却不一样。
https://stackoverflow.com/questions/66748676
复制相似问题