CN106294746A - 一种并发交易数据处理方法及装置 - Google Patents
一种并发交易数据处理方法及装置 Download PDFInfo
- Publication number
- CN106294746A CN106294746A CN201610652781.1A CN201610652781A CN106294746A CN 106294746 A CN106294746 A CN 106294746A CN 201610652781 A CN201610652781 A CN 201610652781A CN 106294746 A CN106294746 A CN 106294746A
- Authority
- CN
- China
- Prior art keywords
- commodity
- amount
- volume residual
- transaction data
- transaction
- 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.)
- Pending
Links
Classifications
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0607—Regulated
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/24—Querying
- G06F16/245—Query processing
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/127—Shopping or accessing services according to a time-limitation
-
- 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
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0235—Discounts or incentives, e.g. coupons or rebates constrained by time limit or expiration date
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供一种并发交易数据处理方法及装置,包括:接收多个客户提交的并发交易数据(预购商品标识和预购商品数量);根据其中一个客户提交的商品标识和预购商品数量,从额度表中(商品标识和对应的商品剩余数量)扣减相应预购商品的剩余数量;当扣减预购商品的剩余数量成功时,根据交易数据生成交易;当生成交易成功时,响应客户交易成功;当扣减预购商品的剩余数量失败或生成交易失败时,响应客户交易失败。相对于传统的扣减预购商品的剩余数量和生成交易使用同一个事务控制,本发明由两个独立的事务控制。该方案可以减少响应多个客户请求的时间,从而提高交易处理效率。
Description
技术领域
本发明涉及电子商务技术领域,特别涉及一种并发交易数据处理方法及装置。
背景技术
电子商务是交易双方通过计算机网络所进行的所有交易活动,即通过交易发生实物性商品(如服装、家用电器等)所有权的转移,或实现了服务性商品(如金融服务网络信息咨询服务等)的有偿消费。在电子商务中,商家一方为了提高商品销售量或扩大该商品的影响力,商家会不定时的推出限量的低价产品用来进行秒杀或者限时抢购,对于现有的秒杀或者限时抢购数据处理系统,其使用一个事务(事务是一步或几步基本操作组成的逻辑执行单元,这些基本操作作为一个整体执行单元,它们要么全部执行,要么全部取消,决不能仅仅执行部分。一般而言,每次客户请求,对应一个业务逻辑方法,一个业务逻辑方法往往具有逻辑上的原子性,应该使用事务。例如一个转账操作,对应修改两个账户的余额,这两个账户的修改要么同时生效,要么同时取消——同时生效是转账成功,同时取消是转账失败;但不可只修改一个账户,那将破坏数据库的完整性)控制提交交易,即使用一个事务来控制扣减额度操作和生成交易操作,这样会将额度表和交易表同时锁定,可以保证扣减额度和生成交易要么同时成功,要么同时失败。但是这样存在以下缺点:在有多个客户进行秒杀或者限时抢购请求时,秒杀或者限时抢购数据处理系统必须在处理完成前一个客户的扣减额度和生成交易这两个操作之后,才会响应下一个客户的请求,这样会花费很多的时间来响应多个客户请求,从而降低交易处理效率。
发明内容
本发明实施例提供了一种并发交易数据处理方法,可以减少响应多个客户请求的时间,提高交易处理效率。该方法包括:
接收多个客户提交的并发交易数据,所述并发交易数据中包括预购商品标识和预购商品数量;
根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
在一个实施例中,根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量,具体包括:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
在一个实施例中,所述根据并发交易数据生成交易,具体包括:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
在一个实施例中,还包括:
当扣减预购商品的剩余数量操作成功,而生成交易操作失败时,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量,进行额度补偿操作。
在一个实施例中,按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
所述额度表还包括对应的商品可售最大数量和对应的商品销售状态;所述对应的商品销售状态包括已售罄状态和未售罄状态。
本发明实施例还提供了一种并发交易数据处理系统,可以减少响应多个客户请求的时间,提高交易处理效率。该系统包括:
接收模块,用于接收多个客户提交的并发交易数据,所述并发交易数据包括预购商品标识和预购商品数量;
交易数据处理模块,用于根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
在一个实施例中,所述交易数据处理模块具体用于:
按照如下方式扣减预购商品的剩余数量:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
在一个实施例中,所述交易数据处理模块具体用于:
按照如下方式生成交易:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
在一个实施例中,还包括:
额度补偿模块,用于当扣减预购商品的剩余数量操作成功,而生成交易操作失败,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量时,进行额度补偿操作。
在一个实施例中,所述额度补偿模块具体用于:
按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
所述额度表还包括对应的商品可售最大数量和对应的商品销售状态;所述对应的商品销售状态包括已售罄状态和未售罄状态。
在本发明实施例中,相对于传统的扣减预购商品的剩余数量和生成交易使用同一个事务控制,本发明中扣减相应的商品剩余数量和生成交易由两个独立的事务控制,当大量交易并发时,对当前客户进行扣减商品的剩余数量操作完成之后,即可对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作,这样可以减少响应多个客户请求的时间,从而提高交易处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种现有的在线秒杀系统处理交易数据的流程图;
图2是一种现有的在线秒杀系统响应客户的提交交易详细流程图;
图3是本发明提出的交易数据处理系统处理交易数据的具体流程图;
图4是本发明提出的交易数据处理系统的在线销售的时序图;
图5是本发明提出的交易数据处理系统的提交买卖交易的详细流程图;
图6是本发明提出的交易数据处理系统的额度补偿的时序图;
图7是一种现有的在线秒杀系统响应客户所需时间示意图;
图8是本发明提出的交易数据处理系统响应客户所需时间示意图一;
图9是本发明提出的交易数据处理系统响应客户所需时间示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的在线秒杀系统使用同一个事务来控制扣减额度和生成交易,保证扣减额度和生成交易要么同时成功,要么同时失败。假设在线秒杀系统主要由2张数据库表组成,一个是额度表(记录最大可售额度(即最大可售数量)和当前剩余额度(即当前剩余数量)),另一个是交易表(用于记录客户提交的交易数据)。现有的在线秒杀系统处理交易数据的流程图如图1所示,该系统的基本流程为:
1、客户登录在线秒杀系统;
2、查询可预约的商品(主要是在数据库中查询商品剩余额度/数量不为0的商品);
3、客户选择商品,填写预购数据;
4、提交交易;
5、在线秒杀系统扣减额度(从数据库的额度表中),插入客户提交的交易数据,生成交易(插入到数据库中的交易表中);
6、如果扣减额度,插入客户提交的交易数据均成功,则响应客户交易成功;
7、如果扣减额度、插入交易数据其中一个操作失败,数据库进行数据回滚,响应客户交易失败。
其中,在线秒杀系统响应客户的提交交易的详细流程如图2所示,包括:
1、交易开始,在线秒杀系统获取数据连接;
2、锁定额度表,扣减商品剩余额度;
3、如果扣减商品剩余额度操作失败,响应客户交易失败,交易结束;
4、如果扣减商品剩余额度操作成功,则锁定交易表,插入交易数据;
5、如果插入数据操作成功,则响应客户交易成功;
6、如果插入数据操作失败,则回滚额度表,响应客户交易失败,交易结束;
7、如果扣减商品剩余额度操作和插入数据操作均成功,则提交数据(commit),响应客户交易成功,交易结束。
由上可知,现有的在线秒杀系统存在以下缺点:在有多个客户进行秒杀或者限时抢购请求时,该系统必须在处理完成前一个客户的扣减额度和生成交易这两个操作之后,才会响应下一个客户的请求,这样会花费很多的时间来响应多个客户请求,从而降低交易处理效率。
针对现有技术中存在的问题,本发明提出一种并发交易数据处理装置,该并发交易数据处理装置包括:
接收模块,用于接收多个客户提交的并发交易数据,所述并发交易数据包括预购商品标识和预购商品数量;
交易数据处理模块,用于根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
具体实施时,交易数据处理模块的提交交易包括两个原子交易,分别为扣减商品剩余额度(即商品剩余数量)和生成交易。本发明的关键点是对提交交易进行纵向事务分离(把业务流程中的m个原子交易分割成m个事务),就是说,把提交交易的扣减商品剩余额度和生成交易这两个原子交易分割成2个事务,系统先扣减预购商品的剩余额度,如果扣减商品剩余额度失败,则响应客户交易失败;如果扣减商品剩余额度成功,则生成交易。如果生成交易成功,则响应客户交易成功;如果生成交易失败,则相应客户交易失败。通过进行纵向事务分离,在多个客户进行交易请求时,本发明系统可以在处理成功前一个客户的扣减额度之后,就响应下一个客户的交易请求,无需在处理完前一个客户的扣减额度和生成交易这两个操作之后,才响应下一个客户的交易请求,也就是说本发明系统支持下一客户最早操作的时间点可以是上一个客户刚扣减额度成功的时间点。
另外,本发明还可以对提交交易进行横向事务分离(把1条记录分割成x份,那么就将原来只能支持的一个并发增加到了x个并发),就是说,把扣减商品剩余额度这个原子交易所对应的额度记录分割成x份记录,响应客户时通过哈西算法将客户请求映射到这x份记录上,那么就将原来只能支持的1个并发增加到了x个并发。
具体实施时,交易数据处理模块具体用于:
按照如下方式扣减预购商品的剩余数量:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
交易数据处理模块具体用于:
按照如下方式生成交易:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
具体实施时,由于本发明在提交交易中使用了纵向事务分离,那么就有可能存在当额度扣减成功,插入交易失败的时候额度表中的商品剩余额度与实际剩余额度不一致。为了解决此问题,本发明引入额度补偿机制,通过定时自动处理来补偿无效的额度,以保证数据的一致。即本发明系统还包括额度补偿模块,用于当扣减预购商品的剩余数量操作成功,而生成交易操作失败,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量时,进行额度补偿操作。
具体的,额度补偿模块按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
额度表还包括对应的商品可售最大数量和对应的商品销售状态;对应的商品销售状态包括已售罄状态和未售罄状态。
其中,额度表中的商品标识可以是商品的名称,也可以是商品的编号,可以是任何能对商品进行识别的形式;额度表中的可售最大数量(也可以说是可售最大额度)是固定值;额度表中的商品销售状态用于标志该商品是否真正售完,是否仍需要进行额度补偿,默认初始值为未售罄。额度表中的数据在系统上线前已通过业务事先维护。而交易表是记录客户买卖的信息。
具体实施时,交易数据处理模块与额度补偿模块在不同的进程中运行,并且只有额度表中记录的商品剩余额度为0,但销售状态为未售罄才会进行额度补偿操作,而在线销售交易不能对额度表中记录的商品剩余额度为0的商品进行买卖,因此额度补偿模块不会对交易数据处理模块造成影响。
以上所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以上实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体实施时,图3是本发明提出的并发交易数据处理装置处理并发交易数据的具体流程图,由图4可知,装置中包括的在线销售模块即为交易数据处理模块。该装置的基本流程为:
1、客户登录系统;
2、查询可预约的商品(主要是在数据库中查询商品剩余额度不为0的商品);
3、客户选择商品,填写预购数据;
4、提交交易;
在线销售模块处理:
5、扣减额度(从数据库的额度表中);
6、插入客户提交的交易数据,生成交易(插入到数据库中的交易表中);
7、如果扣减额度,插入客户提交的交易数据均成功,则提交交易;
额度补偿模块处理:
8、如果扣减额度成功、插入交易失败,进行定时处理,对额度为0的商品进行额度补偿。
具体实施时,在线销售模块(即交易数据处理模块)为WEB应用,主要包括2支交易,分别为查询剩余额度信息和买卖交易。其在线销售的时序图如图4所示,包括:
1:用户:登录系统;
1.1:前端页面:请求在线销售APP查询可售商品信息;
1.1.1:在线销售APP:查询数据库中的商品信息,过滤剩余额度不为0的可售商品;
3:客户:选择要进行买卖的商品,并填写客户相关的信息;(4:属于返回流程)
5:客户:提交买卖交易;
5.1:前端页面:响应客户请求,调用在线销售APP进行提交交易;
5.1.1:在线销售APP:响应页面请求,通过哈西算法获取x份记录中一份用于响应客户,扣减剩余额度,即将该份记录的商品的剩余额度减去客户买卖的数量。如果扣减成功,进行后续操作。如果扣减失败,直接响应客户交易失败。
5.1.3:在线销售APP:将客户的交易信息插入数据库。如果插入成功,则响应客户交易成功返回结果信息。如果插入失败,则响应客户交易失败。
其中,1.1.2:查询商品信息,过滤恪守商品;1.2:查询可售商品信息;2:登录系统;5.1.2:扣减剩余额度;5.1.4:插入交易数据;5.2:提交交易;6:提交交易属于返回流程。
具体实施时,提交买卖交易的详细流程如图5所示,包括:
1、交易开始;
2、进行扣减额度操作(一个事务控制);
当包括横向事务分离时:系统获取数据连接,锁定额度表,通过哈希算法获取x份记录中的一份用于响应客户,将该份记录的商品的剩余额度减去客户买卖的数量;
当不包括横向事务分离时:系统获取数据连接,锁定额度表,扣减剩余额度,如果扣减商品剩余额度操作失败,响应客户交易失败,交易结束;
如果扣减商品剩余额度操作成功,提交交易(commit);
3、进行生成交易操作(另一个事务控制):
获取数据连接;
锁定交易表,插入交易数据,将分隔额度表对应的记录放入同意分区,如果插入数据操作失败,响应客户交易失败,交易结束;
如果插入数据操作成功,提交交易(commit),同时响应客户交易成功,交易结束。
具体实施时,额度补偿模块为定时自动处理应用,是为了弥补在线销售模块中由于提交买卖交易使用去事务化控制带来的数据不一致问题。额度补偿的的时序图如图6所示,包括:
1:时钟:定时循环调用额度补偿交易;
1.1:额度补偿APP:查询数据库中的商品信息,过滤剩余额度为0,且状态为未售罄的商品;
1.3:额度补偿APP:对每个商品,分别根据该买卖交易表中的商品计算交易表中的已售总额;
1.5:额度补偿APP:判断商品实际已售总额与商品的最大可售额度是否相等。如果相等,则表明该商品确实已真正售完,1:将该商品状态置为已售罄。如果不相等,则表明该商品曾经出现过已被扣减额度但是没有成功插入交易数据的情况,需要将已被进行无效扣减的额度补偿到剩余额度中,即2:修改剩余额度:最大可售额-实际已售总额。
2:额度补偿。
其中,1.2:查询商品信息,过滤剩余额度为0的商品;1.4:根据商品计算交易表中的已售总额;1.6:判断商品最大可售额度与实际已售总额是否相等;1:将商品状态置为已售罄;2:修改剩余额度:最大可售额-实际已售总额属于返回流程。
具体实施时,图7是一种现有的在线秒杀系统响应客户所需时间示意图,如图7所示,假设扣减商品剩余额度占用的时间为a秒,插入交易数据占用的时间为b秒,则响应客户一个交易的时间为a+b秒。假设在高并发的情况下,系统无闲置时间,则响应n个客户的请求需要的时间为n*(a+b)秒。
当本发明单独采用了横向事务分离时,由于一条记录被拆分成了x份,并通过哈西算法将客户请求映射到x份记录上,那么即可支持同时对x条记录的同时锁定,即并发数最大可支持x个。假设扣减额度占用的时间为a秒,插入交易数据占用的时间为b秒,则响应n个客户的请求需要的时间为n*(a+b)/x。
当本发明单独采用了纵向事务分离时,假设扣减额度占用的时间为a秒,插入交易数据占用的时间为b秒,则响应客户一个交易的时间为a+b秒。假设a<b,在高并发的情况下,系统无闲置时间,则响应n个客户的请求需要的时间为n*b+a秒,如图8所示。假设a>b,在高并发的情况下,系统无闲置时间,则响应n个客户的请求需要的时间为n*a+b秒,如图9所示。
如果本发明同时进行横向事务分离和纵向事务分离,则响应n个客户请求需要(n*a+b)/x秒或者(n*b+a)/x秒。
根据以上分析可知,相对现有技术响应n个客户请求需要n(a+b)秒,本发明大概提高了2x倍,在高并发的情况下,本发明比现有技术性能更高。
基于同一发明构思,本发明实施例中还提供了一种并发交易数据处理方法,如下面的实施例所述。由于并发交易数据处理方法解决问题的原理与并发交易数据处理装置相似,因此并发交易数据处理方法的实施可以参见并发交易数据处理装置的实施,重复之处不再赘述。
本发明提出的并发交易数据处理方法包括:
接收多个客户提交的并发交易数据,所述并发交易数据中包括预购商品标识和预购商品数量;
根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
具体实施时,根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量,具体包括:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
具体实施时,根据并发交易数据生成交易,具体包括:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
具体实施时,还包括:
当扣减预购商品的剩余数量操作成功,而生成交易操作失败时,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量,进行额度补偿操作。
在一个实施例中,按照如下方式进行额度补偿:
具体实施时,按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
所述额度表还包括对应的商品可售最大数量和对应的商品销售状态;所述对应的商品销售状态包括已售罄状态和未售罄状态。
综上所述,本发明的优点是:
1、本发明对交易使用了事务分离,这样可以缩短交易处理时间,提高交易处理能力。
2、通过额度补偿机制来弥补纵向事务分离带来的数据不一致问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种并发交易数据处理方法,其特征在于,包括:
接收多个客户提交的并发交易数据,所述并发交易数据中包括预购商品标识和预购商品数量;
根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
2.如权利要求1所述的并发交易数据处理方法,其特征在于,根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量,具体包括:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
3.如权利要求1所述的并发交易数据处理方法,其特征在于,所述根据并发交易数据生成交易,具体包括:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
4.如权利要求3所述的并发交易数据处理方法,其特征在于,还包括:
当扣减预购商品的剩余数量操作成功,而生成交易操作失败时,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量,进行额度补偿操作。
5.如权利要求4所述的并发交易数据处理方法,其特征在于,按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
所述额度表还包括对应的商品可售最大数量和对应的商品销售状态;所述对应的商品销售状态包括已售罄状态和未售罄状态。
6.一种并发交易数据处理装置,其特征在于,包括:
接收模块,用于接收多个客户提交的并发交易数据,所述并发交易数据包括预购商品标识和预购商品数量;
交易数据处理模块,用于根据所述多个客户中的一个客户提交的并发交易数据中的商品标识和预购商品数量,从额度表中扣减相应预购商品的剩余数量;所述额度表包括商品标识和对应的商品剩余数量;
当扣减预购商品的剩余数量失败时,响应客户交易失败;
当扣减预购商品的剩余数量成功时,根据并发交易数据生成交易;
当生成交易成功时,响应客户交易成功;
当生成交易失败时,响应客户交易失败;
在对当前客户进行扣减预购商品的剩余数量操作完成之后,对下一个客户进行扣减预购商品的剩余数量操作,无需等待当前客户完成生成交易操作;
所述扣减预购商品的剩余数量和生成交易由两个独立的事务控制。
7.如权利要求6所述的并发交易数据处理装置,其特征在于,所述交易数据处理模块具体用于:
按照如下方式扣减预购商品的剩余数量:
根据所述商品标识从额度表中查找到对应的商品标识和对应的商品剩余数量;
用对应的商品剩余数量减去预购商品数量,如果扣减结果大于等于0,则扣减预购商品的剩余数量成功;如果扣减结果小于0,则扣减预购商品的剩余数量失败。
8.如权利要求6所述的并发交易数据处理装置,其特征在于,所述交易数据处理模块具体用于:
按照如下方式生成交易:
将并发交易数据插入交易表中,生成交易;
如果并发交易数据插入成功,响应客户交易成功;
如果并发交易数据插入失败,响应客户交易失败;
所述交易表中包括客户信息、商品标识和对应的预购商品数量。
9.如权利要求8所述的并发交易数据处理装置,其特征在于,还包括:
额度补偿模块,用于当扣减预购商品的剩余数量操作成功,而生成交易操作失败,商品可售最大数量减去预购商品的实际购买总量不等于商品剩余数量时,进行额度补偿操作。
10.如权利要求9所述的并发交易数据处理装置,其特征在于,所述额度补偿模块具体用于:
按照如下方式进行额度补偿:
确定额度表中商品剩余数量为0,且对应的商品销售状态为未售罄的商品标识和商品可售最大数量;
根据所述商品标识,确定交易表中对应的预购商品的实际购买总量;
将所述商品可售最大数量与所述实际购买总量进行比较,如果两者不等,将相应的商品剩余数量修改为所述商品可售最大数量减去所述实际购买总量;如果两者相等,将对应的商品销售状态修改为已售罄;
所述额度表还包括对应的商品可售最大数量和对应的商品销售状态;所述对应的商品销售状态包括已售罄状态和未售罄状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610652781.1A CN106294746A (zh) | 2016-08-10 | 2016-08-10 | 一种并发交易数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610652781.1A CN106294746A (zh) | 2016-08-10 | 2016-08-10 | 一种并发交易数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294746A true CN106294746A (zh) | 2017-01-04 |
Family
ID=57667866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610652781.1A Pending CN106294746A (zh) | 2016-08-10 | 2016-08-10 | 一种并发交易数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294746A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239973A (zh) * | 2017-06-06 | 2017-10-10 | 北京创云知识产权服务有限责任公司 | 一种系统监控预警的方法 |
CN107424036A (zh) * | 2017-04-26 | 2017-12-01 | 北京微影时代科技有限公司 | 数据处理方法及装置 |
CN109949135A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 高并发交易请求处理方法、系统、设备及存储介质 |
CN110717810A (zh) * | 2019-10-10 | 2020-01-21 | 中国联合网络通信集团有限公司 | 实时交易方法、装置、设备及计算机可读存储介质 |
CN111582780A (zh) * | 2020-04-20 | 2020-08-25 | 重庆锐云科技有限公司 | 商品购买等待通道构建方法、装置、服务器及存储介质 |
CN112884181A (zh) * | 2021-01-26 | 2021-06-01 | 中国建设银行股份有限公司 | 额度信息处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388096A (zh) * | 2007-09-14 | 2009-03-18 | 阿里巴巴集团控股有限公司 | 一种多平台的数据标准化处理方法及系统 |
US20090076876A1 (en) * | 2003-02-21 | 2009-03-19 | Mtrex, Inc. | Method of Scheduling and Event Processing in Computer Operating System |
CN101968815A (zh) * | 2010-10-29 | 2011-02-09 | 西本新干线股份有限公司 | 并发请求处理方法 |
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
CN105096065A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种库存扣减方法和装置 |
-
2016
- 2016-08-10 CN CN201610652781.1A patent/CN106294746A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090076876A1 (en) * | 2003-02-21 | 2009-03-19 | Mtrex, Inc. | Method of Scheduling and Event Processing in Computer Operating System |
CN101388096A (zh) * | 2007-09-14 | 2009-03-18 | 阿里巴巴集团控股有限公司 | 一种多平台的数据标准化处理方法及系统 |
CN101968815A (zh) * | 2010-10-29 | 2011-02-09 | 西本新干线股份有限公司 | 并发请求处理方法 |
CN105096065A (zh) * | 2014-04-16 | 2015-11-25 | 阿里巴巴集团控股有限公司 | 一种库存扣减方法和装置 |
CN104636957A (zh) * | 2015-02-04 | 2015-05-20 | 上海瀚之友信息技术服务有限公司 | 一种处理高并发数据请求的系统和方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107424036A (zh) * | 2017-04-26 | 2017-12-01 | 北京微影时代科技有限公司 | 数据处理方法及装置 |
CN107239973A (zh) * | 2017-06-06 | 2017-10-10 | 北京创云知识产权服务有限责任公司 | 一种系统监控预警的方法 |
CN107239973B (zh) * | 2017-06-06 | 2020-07-28 | 睿智合创(北京)科技有限公司 | 一种系统监控预警的方法 |
CN109949135A (zh) * | 2019-03-20 | 2019-06-28 | 江苏满运软件科技有限公司 | 高并发交易请求处理方法、系统、设备及存储介质 |
CN110717810A (zh) * | 2019-10-10 | 2020-01-21 | 中国联合网络通信集团有限公司 | 实时交易方法、装置、设备及计算机可读存储介质 |
CN111582780A (zh) * | 2020-04-20 | 2020-08-25 | 重庆锐云科技有限公司 | 商品购买等待通道构建方法、装置、服务器及存储介质 |
CN111582780B (zh) * | 2020-04-20 | 2023-06-09 | 重庆锐云科技有限公司 | 商品购买等待通道构建方法、装置、服务器及存储介质 |
CN112884181A (zh) * | 2021-01-26 | 2021-06-01 | 中国建设银行股份有限公司 | 额度信息处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106294746A (zh) | 一种并发交易数据处理方法及装置 | |
CN104699712B (zh) | 对数据库中的库存记录信息进行更新的方法及装置 | |
CN110163590B (zh) | 基于区块链的缴费代扣方法及装置、电子设备、存储介质 | |
CN104574050B (zh) | 在线结算的方法、装置及系统 | |
CN110852734B (zh) | 基于区块链的景区业务结算方法、系统及电子设备 | |
CN103310334B (zh) | 一种业务处理的方法及装置 | |
US20220164791A1 (en) | Method for distributing collectables ownership based on blockchain networks and online transaction server using the same | |
CN106097058A (zh) | 电子商务平台异构数据处理方法及系统 | |
US10970720B2 (en) | Order processing method and device | |
CN109726249B (zh) | 一种去中心化芯片研发交易数据存储方法及系统 | |
JP6716786B2 (ja) | 電子決済プロセスにおいて資金取引ルートを検出する方法及び装置 | |
CN107038560A (zh) | 一种支付业务执行的系统、方法及装置 | |
CN112650605A (zh) | 一种基于智能合约的预言机调用过程实现方法及装置 | |
CN111126848B (zh) | 基于大数据的业务处理方法、装置、存储介质及电子设备 | |
CN111353841B (zh) | 单据数据处理方法、装置及系统 | |
Frauenthaler et al. | Leveraging blockchain relays for cross-chain token transfers | |
CN110781134A (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
CN104346720A (zh) | 一种跨境支付方式限制方法和系统 | |
CN106846150A (zh) | 数据处理系统以及跨境金融数据处理系统及其方法 | |
CN107295052A (zh) | 一种业务处理方法及装置 | |
CN109345289A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN104753981B (zh) | 处理网络请求的方法 | |
CN115983853A (zh) | 基于区块链的客户侧绿电应用服务方法、系统及电子设备 | |
CN110807636A (zh) | 数据处理方法及装置、电子设备、可读存储介质 | |
JP5812645B2 (ja) | 電子商取引システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |
|
RJ01 | Rejection of invention patent application after publication |