用于账务交易的数据表更新的方法及系统的制作方法

文档序号:10655433阅读:241来源:国知局
用于账务交易的数据表更新的方法及系统的制作方法
【专利摘要】本发明提供一种用于账务交易的数据表更新的方法及系统,所述方法包括:接收用户提交的订单,其中所述订单包括:交易对象的交易量;从非关系型数据库中读取所述交易对象的库存量;判断读取的库存量是否大于所述交易量;若所述库存量大于所述交易量,则基于所述交易量更新所述交易对象的库存量,并向所述用户反馈用于对所述订单进行账务性操作的页面;经预定间隔时间后,识别所述用户是否通过所述页面完成所述账务性操作;若完成所述账务性操作,则根据所述订单更新关系型数据库中存储的所述用户的账务数据表。实施本发明,可以在提高用户响应速度的同时保证数据的一致性。
【专利说明】
用于账务交易的数据表更新的方法及系统
技术领域
[0001]本发明涉及通信领域,更为具体而言,涉及用于账务交易的数据表更新的方法及系统。【背景技术】
[0002]随着互联网金融的发展,为了抢占互联网用户,当前互联网产品越来越关注用户的体验度,又由于金融业对于数据一致性的极高要求。因此,如何做到在保证数据一致性的同时,加快高并发请求下的响应速度是所有金融业互联网产品研发人员所面临的技术难题。
[0003]传统的金融业互联网产品的开发一直使用以oracle数据库(一种由甲骨文公司研发的关系型数据库)为代表的数据库。然而,虽然oracle数据库在数据一致性、事务支持等方面具有天然的优势,但由于oracle数据库的响应延迟较大,因此,oracle数据库在应对高并发请求方面一直受限,在进行秒杀、抢红包等对响应速度有很高要求的应用场景下,严重影响用户的体验度。
【发明内容】

