本文主要是介绍亚信安慧AntDB:AntDB-M元数据锁(九),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
5.7 死锁驱逐
当发现死锁时,在整个检测路径上包括自己会有2到多个ticket,对于这些ticket,会选其中死锁权重最低的设置状态为驱逐,即唤醒该线程结束等待,将自己从锁对象的等待队列中移除。权重分为3级:DDL锁 > 用户级锁 > DML锁。在出现死锁时,更倾向于让DML事务回滚,让DDL语句继续执行。权重相同时,更倾向于后进入等待队列的事务回滚。 在设置了驱逐状态后,并不能保证剩余的锁间没有死锁,会重新进行一次死锁检测,直到没有发现死锁,或者将自己设为驱逐状态为止。 对每个上下文进行检测时,对其加读锁,避免上下文的等待对象被重置。
对每个锁对象进行检测时,对其加读锁,避免已授权、等待队列被更新。通过读锁保障数据安全的同时,又保障了多线程间的并发操作。
这篇关于亚信安慧AntDB:AntDB-M元数据锁(九)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!