发明名称 |
数据更新的加锁方法和设备 |
摘要 |
本申请涉及一种多线程的数据更新的加锁方法和设备,其中,该方法可以包括:确定对InnoDB存储引擎中要更新的线程进行加锁的请求是否成功;如果所述加锁请求失败,则判断所述等待锁数是否超过预定阈值;如果所述等待锁数没有超过预定阈值,则创建针对所述失败线程的锁并等待加锁;如果所述等待锁数超过预定阈值,则将所述加锁失败线程调度出InnoDB存储引擎并将其哈希到各个桶中;将相同桶中的加锁失败线程以轮询的方式传送到InnoDB存储引擎以请求加锁。采用本申请,通过利用锁竞争的情况来识别并发更新的热点数据,从而对并发更新热点数据的线程进行调度控制,进而优化了高并发热点数据更新的处理能力。 |
申请公布号 |
CN104252386A |
申请公布日期 |
2014.12.31 |
申请号 |
CN201310259869.3 |
申请日期 |
2013.06.26 |
申请人 |
阿里巴巴集团控股有限公司 |
发明人 |
刘辉 |
分类号 |
G06F9/48(2006.01)I;G06F17/30(2006.01)I |
主分类号 |
G06F9/48(2006.01)I |
代理机构 |
北京国昊天诚知识产权代理有限公司 11315 |
代理人 |
许志勇 |
主权项 |
一种多线程的数据更新的加锁方法,其特征在于,包括:确定对InnoDB存储引擎中要更新的线程进行加锁的请求是否成功;如果所述加锁请求失败,则判断所述等待锁数是否超过预定阈值;如果所述等待锁数没有超过预定阈值,则创建针对所述失败线程的锁并等待加锁;如果所述等待锁数超过预定阈值,则将所述加锁失败线程调度出InnoDB存储引擎并将其哈希到各个桶中;将相同桶中的加锁失败线程以轮询的方式传送到InnoDB存储引擎以请求加锁。 |
地址 |
英属开曼群岛大开曼资本大厦一座四层847号邮箱 |