[0004]为解决上述技术问题,本发明提供一种用于账务交易的数据表更新的方法及系统。
[0005]—方面,本发明的实施方式提供了一种用于账务交易的数据表更新的方法,所述方法包括:
[0006]接收用户提交的订单,其中所述订单包括:交易对象的交易量;
[0007]从非关系型数据库中读取所述交易对象的库存量;
[0008]判断读取的库存量是否大于所述交易量;
[0009]若所述库存量大于所述交易量,则基于所述交易量更新所述交易对象的库存量, 并向所述用户反馈用于对所述订单进行账务性操作的页面;
[0010]经预定间隔时间后,识别所述用户是否通过所述页面完成所述账务性操作;[〇〇11]若完成所述账务性操作,则根据所述订单更新关系型数据库中存储的所述用户的账务数据表。
[0012]另一方面,本发明实施方式提供了一种用于账务交易的数据表更新的系统,所述系统包括:
[0013]接收模块,用于接收用户提交的订单,其中所述订单包括:交易对象的交易量;
[0014]读取模块,用于从非关系型数据库中读取所述接收模块接收的订单的交易对象的库存量;
[0015]判断模块,用于判断所述读取模块读取的库存量是否大于所述交易量;
[0016]更新及反馈模块,用于执行下述处理:在所述判断模块判断所述库存量大于所述交易量的情况下,基于所述交易量更新所述交易对象的库存量,并向所述用户反馈用于对所述订单进行账务性操作的页面;
[0017]第一识别模块,用于执行下述处理:经预定间隔时间后,识别所述用户是否通过所述更新及反馈模块反馈的页面完成所述账务性操作;
[0018]更新模块,用于执行下述处理:在所述第一识别模块识别为完成所述账务性操作的情形下,根据所述订单更新关系型数据库中存储的所述用户的账务数据表。
[0019]实施本发明提供的用于账务交易的数据表更新的方法及系统,将非关系型数据库作为“热点数据”(指高并发读取的数据,例如交易对象的库存量)的存储容器,可以提高“热点数据”的读写速度,减少用户响应时间;同时,将关系型数据作为账务数据表的存储容器, 可以保证账务数据的一致性。从而,在提高用户响应速度的同时保证数据的一致性。【附图说明】
[0020]图1是根据本发明实施方式的一种用于账务交易的数据表更新的方法的流程图;
[0021]图2是根据本发明实施方式的一种用于账务交易的数据表更新的系统的结构示意图。【具体实施方式】[〇〇22]为使本发明的实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
[0023]图1是根据本发明实施方式的一种用于账务交易的数据表更新的方法的流程图。 参见图1,所述方法包括:[〇〇24]S100:接收用户提交的订单。
[0025]其中,所述订单例如可以包括:交易对象的标识符以及交易量等。[〇〇26]S200:从非关系型数据库中读取所述订单的交易对象的库存量。
[0027]在本发明的一些实施方式中,所述非关系型数据库例如可以包括分布式键值数据库。
[0028]在本发明的一些实施方式中,所述分布式键值数据库存储在内存中。[〇〇29]S300:判断读取的库存量是否大于所述订单中的交易量,若否,则执行S400,若是,则执行S500。
[0030]S400:向所述用户反馈失败信息,并结束当前流程。
[0031]S500:基于所述交易量更新所述交易对象的库存量,并向所述用户反馈用于对所述订单进行账务性操作的页面。
[0032]S600:经预定间隔时间后,识别所述用户是否通过所述页面完成所述账务性操作, 若是,则执行S700,若否,则执行S800。
[0033]S700:根据所述订单更新关系型数据库中存储的所述用户的账务数据表,并结束当前流程。
[0034]在本发明的一些实施方式中,所述关系型数据库为oracle数据库。[〇〇35]S800:识别当前时刻距离反馈所述页面的时刻所经过的时间是否大于预定等待时间,若是,则执行S900,若否,则返回执行S600。[〇〇36]其中,所述预定等待时间大于所述预定间隔时间,例如,所述预定间隔时间为1分钟,所述预定等待时间为40分钟,当然,本领域的技术人员也可以根据实际需要,对所述预定等待时间以及预定间隔时间进行其他合理设置。[〇〇37]S900:取消所述订单,并结束当前流程。
[0038]当然,本发明的实施方式不限于此,本领域的技术人员也可以在S600的识别结果为未完成所述账务性操作的情形下,直接执行上述处理S900。[〇〇39]下面结合具体例子,对本发明的实施方式进行详细说明。[〇〇4〇]步骤1:接收用户提交的订单。
[0041]其中,所述订单包括:交易对象的标识符以及交易量。
[0042]步骤2:从coherence数据库(一种分布式键值数据库)中读取所述交易对象的库存量。[0〇43]其中,coherence用于保存“热点数据”,例如,交易对象的存库量。由于coherence 数据库存储在内存中,并且内存的访问速度非常快,可以达到百分之一毫秒级别,因此能够提高“热点数据”的读写速度,减少用户响应时间。[〇〇44]步骤3:判断读取的库存量是否大于所述订单中的交易量,若所述库存量小于所述交易量,则执行步骤4,若所述库存量大于所述交易量,则执行步骤5。
[0045]步骤4:向所述用户反馈处理失败信息,并结束当前流程。
[0046]步骤5:通过coherence的并行请求串行化接口将该订单加入等待队列中。[0〇47] 步骤6:当处理到所述订单时,将所述订单存入到cassandra数据库(一种列式数据库)中,并分配相应的订单号。[〇〇48]由于coherence数据库是键值数据库,因此存放的数据结构比较简单,并且不能持久化到硬盘中,并且内存的价格高昂、容量有限,所以需要将订单存入到cassandra数据库中,另外,cassandra数据库也可以根据需要对数据实现事务控制。
[0049]步骤7:基于所述订单中的交易量,更新所述交易对象的库存量,并向所述用户反馈用于对所述订单进行账务性操作的页面。
[0050]步骤8:经预定间隔时间(例如1分钟,当然本领域的技术人员也可以根据实际需要,对该预定间隔时间进行其他合理设置)后,识别所述用户是否通过所述页面完成所述账务性操作,若完成所述账务性操作,则执行步骤9,若未完成所述账务性操作,则执行步骤 10。
[0051]步骤9:根据所述订单更新oracle数据库中所述用户的账务数据表,并结束当前流程。
[0052]步骤10:识别当前时刻距离反馈所述页面的时刻所经历的时间是否大于预定等待时间(例如40分钟,当然本领域的技术人员也可以根据实际需要,对该预定时间进行其他合理设置),若所述经过的时间大于所述预定等待时间,则执行步骤11,若所述间隔时间小于所述预定等待时间,则返回执行步骤8。
[0053]步骤11:取消所述订单,并结束当前流程。[〇〇54]图2是根据本发明实施方式的一种用于账务交易的数据表更新的系统的结构示意图。参见图2,所述系统1000包括:接收模块100、读取模块200、判断模块300、更新及反馈模块400、第一识别模块500、以及更新模块600,具体地:
[0055]接收模块100用于接收用户提交的订单。
[0056]其中,所述订单例如可以包括交易对象的标识符以及交易量等。
[0057]读取模块200用于从非关系型数据库中读取接收模块100接收的订单的交易对象的库存量。
[0058]在本发明的一些实施方式中,所述非关系型数据库例如可以包括分布式键值数据库。
[0059]在本发明的一些实施方式中,所述分布式键值数据库存储在内存中。
[0060]判断模块300用于判断读取模块200读取的库存量是否大于所述交易量。[〇〇61]更新及反馈模块400用于执行下述处理:在判断模块300判断所述库存量大于所述交易量的情况下,基于所述交易量更新所述交易对象的库存量,并向所述用户反馈用于对所述订单进行账务性操作的页面。[〇〇62]第一识别模块500用于执行下述处理:经预定间隔时间后,识别所述用户是否通过更新及反馈模块400反馈的页面完成所述账务性操作。[〇〇63]更新模块600用于执行下述处理:在第一识别模块500识别为完成所述账务性操作的情形下,根据所述订单更新关系型数据库中存储的所述用户的账务数据表。
[0064]在本发明的一些实施方式中,所述关系型数据库为oracle数据库。
[0065]在本发明的一些实施方式中,该系统1000还可以包括第二识别模块以及订单取消模块,具体地,该第二识别模块用于在第一识别模块500识别为未完成所述账务性操作的情形下,识别当前时刻距离反馈所述页面的时刻所经过的时间是否大于预定等待时间;该订单取消模块用于执行下述处理:在该第二识别模块识别为所述经过的时间大于所述预定等待时间的情形下,取消所述订单。
[0066]其中,所述预定等待时间大于所述预定间隔时间,例如,所述预定间隔时间为1分钟,所述预定等待时间为40分钟,当然,本领域的技术人员也可以根据实际需要,对所述预定等待时间以及预定间隔时间进行其他合理设置。[〇〇67]实施本发明提供的用于账务交易的数据表更新的方法及系统,将非关系型数据库作为“热点数据”(指高并发读取的数据,例如交易对象的库存量)的存储容器,可以提高“热点数据”的读写速度,减少用户响应时间;同时,将关系型数据作为账务数据表的存储容器, 可以保证账务数据的一致性。从而,在提高用户响应速度的同时保证数据的一致性。
[0068]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0069]本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
【主权项】
1.一种用于账务交易的数据表更新的方法,其特征在于,所述方法包括:接收用户提交的订单,其中所述订单包括:交易对象的交易量;从非关系型数据库中读取所述交易对象的库存量;判断读取的库存量是否大于所述交易量;若所述库存量大于所述交易量,则基于所述交易量更新所述交易对象的库存量,并向 所述用户反馈用于对所述订单进行账务性操作的页面;经预定间隔时间后,识别所述用户是否通过所述页面完成所述账务性操作;若完成所述账务性操作,则根据所述订单更新关系型数据库中存储的所述用户的账务 数据表。2.如权利要求1所述的方法,其特征在于,所述非关系型数据库包括:分布式键值数据库。3.如权利要求2所述的方法,其特征在于,所述分布式键值数据库存储在内存中。4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:若未完成所述账务性操作,则识别当前时刻距离反馈所述页面的时刻所经过的时间是 否大于预定等待时间,其中,所述预定等待时间大于所述预定间隔时间;若所述经过的时间大于所述预定等待时间,则取消所述订单。5.—种用于账务交易的数据表更新的系统,其特征在于,所述系统包括:接收模块,用于接收用户提交的订单,其中所述订单包括:交易对象的交易量;读取模块,用于从非关系型数据库中读取所述接收模块接收的订单的交易对象的库存 量;判断模块,用于判断所述读取模块读取的库存量是否大于所述交易量;更新及反馈模块,用于执行下述处理:在所述判断模块判断所述库存量大于所述交易 量的情况下,基于所述交易量更新所述交易对象的库存量,并向所述用户反馈用于对所述 订单进行账务性操作的页面;第一识别模块,用于执行下述处理:经预定间隔时间后,识别所述用户是否通过所述更 新及反馈模块反馈的页面完成所述账务性操作;更新模块,用于执行下述处理:在所述第一识别模块识别为完成所述账务性操作的情 形下,根据所述订单更新关系型数据库中存储的所述用户的账务数据表。6.如权利要求5所述的系统,其特征在于,所述非关系型数据库包括:分布式键值数据库。7.如权利要求6所述的系统,其特征在于,所述分布式键值数据库存储在内存中。8.如权利要求5至7中任一项所述的系统,其特征在于,所述系统还包括:第二识别模块,用于执行下述处理:在所述第一识别模块识别为未完成所述账务性操 作的情形下,识别当前时刻距离反馈所述页面的时刻所经过的时间是否大于预定等待时 间,其中,所述预定等待时间大于所述预定间隔时间;订单取消模块,用于执行下述处理:在所述第二识别模块识别为所述经过的时间大于 所述预定等待时间的情形下,取消所述订单。
【文档编号】G06F17/30GK106021597SQ201610397488
【公开日】2016年10月12日
【申请日】2016年6月7日
【发明人】王林彬, 张鹏, 赵素华, 邵培兴, 张司阁, 郝刚
【申请人】中国建设银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1