[发明专利]基于多活实例的MySQL写入方法、装置、设备及介质有效
申请号: | 202110850708.6 | 申请日: | 2021-07-27 |
公开(公告)号: | CN113297228B | 公开(公告)日: | 2021-10-08 |
发明(设计)人: | 陆朝铨;李秋军;陈波;刘铮;张峰;赵楠 | 申请(专利权)人: | 深圳华锐金融技术股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28;G06F16/25 |
代理公司: | 深圳市精英创新知识产权代理有限公司 44740 | 代理人: | 林燕云 |
地址: | 518000 广东省深圳市福田区梅林街*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 实例 mysql 写入 方法 装置 设备 介质 | ||
本发明涉及数据处理领域,提供一种基于多活实例的MySQL写入方法、装置、设备及介质,能够从待写入MySQL的数据库表中选择具有目标行标识及目标行版本号的初始行锁,并利用多活实例争抢初始行锁,当检测到初始行锁被抢到时,通过重置目标行版本号,减少了匹配时间,通过释放行锁得到目标行锁,使初始行锁能够被使用,利用多活实例争抢目标行锁,获取抢到行锁的目标实例的行版本号,并对比所述目标实例的行版本号与所述目标行版本号,当所述目标实例的行版本号与所述目标行版本号相同时,利用所述目标实例在所述待写入MySQL中执行写入操作,进而解决了多活实例执行过程中的死锁问题,保证MySQL数据库能够正常写入数据。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于多活实例的MySQL写入方法、装置、设备及介质。
背景技术
在分布式系统中,采用多活实例可以保证系统的高可靠性。
但是,在运行过程中,如果实例需要读写MySQL,因为每个实例的工作模式和工作内容完全一样,极大概率会发生死锁现象。而一旦发生死锁现象,系统就无法正常运行。
因此,如何避免多活实例运行过程中的死锁现象,成为了亟待解决的问题。
发明内容
鉴于以上内容,有必要提供一种基于多活实例的MySQL写入方法、装置、设备及介质,能够解决多活实例执行过程中的死锁问题,保证MySQL数据库能够正常写入数据。
一种基于多活实例的MySQL写入方法,所述基于多活实例的MySQL写入方法包括:
创建待写入MySQL的数据库表,其中,所述数据库表中包括行标识及行版本号;
获取由至少一个实例构成的多活实例,以及获取目标行标识及目标行版本号;
连接至所述待写入MySQL,从所述数据库表中选择具有所述目标行标识及所述目标行版本号的行锁作为初始行锁,并利用所述多活实例争抢所述初始行锁;
当检测到所述初始行锁被抢到时,重置所述目标行版本号,并利用抢到所述初始行锁的实例释放所述初始行锁,得到目标行锁;
利用所述多活实例争抢所述目标行锁,并将抢到所述目标行锁的实例确定为目标实例;
获取所述目标实例的行版本号,并对比所述目标实例的行版本号与所述目标行版本号;
当所述目标实例的行版本号与所述目标行版本号相同时,利用所述目标实例在所述待写入MySQL中执行写入操作。
根据本发明优选实施例,所述多活实例中的每个实例具有相同的执行参数。
根据本发明优选实施例,在利用所述多活实例争抢所述目标行锁时,所述方法还包括:
将所述多活实例中没有抢到所述目标行锁的实例确定为候选实例;
控制所述候选实例等待预设时长;
经过所述预设时长后,利用所述候选实例继续争抢所述目标行锁。
根据本发明优选实施例,所述方法还包括:
在利用所述目标实例在所述待写入MySQL中执行所述写入操作后,在所述目标实例的行版本号上累加第一数值,得到当前行版本号;
将所述数据库表中的所述目标行版本号更新为所述当前行版本号;
释放所述目标行锁。
根据本发明优选实施例,所述方法还包括:
当所述目标实例的行版本号与所述目标行版本号不相同时,在所述目标实例的行版本号上累加第二数值;
释放所述目标行锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳华锐金融技术股份有限公司,未经深圳华锐金融技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110850708.6/2.html,转载请声明来源钻瓜专利网。