[发明专利]一种基于TiDB数据库的处理方法及装置有效
申请号: | 202010187710.5 | 申请日: | 2020-03-17 |
公开(公告)号: | CN111400331B | 公开(公告)日: | 2023-05-30 |
发明(设计)人: | 苏安民;陈晓宇;傅立平;张世杰;邹帮山 | 申请(专利权)人: | 吉林亿联银行股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/25;G06F9/46 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王欢 |
地址: | 130000 吉林省*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 tidb 数据库 处理 方法 装置 | ||
本申请公开了一种基于TiDB数据库的处理方法及装置,方法包括:接收数据操作请求,所述数据操作请求用于指示对第一数据进行第一操作;依据所述数据操作请求对所述第一数据执行所述第一操作;确定所述第一操作是否执行失败;若是,在应用层面进行所述第一操作的重试。所述基于TiDB数据库的处理方法及装置,在数据操作失败后,可以在应用层面重试第一操作,从而增加了第一操作成功执行的概率,降低了高并发情况下使用TiDB数据库的热点数据更新失败的可能;且由于第一操作的重试在应用层面进行,因此整个过程对于用户是无感知的,从而实现了在用户无感知的情况下数据操作成功率的提升,优化了用户体验。
技术领域
本发明涉及数据处理技术,更具体的说,是涉及一种基于TiDB数据库的处理方法及装置。
背景技术
TiDB是一款定位于在线事务处理/在线分析处理的融合型NewSql开源数据库,其中的存储的数据可称为TiDB数据。
TiDB数据库目前已应用在一些金融单位,如银行,但由于一些版本的TiDB数据库仅支持乐观锁(乐观锁在进行数据修改时,认为不存在其它修改该数据的操作,只是在操作的时候判断此期间是否存在别人是否修改了数据,如果别人修改了数据,则乐观锁放弃此操作,执行失败,否则执行操作),而不支持悲观锁(悲观锁在操作数据时比较悲观,认为别人会同时修改数据,因此操作数据时直接把数据锁住,直到操作完成后才会释放锁,上锁期间其他人不能修改数据),因此,当TiDB数据库使用了select for update的SQL语句时,TiDB数据库不会重试提交时遇到冲突的事务;在提交时如果检查到冲突(数据被修改),那么事务会被回滚,造成提交失败。
由于银行系统的数据变化频率非常高,因此同一时间段内对同一数据进行操作的事件出现的概率也很大;而TiDB数据库仅支持乐观锁,因此可能导致许多数据操作的事务在执行时产生冲突,造成事务执行失败成为大概率事件,影响用户的使用体验。
发明内容
有鉴于此,本发明提供如下技术方案:
一种基于TiDB数据库的处理方法,包括:
接收数据操作请求,所述数据操作请求用于指示对第一数据进行第一操作;
依据所述数据操作请求对所述第一数据执行所述第一操作;
确定所述第一操作是否执行失败;
若是,在应用层面进行所述第一操作的重试。
可选的,所述确定所述第一操作是否执行失败,包括:
采用应用层上的Stria流执行引擎扫描检测所述第一操作是否执行失败。
可选的,所述在应用层面进行所述第一操作的重试前,还包括:
确定用于执行所述第一操作的接口中是否包含重试标记;
若存在,执行所述在应用层面进行所述第一操作的重试的步骤。
可选的,所述在应用层面进行所述第一操作的重试,包括:
在所述第一操作执行失败的情况下,在应用层面反复进行所述第一操作的重试的步骤,直至所述第一操作成功。
可选的,还包括:
在检测到所述第一操作的重试次数达到预设的最大重试次数的情况下,则返回操作失败结果,并进行针对所述数据操作请求的事务的回滚。
可选的,还包括:
依据所述第一操作的重试次数确定其执行优先级别。
可选的,所述依据所述第一操作的重试次数确定其执行优先级别,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于吉林亿联银行股份有限公司,未经吉林亿联银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010187710.5/2.html,转载请声明来源钻瓜专利网。