CN110162532B - 交易数据处理方法和设备 - Google Patents
交易数据处理方法和设备 Download PDFInfo
- Publication number
- CN110162532B CN110162532B CN201910385080.XA CN201910385080A CN110162532B CN 110162532 B CN110162532 B CN 110162532B CN 201910385080 A CN201910385080 A CN 201910385080A CN 110162532 B CN110162532 B CN 110162532B
- Authority
- CN
- China
- Prior art keywords
- data
- data change
- adjustment
- change operation
- target
- 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
Images
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
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种交易数据处理方法和设备,其中,该方法包括:接收对目标数据的同一数据变动操作的多个并发的请求操作;获取所述数据变动操作的标识信息和处理状态;在所述数据变动操作的处理状态为待调整的情况下,生成全局锁;将所述全局锁分配给所述多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;对所述目标数据进行调整;在调整成功情况下,将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁。通过上述方案,使得在并发汇总场景下,当一个数据变动操作有多个并发的请求操作时,仅有一个请求操作可以获得全局锁,并且成功调整的数据变动操作不具备生成全局锁的条件,保证了交易数据处理的幂等性。
Description
技术领域
本申请涉及金融技术领域,特别涉及一种交易数据处理方法和设备。
背景技术
在银行系统中,流动性管理是防范流动性风险的关键。要准确地管理流动性,要点在于合理地清算账户头寸和安排流动性资金。其中,头寸也称为“头衬”,是款项的意思,头寸明细记录来源多样、数据量大,在汇总时,需要保证幂等性,对一笔头寸,做一次汇总操作,和做多次汇总操作,产生的结果都应等价于一次成功的汇总操作。
现有技术中一般是采用批量式汇总的方法对头寸进行汇总,即设置一个定时任务,在预定的时间内,统计系统中等待进行汇总的头寸,生成一个汇总报表,对汇总报表中的头寸进行并发汇总。在上述方案中,在并发汇总场景下,当多个汇总操作并发对一笔头寸进行汇总时,存在头寸重复汇总的可能性,不满足头寸汇总的幂等性,无法保证头寸汇总的正确性。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种交易数据处理方法和设备,以解决现有技术中在并发汇总场景下,无法保证头寸汇总正确性的问题。
本申请实施例提供了一种交易数据处理方法,包括:接收对目标数据的同一数据变动操作的多个并发的请求操作;获取所述数据变动操作的标识信息和处理状态;在所述数据变动操作的处理状态为待调整的情况下根据所述数据变动操作的标识信息和处理状态,生成全局锁;将所述全局锁分配给所述多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;根据所述选定的请求操作,对所述目标数据进行调整;在调整成功情况下,将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁。
在一个实施例中,在根据所述选定的请求操作,对所述目标数据进行调整之后,还包括:确定对所述目标数据的调整是否成功完成;在确定未成功完成的情况下,删除根据所述选定的请求操作,对所述目标数据的调整;释放所述全局锁;将所述全局锁重新分配给所述多个并发的请求操作中的一个请求操作。
在一个实施例中,在将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁之后,还包括:确定对所述目标数据的调整是否成功完成;在确定成功完成的情况下,删除所述多个并发的请求操作中除选定的请求操作之外的请求操作。
在一个实施例中,根据所述选定的请求操作,对所述目标数据进行调整,包括:在所述选定的请求操作包括多个调整维度的情况下,确定所述选定的请求操作的多个调整维度;确定所述多个调整维度的加锁顺序;对所述选定的请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;在所述选定的请求操作的多个调整维度均加锁成功的情况下,在所述多个调整维度上对所述目标数据进行调整;按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁。
在一个实施例中,在所述数据变动操作的处理状态为待调整的情况下,根据所述数据变动操作的标识信息和处理状态,生成全局锁,包括:根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;在成功获取所述操作数据的情况下,生成所述全局锁。
在一个实施例中,根据所述选定的请求操作,对所述目标数据进行调整,包括:根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;在所述操作数据获取成功的情况下,根据所述选定的请求操作和所述操作数据,对所述目标数据进行调整。
本申请实施例还提供了一种交易数据处理方法,包括:接收对目标数据的数据变动操作的目标请求操作;确定所述目标请求操作的多个调整维度;确定所述多个调整维度的加锁顺序;对所述目标请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;在所述目标请求操作的多个调整维度均加锁成功的情况下,在所述目标请求操作的各个调整维度上对所述目标数据进行调整;按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁。
在一个实施例中,在确定目标数据的数据变动操作的多个调整维度之前,还包括:获取所述数据变动操作的标识信息和处理状态;根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;在所述操作数据获取成功,并且所述数据变动操作的处理状态为待调整的情况下,生成全局锁;将所述全局锁分配给所述目标请求操作。
在一个实施例中,在释放调整成功的调整维度上的锁之后,还包括:确定所述多个调整维度各个调整维度上对所述目标数据的调整是否均成功完成;在确定未均成功完成的情况下,删除所述多个调整维度中各个维度上,对所述目标数据的调整;按与所述加锁顺序相反的顺序释放所述多个调整维度上的锁;释放所述目标请求操作的全局锁。
在一个实施例中,在释放调整成功的调整维度上的锁之后,还包括:确定所述多个调整维度各个调整维度上对所述目标数据的调整是否均成功完成;在确定均成功完成的情况下,将所述数据变动操作的处理状态修改为已调整;释放所述全局锁。
本申请实施例还提供了一种交易数据处理方法,包括:接收对目标数据的多个数据变动操作的请求操作;确定所述多个数据变动操作的处理状态;根据所述多个数据变动操作的处理状态,建立第一集合和第二集合,其中,所述第一集合中各个数据变动操作的处理状态为待调整;根据所述第一集合中的多个数据变动操作的请求操作,对所述目标数据进行调整;按照预定的时间间隔,对所述第二集合中的多个数据变动操作的处理状态进行查询;将查询得到的所述第二集合中数据变动操作的处理状态为待调整的数据变动操作的请求操作,添加至第一集合中。
在一个实施例中,在将查询得到的所述第二集合中数据变动操作的处理状态变更为待调整的数据变动操作的请求操作,添加至待第一集合中之后,还包括:根据从第二集合添加至第一集合中的数据变动操作的请求操作,对所述目标数据进行调整。
本申请实施例还提供了一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述指令被执行时实现如下步骤:接收对目标数据的同一数据变动操作的多个并发的请求操作;获取所述数据变动操作的标识信息和处理状态;在所述数据变动操作的处理状态为待调整的情况下根据所述数据变动操作的标识信息和处理状态,生成全局锁;将所述全局锁分配给所述多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;根据所述选定的请求操作,对所述目标数据进行调整;在调整成功情况下,将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁。
本申请实施例还提供了一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述指令被执行时实现如下步骤:接收对目标数据的数据变动操作的目标请求操作;确定所述目标请求操作的多个调整维度;确定所述多个调整维度的加锁顺序;对所述目标请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;在所述目标请求操作的多个调整维度均加锁成功的情况下,在所述目标请求操作的各个调整维度上对所述目标数据进行调整;按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁。
本申请实施例还提供了一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述指令被执行时实现如下步骤:接收对目标数据的多个数据变动操作的请求操作;确定所述多个数据变动操作的处理状态;根据所述多个数据变动操作的处理状态,建立第一集合和第二集合,其中,所述第一集合中各个数据变动操作的处理状态为待调整;根据所述第一集合中的多个数据变动操作的请求操作,对所述目标数据进行调整;按照预定的时间间隔,对所述第二集合中的多个数据变动操作的处理状态进行查询;将查询得到的所述第二集合中数据变动操作的处理状态为待调整的数据变动操作的请求操作,添加至第一集合中。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下步骤:接收对目标数据的同一数据变动操作的多个并发的请求操作;获取所述数据变动操作的标识信息和处理状态;在所述数据变动操作的处理状态为待调整的情况下根据所述数据变动操作的标识信息和处理状态,生成全局锁;将所述全局锁分配给所述多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;根据所述选定的请求操作,对所述目标数据进行调整;在调整成功情况下,将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下步骤:所述指令被执行时实现如下步骤:接收对目标数据的数据变动操作的目标请求操作;确定所述目标请求操作的多个调整维度;确定所述多个调整维度的加锁顺序;对所述目标请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;在所述目标请求操作的多个调整维度均加锁成功的情况下,在所述目标请求操作的各个调整维度上对所述目标数据进行调整;按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下步骤:接收对目标数据的多个数据变动操作的请求操作;确定所述多个数据变动操作的处理状态;根据所述多个数据变动操作的处理状态,建立第一集合和第二集合,其中,所述第一集合中各个数据变动操作的处理状态为待调整;根据所述第一集合中的多个数据变动操作的请求操作,对所述目标数据进行调整;按照预定的时间间隔,对所述第二集合中的多个数据变动操作的处理状态进行查询;将查询得到的所述第二集合中数据变动操作的处理状态为待调整的数据变动操作的请求操作,添加至第一集合中。
本申请实施例提供了一种交易数据处理方法,通过接收对目标数据的同一数据变动操作的多个并发的请求操作,并在数据变动操作的处理状态为待调整的情况下,根据数据变动操作的标识信息和处理状态,生成全局锁;将全局锁分配给多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作,使得在并发汇总场景下,当一个数据变动操作有多个并发的请求操作时,有且仅有一个请求操作可以获得全局锁,对目标数据进行调整;在对目标数据调整成功情况下,将数据变动操作的处理状态修改为已调整,使得已成功调整数据变动操作不再具备生成全局锁的条件,即除选定的请求操作之外的其它并发的请求操作无法获得全局锁对目标数据进行调整,保证了交易数据处理的幂等性,进而提高了交易数据处理的正确性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1是根据本发明实施例提供的交易数据处理方法的步骤示意图;
图2是根据本发明实施例提供的交易数据处理方法的步骤示意图;
图3是根据本发明实施例提供的交易数据处理方法的步骤示意图;
图4是根据本发明具体实施例提供的交易数据处理方法的示意图;
图5是根据本发明具体实施例提供的并发汇总调度过程的示意图;
图6是根据本发明实施例提供的交易数据处理电子设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
考虑到现有的对头寸进行汇总的技术方案中,在并发汇总场景下,当多个汇总操作并发对一笔头寸进行汇总时,存在头寸重复汇总的可能性,不满足头寸汇总的幂等性,无法保证头寸汇总的正确性。其中,幂等性为对一笔头寸,做一次汇总操作,和做多次汇总操作,产生的结果都等价于一次成功的汇总操作。
基于以上问题,本申请实施例提供了一种交易数据处理方法,如图1所示,可以包括以下步骤:
S101:接收对目标数据的同一数据变动操作的多个并发的请求操作。
在并发的场景下,会存在对于目标数据的同一数据变动操作有着多个并发的请求操作,接收上述多个并发的请求操作。其中,上述数据变动操作,可以为一笔头寸。
进一步的,对不同数据变动操作的请求操作,可以并行执行,互不干扰,以保证交易数据处理的处理效率。
S102:获取数据变动操作的标识信息和处理状态。
每个数据变动操作通过一个唯一字符串来标识,每个数据变动操作对应的唯一字符串即为该数据变动操作的标识信息。在一个实施例中,可以采用的唯一标识生成器来生成,并需要确保在业务系统的应用范围内不会发生冲突。
进一步的,每个数据变动操作都有其相应的处理状态,其中,上述处理状态可以包括但不限于:正常、待复核、复核退回、Nostro错误、Vostro错误,假日异常、倒起息、超时已预报、超时未预报、待调整。只有处理状态为“待调整”的数据变动操作可以立即进行调整操作,并且只有处理状态为“待调整”的数据变动操作具备生成全局锁的条件。
S103:在所述数据变动操作的处理状态为待调整的情况下,根据数据变动操作的标识信息和处理状态,生成全局锁。
根据上述数据变动操作的表示信息和处理状态,获取上述数据变动操作的操作数据以及目标数据,在成功获取上述操作数据以及目标数据的情况下,并且当上述数据变动操作的处理状态为“待调整”时,针对该数据变动操作生成一个全局锁。
进一步的,在获取上述操作数据和目标数据中任意一个数据失败的情况下,则上述数据变动操作不具备生成全局锁的条件。在另一种可能的情况下,成功获取了上述操作数据以及目标数据,但是上述数据变动操作的处理状态为“待调整”,该数据变动操作也不具备生成全局锁的条件。
其中,当对目标数据的数据变动操作有且仅有一个请求操作的情况下,在确定该数据变动操作的处理状态为待调整,并且成功获取该数据变动操作的操作数据以及目标数据的情况下,可以直接将全局锁分配给该请求操作,对目标数据进行相应的调整操作。
S104:将全局锁分配给多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作。
在上述数据变动操作具备生成全局锁的情况下,生成一个全局锁,上述多个并发的请求操作同时竞争上述全局锁,此时有且仅有一个请求操作可以竞争成功,其它请求操作均处于阻塞状态。将全局锁分配给上述竞争成功的请求操作,并将上述竞争成功的请求操作作为选定的请求操作。
S105:根据选定的请求操作,对目标数据进行调整。
在对目标数据进行调整前,根据上述数据变动操作的表示信息和处理状态,获取上述数据变动操作的操作数据以及目标数据,在成功获取上述操作数据以及目标数据的情况下,根据上述选定的请求操作、上述操作数据以及目标数据,对目标数据进行调整。
考虑到在实际应用过程中业务人员需要在多个调整维度上,对交易数据进行实时监控,其中,调整维度可以包括但不限于:“账户组-起息日”维度、“T2级机构-币种-起息日”维度、以及“T1级机构-币种-起息日”维度,因此需要根据一个数据变动操作对目标数据,在不同的调整维度上进行调整。而如果仅将所分配给多个调整维度中的某一个调整维度,其它调整维度需要等待上述获得锁的调整维度调整完成后才可获得锁,就会发生死锁的情况,即集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。
为了避免上述可能发生死锁的问题,首先需要保证每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功);其次需要规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。在一个实施例中,可以对所有可能的调整维度规定一个全局排序,确定上述选定的请求操作的多个调整维度,并根据上述全局排序确定上述多个调整维度的加锁顺序,对每个调整维度构建一把锁。其中,上述锁可以为排他锁,用于数据修改操作,确保不会同时同一资源进行多重更新。
进一步的,上述选定的请求操作的多个调整维度中各个调整维度,按照确定的加锁顺序在各个调整维度上加锁。在各个调整维度均加锁成功的情况下,在排他状态下,可以在多个调整维度上并发的对目标数据进行调整,并按照与上述确定的加锁顺序相反的顺序释放多个调整维度上的锁。
其中,可以在按照与上述确定的加锁顺序相反的顺序在多个调整维度上对目标数据进行调整之后,确定上述多个调整维度中各个调整维度上对目标数据的调整是否均成功完成。在确定未均成功完成的情况下,删除多个调整维度中各个调整维度上,对目标数据的所有调整操作数据,按照与上述确定的加锁顺序相反的顺序释放多个调整维度上的锁,并抛出异常,可以添加数据变动操作的本次调整操作的异常记录。
S106:在调整成功情况下,将数据变动操作的处理状态修改为已调整,并释放全局锁。
再根据上述选定的请求操作,对目标数据进行调整之后,可以先确定对所述目标数据的调整是否成功完成,如果确定对目标数据的调整成功完成,将数据变动操作的处理状态修改为已调整,并释放上述全局锁。其中,当数据变动操作的处理状态修改为已调整时,失去生成全局锁的条件,并删除多个并发的请求操作中除选定的请求操作之外的请求操作,可以添加上述数据变动操作的本次调整操作的异常记录,从而使得对于一个数据变动操作存在多个并发请求操作的场景下,可以保证幂等性。
进一步的,考虑到除处理状态为待调整的数据变动操作之外的数据变动操作,不能立即参与汇总。系统可以设置定时任务,根据预先设置的时间间隔,对交易数据库中数据变动操作的处理状态进行分页查询,将查询得到的处理状态为“待调整”的数据变动操作提取出来,采用上述方案对提取出来的数据变动操作进行调整,从而保证了交易数据处理的完整性,使得系统中每个具备调整条件的数据变动操作均可以参与调整。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:通过接收对目标数据的同一数据变动操作的多个并发的请求操作,并在数据变动操作的处理状态为待调整的情况下,根据数据变动操作的标识信息和处理状态,生成全局锁;将全局锁分配给多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作,使得在并发汇总场景下,当一个数据变动操作有多个并发的请求操作时,有且仅有一个请求操作可以获得全局锁,对目标数据进行调整;在对目标数据调整成功情况下,将数据变动操作的处理状态修改为已调整,使得已成功调整数据变动操作不再具备生成全局锁的条件,即除选定的请求操作之外的其它并发的请求操作无法获得全局锁对目标数据进行调整,保证了交易数据处理的幂等性,进而提高了交易数据处理的正确性。
本申请实施例还提供了一种交易数据处理方法,如图2所示,可以包括以下步骤:
S201:接收对目标数据的数据变动操作的目标请求操作。
在接收到对目标数据的数据变动操作的目标请求操作后,获取数据变动操作的标识信息和处理状态,其中,每个数据变动操作通过一个唯一字符串来标识,每个数据变动操作对应的唯一字符串即为该数据变动操作的标识信息。在一个实施例中,可以采用的唯一标识生成器来生成,并需要确保在业务系统的应用范围内不会发生冲突。
进一步的,每个数据变动操作都有其相应的处理状态,其中,上述处理状态可以包括但不限于:正常、待复核、复核退回、Nostro错误、Vostro错误,假日异常、倒起息、超时已预报、超时未预报、待调整。只有处理状态为“待调整”的数据变动操作可以立即进行调整操作,并且只有处理状态为“待调整”的数据变动操作具备生成全局锁的条件。
根据上述数据变动操作的表示信息和处理状态,获取上述数据变动操作的操作数据以及目标数据,在成功获取上述操作数据以及目标数据的情况下,并且当上述数据变动操作的处理状态为“待调整”时,针对该数据变动操作生成一个全局锁,并将全局锁分配给上述目标请求操作。
进一步的,在获取上述操作数据和目标数据中任意一个数据失败的情况下,则上述数据变动操作不具备生成全局锁的条件。在另一种可能的情况下,成功获取了上述操作数据以及目标数据,但是上述数据变动操作的处理状态为“待调整”,该数据变动操作也不具备生成全局锁的条件。
S202:确定目标请求操作的多个调整维度。
考虑到在实际应用过程中业务人员需要在多个调整维度上,对交易数据进行实时监控,其中,调整维度可以包括但不限于:“账户组-起息日”维度、“T2级机构-币种-起息日”维度、以及“T1级机构-币种-起息日”维度,因此需要根据一个数据变动操作对目标数据,在不同的调整维度上进行调整。而如果仅将所分配给多个调整维度中的某一个调整维度,其它调整维度需要等待上述获得锁的调整维度调整完成后才可获得锁,就会发生死锁的情况,即集合中的每一个进程都在等待只能由本集合中的其他进程才能引发的事件,那么该组进程是死锁的。
为了避免上述可能发生死锁的问题,首先需要保证每一个事务必须一次封锁所要使用的全部数据(要么全成功,要么全不成功);其次需要规定封锁数据的顺序,所有事务必须按这个顺序实行封锁。因此,可以先确定目标请求操作的多个调整维度。
S203:确定多个调整维度的加锁顺序。
可以对所有可能的调整维度规定一个全局排序,根据上述确定的目标请求操作的多个调整维度,确定上述多个调整维度的加锁顺序,对每个调整维度构建一把锁。其中,上述锁可以为排他锁,用于数据修改操作,确保不会同时同一资源进行多重更新。
S204:对目标请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁。
上述目标请求操作的多个调整维度中各个调整维度,按照确定的加锁顺序在各个调整维度上加锁。在各个调整维度均加锁成功的情况下,在排他状态下,在多个调整维度上并发的对目标数据进行调整,并按照与上述确定的加锁顺序相反的顺序释放多个调整维度上的锁。
S205:在目标请求操作的多个调整维度均加锁成功的情况下,按与加锁顺序相反的顺序在目标请求操作的各个调整维度上对目标数据进行调整。
可以在目标请求操作的多个调整维度均加锁成功的情况下,可以在多个调整维度上对目标数据进行调整。如果目标请求操作的多个调整维度未均加锁成功,则回退之前的操作,并删除之前的操作数据,可以添加上述数据变动操作的本次调整操作的异常记录。在上述之前的操作数据之后,可以重复S201至S205的操作,直至目标请求操作的多个调整维度均加锁成功。
S206:释放调整成功的调整维度上的锁。
按照与上述确定的加锁顺序相反的顺序,释放多个调整维度中调整成功的调整维度上的锁,并确定上述多个调整维度中各个调整维度上对目标数据的调整是否均成功完成。在确定未均成功完成的情况下,删除多个调整维度中各个调整维度上,对目标数据的所有调整操作数据,并且可以添加数据变动操作的本次调整操作的异常记录。
在确定均成功完成的情况下,将上述数据变动操作的处理状态修改为已调整,并释放上述全局锁。其中,当数据变动操作的处理状态修改为已调整时,失去生成全局锁的条件。
本申请实施例还提供一种交易数据处理方法,如图3所示,可以包括:
S301:接收对目标数据的多个数据变动操作的请求操作。
S302:确定多个数据变动操作的处理状态。
考虑到除处理状态为待调整的数据变动操作之外的数据变动操作,不能立即参与汇总,因此可以确定接收到的对目标数据的多个数据变动操作的处理状态。其中,上述处理状态可以包括但不限于:正常、待复核、复核退回、Nostro错误、Vostro错误,假日异常、倒起息、超时已预报超时未预报、待调整。
S303:根据多个数据变动操作的处理状态,建立第一集合和第二集合,其中,第一集合中各个数据变动操作的处理状态为待调整。
可以根据上述确定的多个数据变动操作的处理状态,建立第一集合和第二集合,将处理状态为“待调整”的数据变动操作的请求操作添加至第一集合中,将处理状态为除“待调整”之外的其它数据变动操作的请求操作添加至第二集合中。
S304:根据第一集合中的多个数据变动操作的请求操作,对目标数据进行调整。
第一集合中的数据变动操作可以立即参与调整,可以根据第一集合中的多个数据变动操作的请求操作,对目标数据进行调整,具体操作步骤可以参照S101~S106以及S201~S206执行。
S305:按照预定的时间间隔,对第二集合中的多个数据变动操作的处理状态进行查询。
为了确保系统中每个具备调整条件的数据变动操作均可以及时参与调整,可以在系统中设置定时任务,根据预先设置的时间间隔,对交易数据库中数据变动操作的处理状态进行分页查询。
S306:将查询得到的第二集合中数据变动操作的处理状态变更为待调整的数据变动操作的请求操作,添加至第一集合中。
可以将上述查询得到的第二集合中数据表动操作的处理状态为“待调整”的数据变动操作,并将其添加至第一集合中。并根据新添加至第一集合中数据变动操作的请求操作对目标数据进行调整,具体操作步骤可以参照S101~S106以及S201~S206执行。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
在本发明实施例中提供了一种交易数据处理方法,如图4所示,可以包括:
步骤1:当汇总指定头寸时,如果指定头寸不相同,各个汇总操作并行进行,互不干扰;若不同的汇总操作并发汇总到同一笔头寸,则此时并发的汇总操作进入竞争态。
步骤2:在竞争态,汇总组件以两个并发的汇总操作对应的特定头寸为依据,生成一把全局锁,两个并发的汇总操作基于该锁进行协调。两个并发汇总操作自由竞争该全局锁,得到锁的那一个汇总操作独享上述特定头寸,其余并发的汇总操作进入到阻塞状态。
进一步的,可以以上述特定头寸的唯一标识和汇总状态作为参数,查找目标头寸数据。如果找到了,并且上述特定头寸的汇总状态为待汇总时,生成一把全局锁,并发汇总同一笔头寸的汇总操作共同竞争这把全局锁。此时,只有一个汇总操作可以拥有这把锁,其余并发的汇总操作都被挡在这把锁外。图4中所示是以两并发为例,本领域技术人员在不付出创造性劳动的情况下还可以得到并发数为其它值的情况,本申请对此不作限定。
其中,系统中头寸的汇总状态包括但不限于:“正常”、“待复核”、“复核退回”、“Nostro错误”、“Vostro错误”,“假日异常”、“倒起息”、“超时已预报”、“超时未预报”、“待汇总”。此外,还有一种反冲头寸,是批量生成的,只有整体提交到数据库后才可以进行汇总。为降低并发汇总同一笔头寸的概率,目前反冲头寸不可以参与立即汇总。为了简化汇总操作的实现,只有汇总状态为“待汇总”的头寸可参与立即汇总,待汇总状态之外的头寸一律不参与汇总。
获得该锁的汇总操作,根据上述特定头寸的唯一标识和待汇总状态,进一步查询上述唯一标识对应的特定头寸是否存在,如果不存在,流程认为输入参数有误,回退操作,释放上述全局锁,并抛出异常。如果存在被标识的特定头寸,则进入排他状态。
步骤3:获得锁的汇总操作,在排他状态下,继续完成剩余的头寸汇总步骤,并追加汇总记录。
由于头寸明细记录和头寸的汇总记录之间存在因果顺序,是多对一关系,业务人员需要按照多种维度,对头寸汇总数据进行实时监控,目前已提出的汇总维度有“账户组-起息日”维度,“T2级机构-币种-起息日”维度,以及“T1级机构-币种-起息日”维度,当对多个头寸并发做汇总时,若出现多笔头寸对应到同一笔汇总记录的情形,此时,仍然有并发问题发生的机会,为防止造成并发错误,提出一种“按序加锁的两阶段锁协议”,如下所示:
指定待汇总头寸集合为P,其中一个头寸元素为Pm。由于对一笔头寸做一次汇总操作有可能产生或更新多条汇总记录,可设一次汇总操作需加工出汇总记录集合为Pm_S,集合元素编号为Pm_S1到Pm_Sn,(N为自然数集)。设置加锁原语为Lock(),加总操作为Sum(),解锁原语为Unlock(),此时,可以将汇总操作视作一个整体,然后,把这个整体划分成按序锁上升阶段和按序锁下降阶段,基于带顺序的锁,对并发汇总过程进行调度,具体的可以如图5所示。
该“按顺序的两阶段锁协议”的要点可以包括:头寸汇总的结果按照指定的属性维度生成汇总结果,对于这些汇总维度,规定一个全局排序;对每一个汇总维度,构建一把排他锁;按照全局排序,对每一个汇总维度加锁,该阶段称作按顺序锁上升阶段,对于并发执行的汇总操作,谁获得在全局排序中靠后的锁,谁获得优先执行权。
其中,如果同一时间对两笔不同的头寸进行汇总,在两笔头寸生成的汇总记录的维度都不同的情况下,此时两个汇总操作可以互不干扰地并发执行。在两笔头寸生成汇总记录的汇总维度相同的情况下,例如:一家机构做了两笔美元头寸,这两笔头寸的起息日相同,且这两笔头寸到达汇总模块的时间相同,那么这两笔头寸会产生同一条按机构的汇总维度上的汇总记录,此时需要进行并发协调处理,两个头寸中仅有一个头寸可以进入锁上升阶段,另一头寸被阻塞,需等待进入锁上升的头寸的各个汇总维度上的锁被释放。
在按序锁上升阶段成功完成后,各个汇总维度上的汇总操作在排他状态下,得到汇总结果;各个汇总维度上的汇总操作均成功完成后,系统按照与上述全局排序相反的顺序解锁,进入按顺序锁下降阶段;如果各个汇总维度上的汇总操作未均能成功提交,则下降所有锁,删除各个汇总维度上的所有变更,并抛出异常。
由于按顺序的两阶段锁机制,使得被锁调整后的并发汇总操作步骤的执行顺序与串行化汇总方式等价;通过破坏了死锁的循环条件,使得至少在汇总流程内部杜绝了死锁。
步骤4:若汇总顺利完成,得到锁的汇总操作更新特定头寸的汇总状态为“已汇总”,并释放全局锁;若汇总发生异常,删除所有变更操作,并释放上述全局锁。
步骤5:在上述全局锁被释放后,其余并发的汇总操作以迭代式方式重复上述步骤2,继续竞争全局锁。在汇总顺利完成的情况下,由于上述特定头寸的汇总状态已变更为“已汇总”,则生成和特定头寸相对应的全局锁的条件已消失,其余并发的汇总操作抛异常退出,不再做后续汇总操作,从而保证了一笔头寸不会重复汇总。
本申请实施方式还提供了一种电子设备,具体可以参阅图6所示的基于本申请实施例提供的交易数据处理方法的电子设备组成结构示意图,电子设备具体可以包括输入设备61、处理器62、存储器63。其中,输入设备61具体可以用于输入对目标数据的同一数据变动操作的多个并发的请求操作,以及上述数据变动操作的标识信息和处理状态。处理器62具体可以用于根据数据变动操作的标识信息和处理状态,生成全局锁;将全局锁分配给多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;根据选定的请求操作,对目标数据进行调整;在调整成功情况下,将数据变动操作的处理状态修改为已调整,并释放全局锁。存储器63具体可以用于存储上述数据变动操作的操作数据、上述数据变动操作的标识信息和处理状态等参数。
在本实施方式中,输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。输入设备还可以获取接收其他模块、单元、设备传输过来的数据。处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。存储器具体可以是现代信息技术中用于保存信息的记忆设备。存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于交易数据处理方法的计算机存储介质,计算机存储介质存储有计算机程序指令,在计算机程序指令被执行时实现:接收对目标数据的同一数据变动操作的多个并发的请求操作;获取数据变动操作的标识信息和处理状态;根据数据变动操作的标识信息和处理状态,生成全局锁;将全局锁分配给多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;根据选定的请求操作,对目标数据进行调整;在调整成功情况下,将数据变动操作的处理状态修改为已调整,并释放全局锁。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种交易数据处理方法,其特征在于,包括:
接收对目标数据的同一数据变动操作的多个并发的请求操作;
获取所述数据变动操作的标识信息和处理状态;
在所述数据变动操作的处理状态为待调整的情况下,根据所述数据变动操作的标识信息和处理状态,生成全局锁;
将所述全局锁分配给所述多个并发的请求操作中的一个请求操作,并将该请求操作作为选定的请求操作;
根据所述选定的请求操作,对所述目标数据进行调整;其中,包括:在所述选定的请求操作包括多个调整维度的情况下,确定所述选定的请求操作的多个调整维度;确定所述多个调整维度的加锁顺序;对所述选定的请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;在所述选定的请求操作的多个调整维度均加锁成功的情况下,在所述多个调整维度上对所述目标数据进行调整;按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁;
在调整成功情况下,将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁。
2.根据权利要求1所述的方法,其特征在于,在根据所述选定的请求操作,对所述目标数据进行调整之后,还包括:
确定对所述目标数据的调整是否成功完成;
在确定未成功完成的情况下,删除根据所述选定的请求操作,对所述目标数据的调整;
释放所述全局锁;
将所述全局锁重新分配给所述多个并发的请求操作中的一个请求操作。
3.根据权利要求1所述的方法,其特征在于,在将所述数据变动操作的处理状态修改为已调整,并释放所述全局锁之后,还包括:
确定对所述目标数据的调整是否成功完成;
在确定成功完成的情况下,删除所述多个并发的请求操作中除选定的请求操作之外的请求操作。
4.根据权利要求1所述的方法,其特征在于,在所述数据变动操作的处理状态为待调整的情况下,根据所述数据变动操作的标识信息和处理状态,生成全局锁,包括:
根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;
在成功获取所述操作数据的情况下,生成所述全局锁。
5.根据权利要求1所述的方法,其特征在于,根据所述选定的请求操作,对所述目标数据进行调整,包括:
根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;
在所述操作数据获取成功的情况下,根据所述选定的请求操作和所述操作数据,对所述目标数据进行调整。
6.一种交易数据处理方法,其特征在于,包括:
接收对目标数据的数据变动操作的目标请求操作;
确定所述目标请求操作的多个调整维度;
确定所述多个调整维度的加锁顺序;
对所述目标请求操作的多个调整维度中的各个维度,按照确定的加锁顺序加锁;
在所述目标请求操作的多个调整维度均加锁成功的情况下,在所述目标请求操作的各个调整维度上对所述目标数据进行调整;
按与所述加锁顺序相反的顺序,释放调整成功的调整维度上的锁。
7.根据权利要求6所述的方法,其特征在于,在确定目标数据的数据变动操作的多个调整维度之前,还包括:
获取所述数据变动操作的标识信息和处理状态;
根据所述数据变动操作的标识信息和处理状态,获取所述数据变动操作的操作数据;
在所述操作数据获取成功,并且所述数据变动操作的处理状态为待调整的情况下,生成全局锁;
将所述全局锁分配给所述目标请求操作。
8.根据权利要求7所述的方法,其特征在于,在释放调整成功的调整维度上的锁之后,还包括:
确定所述多个调整维度各个调整维度上对所述目标数据的调整是否均成功完成;
在确定未均成功完成的情况下,删除所述多个调整维度中各个维度上,对所述目标数据的调整;
按与所述加锁顺序相反的顺序释放所述多个调整维度上的锁;
释放所述目标请求操作的全局锁。
9.根据权利要求7所述的方法,其特征在于,在释放调整成功的调整维度上的锁之后,还包括:
确定所述多个调整维度各个调整维度上对所述目标数据的调整是否均成功完成;
在确定均成功完成的情况下,将所述数据变动操作的处理状态修改为已调整;
释放所述全局锁。
10.一种交易数据处理方法,其特征在于,包括:
接收对目标数据的多个数据变动操作的请求操作;
确定所述多个数据变动操作的处理状态;
根据所述多个数据变动操作的处理状态,建立第一集合和第二集合,其中,所述第一集合中各个数据变动操作的处理状态为待调整;
根据所述第一集合中的多个数据变动操作的请求操作,对所述目标数据进行调整;
按照预定的时间间隔,对所述第二集合中的多个数据变动操作的处理状态进行查询;
将查询得到的所述第二集合中数据变动操作的处理状态为待调整的数据变动操作的请求操作,添加至第一集合中。
11.根据权利要求10所述的方法,其特征在于,在将查询得到的所述第二集合中数据变动操作的处理状态变更为待调整的数据变动操作的请求操作,添加至待第一集合中之后,还包括:
根据从第二集合添加至第一集合中的数据变动操作的请求操作,对所述目标数据进行调整。
12.一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至5中任一项所述方法的步骤。
13.一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求6至9中任一项所述方法的步骤。
14.一种交易数据处理设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求10至11中任一项所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至5中任一项所述方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求6至9中任一项所述方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求10至11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910385080.XA CN110162532B (zh) | 2019-05-09 | 2019-05-09 | 交易数据处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910385080.XA CN110162532B (zh) | 2019-05-09 | 2019-05-09 | 交易数据处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162532A CN110162532A (zh) | 2019-08-23 |
CN110162532B true CN110162532B (zh) | 2021-06-04 |
Family
ID=67633859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910385080.XA Active CN110162532B (zh) | 2019-05-09 | 2019-05-09 | 交易数据处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162532B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716944B (zh) * | 2019-09-12 | 2022-10-04 | 苏宁云计算有限公司 | 数据截断方法和装置 |
CN111026465A (zh) * | 2019-11-15 | 2020-04-17 | 北京三快在线科技有限公司 | 程序处理方法、装置、电子设备及存储介质 |
CN113765974A (zh) * | 2020-11-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 业务请求幂等性控制系统、方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185340B1 (en) * | 2001-10-11 | 2007-02-27 | Ants Software, Inc. | Multiphase system and method of performing operations on data structures |
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN107094116A (zh) * | 2017-05-26 | 2017-08-25 | 中国科学院计算技术研究所 | 一种包含跨维度链路的直接网络路由方法和系统 |
CN108172268A (zh) * | 2017-12-27 | 2018-06-15 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种批量数据处理方法、装置、终端和存储介质 |
CN109255701A (zh) * | 2018-08-27 | 2019-01-22 | 宜人恒业科技发展(北京)有限公司 | 一种网贷业务数据处理方法 |
CN109471872A (zh) * | 2017-08-30 | 2019-03-15 | 北京国双科技有限公司 | 处理高并发查询请求的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8321843B2 (en) * | 2009-02-09 | 2012-11-27 | Tranxition Corporation | Automatic analysis of an application's run-time settings |
CN103336789A (zh) * | 2013-06-06 | 2013-10-02 | 华为技术有限公司 | 一种数据库系统的锁操作方法及设备 |
CN106598746B (zh) * | 2016-12-09 | 2021-04-23 | 北京奇虎科技有限公司 | 分布式系统中全局锁的实现方法及装置 |
CN108459919B (zh) * | 2018-03-29 | 2022-04-15 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
-
2019
- 2019-05-09 CN CN201910385080.XA patent/CN110162532B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185340B1 (en) * | 2001-10-11 | 2007-02-27 | Ants Software, Inc. | Multiphase system and method of performing operations on data structures |
CN103297456A (zh) * | 2012-02-24 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 一种分布式系统下共享资源的访问方法及分布式系统 |
CN106657365A (zh) * | 2016-12-30 | 2017-05-10 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN107094116A (zh) * | 2017-05-26 | 2017-08-25 | 中国科学院计算技术研究所 | 一种包含跨维度链路的直接网络路由方法和系统 |
CN109471872A (zh) * | 2017-08-30 | 2019-03-15 | 北京国双科技有限公司 | 处理高并发查询请求的方法及装置 |
CN108172268A (zh) * | 2017-12-27 | 2018-06-15 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种批量数据处理方法、装置、终端和存储介质 |
CN109255701A (zh) * | 2018-08-27 | 2019-01-22 | 宜人恒业科技发展(北京)有限公司 | 一种网贷业务数据处理方法 |
Non-Patent Citations (1)
Title |
---|
基于MapReduce的并行计算框架研究与优化;洪波;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180215;I138-1078 * |
Also Published As
Publication number | Publication date |
---|---|
CN110162532A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615055B2 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
US20230104717A1 (en) | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network | |
CN110162532B (zh) | 交易数据处理方法和设备 | |
US9756469B2 (en) | System with multiple conditional commit databases | |
US11611445B2 (en) | Changing smart contracts recorded in block chains | |
CN103782574B (zh) | 用于数据库事务的幂等性 | |
KR101959153B1 (ko) | 데이터베이스에서의 계좌와 관련된 거래 요청의 효율적인 처리를 위한 시스템 | |
CN110706101B (zh) | 在区块链中并发执行交易的方法和装置 | |
CN102521007B (zh) | 一种基于事务调度的网管系统对象并发编辑的方法 | |
CN109885565B (zh) | 一种数据表清理方法和装置 | |
US11775509B1 (en) | Systems and methods to fully process an initially incomplete replicated and committed transaction for a non-static application by using a plurality of transaction pattern tables | |
CN113112344B (zh) | 业务处理方法、设备、存储介质及计算机程序产品 | |
CN109542922B (zh) | 针对实时服务数据的处理方法及相关系统 | |
CN107391539B (zh) | 事务处理方法、服务器和存储介质 | |
CN111339114A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN110377614B (zh) | 一种分布式环境下的订单处理锁系统 | |
CN112559496A (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
CN112099934A (zh) | 一种批处理方法、系统、计算机设备及存储介质 | |
CN102831547B (zh) | 一种实现实时结息处理的方法和系统 | |
CN113703831A (zh) | 一种实现业务幂等的方法、装置、设备和介质 | |
CN108241551A (zh) | 一种冗余数据库系统 | |
Bravo et al. | UniStore: A fault-tolerant marriage of causal and strong consistency (extended version) | |
JP2017091213A (ja) | データベース更新処理システムおよびデータベース更新処理方法 | |
CN117291741A (zh) | 账务数据处理方法、装置、设备、存储介质和程序产品 | |
CN115439226A (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 |