[发明专利]分库分表的幂等控制方法和装置有效
申请号: | 201610144244.6 | 申请日: | 2016-03-14 |
公开(公告)号: | CN107193827B | 公开(公告)日: | 2020-07-17 |
发明(设计)人: | 谢清 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分库分表 控制 方法 装置 | ||
本申请提供一种分库分表的幂等控制方法,包括:获取对数据库操作请求的标识和分库分表位置信息;如果全局幂等表中已存在具有所述标识的全局记录、并且所述全局记录的分库分表位置信息与所述请求的分库分表位置信息不同,将所述请求作为重复请求;否则使全局幂等表中存在具有所述请求的标识和分库分表位置信息的全局记录;如果对应于所述请求的分库分表位置信息的本地幂等表中存在具有所述标识的本地记录,将所述请求作为重复请求;否则在处理所述请求的本地事务中,往本地幂等表中插入包括所述标识的本地记录。通过本申请的技术方案,无需删除全局幂等表中的全局记录即可使重新提交的请求得到对应的业务处理,实现了更加可靠的全局幂等控制。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种分库分表的幂等控制方法和装置。
背景技术
随着信息技术的发展,越来越多的互联网应用都涉及到海量的数据存储和访问。数据通常以表的形式存储在数据库中,而表的容量、数据库的容量和会受到服务器硬件资源的限制。当表中的数据规模随着业务日益增长到一定程度后,常常需要将表拆分为多个数据库中的多个分表(分库分表),以维持对表中数据进行操作时的性能。
幂等控制用于保证对于重复请求的处理结果与一次请求的处理结果相同。在基于数据库的互联网应用中,用户刷新页面、在收到服务端的响应前重复某个操作都有可能产生重复请求,幂等控制对避免重复请求导致的用户资金损失、数据库产生无效数据等问题具有重要的意义。
现有技术中,一种分库分表数据库的幂等控制方式是:在数据库收到待处理的请求后,在缓存中以该请求的标识为主键插入一条幂等记录;如果插入缓存的过程中出现主键冲突异常(即缓存中已经存在以该请求的标识为主键的幂等记录),说明之前已经有过相同的请求,则将该请求作为重复请求;如果插入缓存成功,在处理该请求时要使用的分库分表本地开启本地事务,本地幂等表中以该请求的标识为主键插入一条本地记录,如果本地幂等表插入失败,说明本地幂等表中已经存在主键为该请求的标识的本地记录,则将该请求作为重复请求;如果插入本地幂等表成功,进行该请求的业务操作。该请求的业务操作成功后提交本地事务;如果失败,则回滚本地事务,由于使业务操作失败后具有该请求标识的其他请求应当被处理而不应被作为重复请求,删除缓存中具有该请求标识的幂等记录(在本地事务回滚时,在本地幂等表中插入的以该请求的标识为主键的本地记录将被删除)。
在这种方式中,由于分库分表数据库系统中,用来进行幂等控制的缓存与数据库的各个分库分表往往位于不同的设备上,在分库分表所在的设备回滚本地事务后,删除缓存中幂等记录的操作可能因种种原因失败(例如发送的删除缓存中幂等记录的指令未能到达缓存所在的设备),导致业务操作失败后重新提交的请求被作为重复请求,从而不能为用户提供对应的服务,影响了业务的正常运行。
发明内容
有鉴于此,本申请提供一种分库分表的幂等控制方法,包括:
获取对数据库操作请求的标识和分库分表位置信息;
如果全局幂等表中已存在具有所述标识的全局记录、并且所述全局记录的分库分表位置信息与所述请求的分库分表位置信息不同,将所述请求作为重复请求;否则使全局幂等表中存在具有所述请求的标识和分库分表位置信息的全局记录;
如果对应于所述请求的分库分表位置信息的本地幂等表中存在具有所述标识的本地记录,将所述请求作为重复请求;否则在处理所述请求的本地事务中,往本地幂等表中插入包括所述标识的本地记录。
本申请还提供了一种分库分表的幂等控制装置,包括:
标识获取单元,用于获取对数据库操作请求的标识和分库分表位置信息;
全局记录处理单元,用于当全局幂等表中已存在具有所述标识的全局记录、并且所述全局记录的分库分表位置信息与所述请求的分库分表位置信息不同时,将所述请求作为重复请求;否则使全局幂等表中存在具有所述请求的标识和分库分表位置信息的全局记录;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610144244.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种截取浏览器窗口变化的方法和截取装置
- 下一篇:小说网页抓取方法和装置