CN111444199B - 数据处理方法及装置、存储介质和处理器 - Google Patents
数据处理方法及装置、存储介质和处理器 Download PDFInfo
- Publication number
- CN111444199B CN111444199B CN201910045558.4A CN201910045558A CN111444199B CN 111444199 B CN111444199 B CN 111444199B CN 201910045558 A CN201910045558 A CN 201910045558A CN 111444199 B CN111444199 B CN 111444199B
- Authority
- CN
- China
- Prior art keywords
- target
- locking
- key
- data
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims description 30
- 230000000694 effects Effects 0.000 claims description 9
- 238000005096 rolling process Methods 0.000 claims description 7
- 238000010200 validation analysis Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 claims 2
- 238000012986 modification Methods 0.000 abstract description 16
- 230000004048 modification Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法及装置、存储介质和处理器,该方法包括:确定对数据库中的目标行进行更新操作;在更新操作在数据库事务中的情况下,对执行更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,主键ID为目标行的主键ID;根据目标行的主键ID对目标行执行更新操作,并对合成的键值进行加锁,其中,合成的键值由数据库的标识信息ID、目标行所在的数据表的标识信息ID和主键ID构成;在加锁成功的情况下,提交数据库事务,以使目标行的更新操作生效。本发明解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据处理方法及装置、存储介质和处理器。
背景技术
在供应链或物流场景下,一个正常业务流程通常会包含多个服务的调用,服务中往往会有很多数据更新操作,例如,卖家入库的操作中,需要对部分业务数据进行更新。如果业务执行中出现问题(比如网络超时、宕机等),通常需要调用服务的反向接口去订正已经做过的更新操作。如果订正前,数据已经被别的业务调用更改,很可能会出现数据错误,多数情况下需要人工订正,造成很大业务压力和资源浪费,也影响用户体验。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据处理方法及装置、存储介质和处理器,以至少解决业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
根据本发明实施例的一个方面,提供了一种数据处理方法,包括:确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
进一步地,在得到主键ID之前,所述方法还包括:判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
进一步地,对执行所述更新操作的SQL语句进行解析,得到主键ID包括:判断所述SQL语句中的目标语句中是否已经指定了主键;若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
进一步地,若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
进一步地,基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
进一步地,对合成的键值进行加锁,包括:将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;在所述缓存中对所述合成的键值进行加锁。
进一步地,在所述缓存中对所述合成的键值进行加锁包括:若加锁失败,则开始计时;若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
根据本发明实施例的一个方面,提供了一种数据处理装置,包括:确定单元,用于确定对数据库中的目标行进行更新操作;获取单元,用于在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;加锁单元,用于根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;生效单元,用于在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
进一步地,所述装置还包括:判断单元,用于在得到主键ID之前,判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;启动单元,用于在不在所述数据库事务中的情况下,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
进一步地,所述获取单元还包括:判断模块,用于判断所述SQL语句中的目标语句中是否已经指定了主键;第一获取模块,用于在所述SQL语句中的目标语句中已经指定了主键的情况下,则获取所述主键ID;构建查询模块,用于在所述SQL语句中的目标语句中未指定主键的情况下,则基于所述目标语句构建查询语句;第二获取模块,用于基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
进一步地,所述装置还包括:第一执行单元,用于在所述目标语句中已经指定了所述主键的情况下,对所述目标行执行所述更新操作。
进一步地,所述装置还包括:第二执行单元,用于基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
进一步地,所述加锁单元包括:发送模块,用于将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;加锁模块,用于在所述缓存中对所述合成的键值进行加锁。
进一步地,所述加锁模块还包括:计时子模块,用于若加锁失败,则开始计时;加锁子模块,用于在计时时间到达预设时间时的情况下,则重新对所述合成的键值进行加锁;回滚子模块,用于在重新加锁次数超过预设次数的情况下,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
根据本发明实施例的一个方面,提供了一种数据库的数据更新处理方法,包括:确定对数据库中的目标数据进行更新操作;在所述更新操作在数据库事务中的情况下,获取所述目标数据的主键ID;根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效。
进一步地,根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效包括:根据所述目标数据的主键ID对所述目标数据执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标数据所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标数据的更新操作生效。
根据本发明实施例的一个方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行任意一项所述的数据处理方法。
根据本发明实施例的一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的数据处理方法。
在本发明实施例中,通过确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效,达到了高性能地实现数据并发修改,保证数据一致性的目的,从而实现了高性能地实现数据并发修改的控制与协调的技术效果,进而解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的计算机终端的硬件结构框图;
图2是根据本发明实施例的一种数据处理方法的流程图;
图3是根据本发明实施例的一种可选的数据处理方法的示意图;
图4是根据本发明实施例的一种数据处理装置的示意图;
图5是根据本发明实施例的一种数据库的数据更新处理方法的流程图;以及
图6是根据本发明实施例的可选的计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
分布式锁:分布式环境下,多台机器上多个进程对同一个数据进行操作的互斥,需要用分布式锁控制多个进程对数据的并发读写。
数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。
分布式事务:涉及来自两个或多个源的资源的事务。
实施例1
根据本发明实施例,提供了一种数据处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Control ler,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图2所示的数据处理方法。图2是根据本发明实施例一的数据处理方法的流程图。
步骤S201,确定对数据库中的目标行进行更新操作;
步骤S202,在更新操作在数据库事务中的情况下,对执行更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,主键ID为目标行的主键ID;
步骤S203,根据目标行的主键ID对目标行执行更新操作,并对合成的键值进行加锁,其中,合成的键值由数据库的标识信息ID、目标行所在的数据表的标识信息ID和主键ID构成;
步骤S204,在加锁成功的情况下,提交数据库事务,以使目标行的更新操作生效。
本发明实施例一提供的数据处理方法的处理逻辑是对它所更新的所有数据加分布式锁,在加锁成功的情况下,对更新的数据进行生效,在加锁失败或加锁超时的时候释放分布式锁,避免了多次业务调用并发修改相同数据造成无法正确回滚。
在本发明实施例一提供的数据处理方法中,通过确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效,达到了高性能地实现数据并发修改,保证数据一致性的目的,从而实现了高性能地实现数据并发修改的控制与协调的技术效果,进而解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
可选地,在本发明实施例一提供的数据处理方法中,在得到主键ID之前,该方法还包括:判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
为了保证数据回滚的准确性,在本发明实施例一提供的数据处理方法中,将执行更新操作的SQL语句与数据库建立的连接保存在数据库事务中,若对合成的键值进行加锁失败,则采用数据库事务的本身属性进行数据回滚,回滚至数据更新前的数据,以保证数据的一致性。若对合成的键值进行加锁成功,则采用数据库事务的本身属性对更新后的数据进行生效。
可选地,在本发明实施例一提供的数据处理方法中,对执行更新操作的SQL语句进行解析,得到主键ID包括:判断SQL语句中的目标语句中是否已经指定了主键;若SQL语句中的目标语句中已经指定了主键,则获取主键ID;若SQL语句中的目标语句中未指定主键,则基于目标语句构建查询语句;基于查询语句确定在数据表中影响行的主键,获取影响行的主键ID作为主键ID。
上述的SQL语句中的目标语句可以为where子句,判断where子句是否已经指定主键,若where子句中已经指定了主键,则执行原始SQL。若SQL语句中的目标语句中未指定主键,则基于where子句构建查询语句;基于查询语句确定在数据表中影响行的主键,对影响行执行更新操作,并获取影响行的主键ID作为主键ID。
可选地,在本发明实施例一提供的数据处理方法中,对合成的键值进行加锁,包括:将数据库的标识信息ID、目标行所在的数据表的标识信息ID和主键ID发送至缓存中;在缓存中对合成的键值进行加锁。
上述的对合成的键值进行加锁,可以为调用构建的基于redis的分布式锁接口进行加锁操作。
可选地,在本发明实施例一提供的数据处理方法中,在缓存中对合成的键值进行加锁包括:若加锁失败,则开始计时;若计时时间到达预设时间时,则重新对合成的键值进行加锁;若重新加锁次数超过预设次数,则回滚数据库事务,以使目标行的数据回滚至开启数据库事务前。
上述的预设时间可以为1ms,在休眠1ms后,继续进行重试加锁操作,重试次数减一,若重新加锁次数超过预设次数(例如10次),则回滚数据库事务,以使目标行的数据回滚至开启数据库事务前。
如图3所示,图3是根据本发明实施例的一种可选的数据处理方法的示意图。一次业务调用,会分配一个全局唯一的traceid,通常业务调用会包含多个服务的调用,traceid会透传到服务提供者。
首先判断SQL是否为update,如果不是update,直接执行SQL,无需加锁,本发明解决的是并发update造成的数据写脏而回滚错误问题。对于update,首先判断这条SQL是否已经在数据库事务(auto commit=false),如果不是则开启数据库事务。然后对SQL进行语法解析,得到语法树信息,判断where子句是否已经指定了主键(比如“update…where id=10001”,假定id为主键,则这个where子句已经确定了是对键值为10001这行记录进行修改)。如果where子句已经指定主键,则执行原始SQL,并用库ID+表ID+表主键值合成的key值。
上述的库ID是系统预先对参与的所有关系数据库进行的统一编号,用两个字节表示;表ID是系统对某个库中所有参与的表进行统一编号,用两个字节表示;后面的字节是表的某个主键值。库ID+表ID+表主键值共同构成一个全局的用于加锁的key,如果update修改了多行,则对每行构建一个全局的用于加锁key和value值(value为traceid),调用构建的基于redis的分布式锁接口进行加锁操作。
需要说明的是,本发明提供的数据处理方法不依赖于特定分布式锁系统,对于常见的基于zookeeper或是redis或是其它技术的分布式锁都是兼容的。如果where子句没有指定主键(比如“update tb set status=2where value>9000”),需要分析出这个update会影响到哪些行。首先是自动构建查询语句,以上面SQL为例,假定主键为“id”,则构建出“select id from tb where value>9000for update”,执行并得到影响的行的主键。假定查出来value超过9000的行包括id=117和id=119的两行。然后把原始update的where子句用主键值替换并执行,构建出的SQL为“update tb set status=2where id in(117,119)”。然后用库ID拼接表ID拼接主键值合成的key值加分布式锁。如果加锁成功,则提交数据库事务。在整个业务调用结束并释放分布式锁前,别的业务调用无法更新此数据。(上例中的数据库的表名为tb的表中,id为117和119这两行)。如果加锁失败(上例中的id为117或119的记录,已经在别的业务调用中update,并且业务调用尚未完成),则休眠1毫秒并重试加锁。重试加锁成功,则提交数据库事务。如果重试失败,并且次数超过指定次数(默认10次),则认为业务调用失败,回滚数据库事务并由业务调用的发起端释放它所加的所有锁,也就是释放value为本次业务调用traceid的所有分布式锁,这样就不会阻塞别的业务调用对它所更新过的数据的再次更新。
本发明提供的数据处理方法采用一种轻量级的数据一致性的方案,以极低的业务侵入性,开发改造成本很低,高性能地实现数据并发修改的控制与协调。通过数据测试,验证了技术方案的可行性,同时测试结果表明此方案也具有高性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据处理方法的装置,如图4所示,该装置包括:确定单元401、获取单元402、加锁单元403和生效单元404。
具体地,确定单元401,用于确定对数据库中的目标行进行更新操作;
获取单元402,用于在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;
加锁单元403,用于根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;
生效单元404,用于在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
在本发明实施例二提供的数据处理装置中,通过确定单元401确定对数据库中的目标行进行更新操作;获取单元402在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;加锁单元403根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;生效单元404在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效,达到了高性能地实现数据并发修改,保证数据一致性的目的,从而实现了高性能地实现数据并发修改的控制与协调的技术效果,进而解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
可选地,在本发明实施例二提供的数据处理装置中,该装置还包括:判断单元,用于在得到主键ID之前,判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;启动单元,用于在不在所述数据库事务中的情况下,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
可选地,在本发明实施例二提供的数据处理装置中,该获取单元402还包括:判断模块,用于判断SQL语句中的目标语句中是否已经指定了主键;第一获取模块,用于在SQL语句中的目标语句中已经指定了主键的情况下,则获取主键ID;构建查询模块,用于在SQL语句中的目标语句中未指定主键的情况下,则基于目标语句构建查询语句;第二获取模块,用于基于查询语句确定在数据表中影响行的主键,获取影响行的主键ID作为主键ID。
可选地,在本发明实施例二提供的数据处理装置中,该装置还包括:第一执行单元,用于在目标语句中已经指定了主键的情况下,对目标行执行更新操作。
可选地,在本发明实施例二提供的数据处理装置中,该装置还包括:第二执行单元,用于基于查询语句确定数据表中影响行的主键,对影响行执行更新操作。
可选地,在本发明实施例二提供的数据处理装置中,该加锁单元403包括:发送模块,用于将数据库的标识信息ID、目标行所在的数据表的标识信息ID和主键ID发送至缓存中;加锁模块,用于在缓存中对合成的键值进行加锁。
可选地,在本发明实施例二提供的数据处理装置中,该加锁模块还包括:计时子模块,用于若加锁失败,则开始计时;加锁子模块,用于在计时时间到达预设时间时的情况下,则重新对合成的键值进行加锁;回滚子模块,用于在重新加锁次数超过预设次数的情况下,则回滚数据库事务,以使目标行的数据回滚至开启数据库事务前。
此处需要说明的是,上述确定单元401、获取单元402、加锁单元403和生效单元404对应于实施例1中的步骤S201至步骤S204,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
实施例3
本申请提供了如图5所示的一种数据库的数据更新处理方法。图5是根据本发明实施例三的数据库的数据更新处理方法的流程图。
步骤501,确定对数据库中的目标数据进行更新操作;
步骤502,在所述更新操作在数据库事务中的情况下,获取所述目标数据的主键ID;
步骤503,根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效。
在本发明实施例三提供的数据库的数据更新处理方法中,通过确定对数据库中的目标数据进行更新操作;在所述更新操作在数据库事务中的情况下,获取所述目标数据的主键ID;根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效,达到了高性能地实现数据并发修改,保证数据库的数据一致性的目的,从而实现了数据库高性能地实现数据并发修改的控制与协调的技术效果,进而解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
可选地,在本发明实施例三提供的数据库的数据更新处理方法中,根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效包括:根据所述目标数据的主键ID对所述目标数据执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标数据所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标数据的更新操作生效。
本发明实施例三提供的数据库的数据更新处理方法采用一种轻量级的数据一致性的方案,以极低的业务侵入性,开发改造成本很低,高性能地实现数据并发修改的控制与协调。通过数据测试,验证了技术方案的可行性,同时测试结果表明此方案也具有高性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例4
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的数据处理方法中以下步骤的程序代码:确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:在得到主键ID之前,所述方法还包括:判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:对执行所述更新操作的SQL语句进行解析,得到主键ID包括:判断所述SQL语句中的目标语句中是否已经指定了主键;若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:对合成的键值进行加锁,包括:将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;在所述缓存中对所述合成的键值进行加锁。
上述计算机终端还可以执行应用程序的数据处理方法中以下步骤的程序代码:在所述缓存中对所述合成的键值进行加锁包括:若加锁失败,则开始计时;若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
可选地,图6是根据本发明实施例的一种计算机终端的结构框图。如图6所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器和存储器。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
可选的,上述处理器还可以执行如下步骤的程序代码:在得到主键ID之前,所述方法还包括:判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
可选的,上述处理器还可以执行如下步骤的程序代码:对执行所述更新操作的SQL语句进行解析,得到主键ID包括:判断所述SQL语句中的目标语句中是否已经指定了主键;若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
可选的,上述处理器还可以执行如下步骤的程序代码:若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
可选的,上述处理器还可以执行如下步骤的程序代码:基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
可选的,上述处理器还可以执行如下步骤的程序代码:对合成的键值进行加锁,包括:将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;在所述缓存中对所述合成的键值进行加锁。
可选的,上述处理器还可以执行如下步骤的程序代码:在所述缓存中对所述合成的键值进行加锁包括:若加锁失败,则开始计时;若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
采用本发明实施例,提供了一种数据处理的方案。通过确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效,达到了高性能地实现数据并发修改,保证数据一致性的目的,从而实现了高性能地实现数据并发修改的控制与协调的技术效果,进而解决了业务运行中并发修改数据,而无法正常回滚所导致的数据不一致的技术问题。
本领域普通技术人员可以理解,图6所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobi leInternet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例5
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定对数据库中的目标行进行更新操作;在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:在得到主键ID之前,所述方法还包括:判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:对执行所述更新操作的SQL语句进行解析,得到主键ID包括:判断所述SQL语句中的目标语句中是否已经指定了主键;若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:对合成的键值进行加锁,包括:将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;在所述缓存中对所述合成的键值进行加锁。
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:在所述缓存中对所述合成的键值进行加锁包括:若加锁失败,则开始计时;若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
确定对数据库中的目标行进行更新操作;
在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;
根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;
在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效;
其中,对合成的键值进行加锁,包括:
将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;
在所述缓存中对所述合成的键值进行加锁;
其中,在所述缓存中对所述合成的键值进行加锁包括:
若加锁失败,则开始计时;
若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;
若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
2.根据权利要求1所述的数据处理方法,其特征在于,在得到主键ID之前,所述方法还包括:
判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;
若不在所述数据库事务中,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
3.根据权利要求1所述的数据处理方法,其特征在于,对执行所述更新操作的SQL语句进行解析,得到主键ID包括:
判断所述SQL语句中的目标语句中是否已经指定了主键;
若所述SQL语句中的目标语句中已经指定了主键,则获取所述主键ID;
若所述SQL语句中的目标语句中未指定主键,则基于所述目标语句构建查询语句;
基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
4.根据权利要求3所述的数据处理方法,其特征在于,若所述目标语句中已经指定了所述主键,对所述目标行执行所述更新操作。
5.根据权利要求3所述的数据处理方法,其特征在于,基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
6.一种数据处理装置,其特征在于,包括:
确定单元,用于确定对数据库中的目标行进行更新操作;
获取单元,用于在所述更新操作在数据库事务中的情况下,对执行所述更新操作的结构化查询语言SQL语句进行解析,得到主键ID,其中,所述主键ID为所述目标行的主键ID;
加锁单元,用于根据所述目标行的主键ID对所述目标行执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID构成;
生效单元,用于在加锁成功的情况下,提交所述数据库事务,以使所述目标行的更新操作生效;
其中,所述加锁单元包括:
发送模块,用于将所述数据库的标识信息ID、所述目标行所在的数据表的标识信息ID和所述主键ID发送至缓存中;
加锁模块,用于在所述缓存中对所述合成的键值进行加锁;
其中,所述加锁模块还包括:
计时子模块,用于若加锁失败,则开始计时;
加锁子模块,用于在计时时间到达预设时间时的情况下,则重新对所述合成的键值进行加锁;
回滚子模块,用于在重新加锁次数超过预设次数的情况下,则回滚所述数据库事务,以使所述目标行的数据回滚至开启所述数据库事务前。
7.根据权利要求6所述的数据处理装置,其特征在于,所述装置还包括:
判断单元,用于在得到主键ID之前,判断执行所述更新操作的所述SQL语句与所述数据库建立的连接是否在所述数据库事务中;
启动单元,用于在不在所述数据库事务中的情况下,则开启所述数据库事务,以使所述更新操作在所述数据库事务中。
8.根据权利要求6所述的数据处理装置,其特征在于,所述获取单元还包括:
判断模块,用于判断所述SQL语句中的目标语句中是否已经指定了主键;
第一获取模块,用于在所述SQL语句中的目标语句中已经指定了主键的情况下,则获取所述主键ID;
构建查询模块,用于在所述SQL语句中的目标语句中未指定主键的情况下,则基于所述目标语句构建查询语句;
第二获取模块,用于基于所述查询语句确定在所述数据表中影响行的主键,获取所述影响行的主键ID作为所述主键ID。
9.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
第一执行单元,用于在所述目标语句中已经指定了所述主键的情况下,对所述目标行执行所述更新操作。
10.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
第二执行单元,用于基于所述查询语句确定所述数据表中影响行的主键,对所述影响行执行所述更新操作。
11.一种数据库的数据更新处理方法,其特征在于,包括:
确定对数据库中的目标数据进行更新操作;
在所述更新操作在数据库事务中的情况下,获取所述目标数据的主键ID;
根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效;
其中,根据所述目标数据的主键ID对所述目标数据执行更新操作,提交所述数据库事务,以使所述目标数据的更新操作生效包括:
根据所述目标数据的主键ID对所述目标数据执行更新操作,并对合成的键值进行加锁,其中,所述合成的键值由所述数据库的标识信息ID、所述目标数据所在的数据表的标识信息ID和所述主键ID构成;
在加锁成功的情况下,提交所述数据库事务,以使所述目标数据的更新操作生效;
其中,对合成的键值进行加锁,包括:
将所述数据库的标识信息ID、所述目标数据所在的数据表的标识信息ID和所述主键ID发送至缓存中;
在所述缓存中对所述合成的键值进行加锁;
其中,在所述缓存中对所述合成的键值进行加锁包括:
若加锁失败,则开始计时;
若计时时间到达预设时间时,则重新对所述合成的键值进行加锁;
若重新加锁次数超过预设次数,则回滚所述数据库事务,以使所述目标数据回滚至开启所述数据库事务前。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的数据处理方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910045558.4A CN111444199B (zh) | 2019-01-17 | 2019-01-17 | 数据处理方法及装置、存储介质和处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910045558.4A CN111444199B (zh) | 2019-01-17 | 2019-01-17 | 数据处理方法及装置、存储介质和处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444199A CN111444199A (zh) | 2020-07-24 |
CN111444199B true CN111444199B (zh) | 2023-11-14 |
Family
ID=71627202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910045558.4A Active CN111444199B (zh) | 2019-01-17 | 2019-01-17 | 数据处理方法及装置、存储介质和处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444199B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051042B (zh) * | 2021-01-25 | 2024-04-19 | 北京思特奇信息技术股份有限公司 | 基于zookeeper的事务实现方法及系统 |
CN112905614B (zh) * | 2021-02-19 | 2024-04-12 | 中国邮政储蓄银行股份有限公司 | 数据更新方法及装置、电子设备、计算机可读存储介质 |
CN114328549B (zh) * | 2021-12-16 | 2023-04-28 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955804A (zh) * | 2016-04-22 | 2016-09-21 | 星环信息科技(上海)有限公司 | 一种处理分布式事务的方法与设备 |
CN106033437A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及系统 |
WO2016180164A1 (zh) * | 2015-09-29 | 2016-11-17 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
WO2017080431A1 (zh) * | 2015-11-12 | 2017-05-18 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | 中国移动通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN108132831A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 任务的处理方法和处理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386449B2 (en) * | 2005-01-27 | 2013-02-26 | International Business Machines Corporation | Customer statistics based on database lock use |
-
2019
- 2019-01-17 CN CN201910045558.4A patent/CN111444199B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106033437A (zh) * | 2015-03-13 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种分布式事务处理方法及系统 |
WO2016180164A1 (zh) * | 2015-09-29 | 2016-11-17 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
WO2017080431A1 (zh) * | 2015-11-12 | 2017-05-18 | 中国银联股份有限公司 | 一种基于日志解析的数据库复制方法及装置 |
CN105955804A (zh) * | 2016-04-22 | 2016-09-21 | 星环信息科技(上海)有限公司 | 一种处理分布式事务的方法与设备 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | 中国移动通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN108132831A (zh) * | 2016-12-01 | 2018-06-08 | 阿里巴巴集团控股有限公司 | 任务的处理方法和处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111444199A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3435235B1 (en) | Method and device for executing data recovery operation | |
CN111444199B (zh) | 数据处理方法及装置、存储介质和处理器 | |
US8762929B2 (en) | System and method for exclusion of inconsistent objects from lifecycle management processes | |
US20140006459A1 (en) | Rule-based automated test data generation | |
WO2009146558A1 (en) | System and method for building a data warehouse | |
CN111522631B (zh) | 分布式事务处理方法、装置、服务器及介质 | |
US20140289243A1 (en) | Method and system for centralized issue tracking | |
CN111753013A (zh) | 分布式事务处理方法及装置 | |
CN111198769A (zh) | 信息处理方法及其系统、计算机系统及计算机可读介质 | |
WO2012052215A1 (en) | Software development | |
CN108415758B (zh) | 分布式事务协调方法及装置 | |
CN112100078A (zh) | 一种生成接口测试用例的方法、装置及设备 | |
US11194616B2 (en) | Method, apparatus and system for simultaneously transmitting or receiving multiple managed objects | |
CN109597819B (zh) | 用于更新数据库的方法和装置 | |
CN112671878A (zh) | 一种区块链的信息订阅方法、装置、服务器和存储介质 | |
CN110839064A (zh) | 一种分布式系统执行脚本的方法及装置 | |
CN116226078A (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
US20210263911A1 (en) | Smart repository based on relational metadata | |
CN113986941A (zh) | 事务批量处理方法及装置 | |
CN109901933B (zh) | 业务系统的操作方法及装置、存储介质、电子装置 | |
CN113568834A (zh) | Sdk代码的兼容性检测方法、装置、计算机设备和介质 | |
CN112686759A (zh) | 对账监测方法、装置、设备及介质 | |
CN110609790A (zh) | 解析程序测试方法、装置、介质和计算机设备 | |
CN115729946B (zh) | 一种处理分布式事务的方法、装置、设备及存储介质 | |
CN113094379B (zh) | 锚定式用户数据维护方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |