一种交易处理系统中的数据存储方法及装置与流程

文档序号:12596395阅读:232来源:国知局
一种交易处理系统中的数据存储方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种交易处理系统中的数据存储方法及装置。



背景技术:

联机处理系统是日常生活中非常常见的一种系统架构,如典型的金融联机交易系统,以缴费交易为例,需要交易发起方、银行(扣款服务)和服务提供商(销账服务)三方参与,在三方中需要传递交易数据。交易系统需要记录和处理三方的交易数据,用于当交易异常时,根据中间步骤信息进行交易的回滚(冲正)。

以三方交易为例,目前对于联机系统中数据的管理多采用如图1所示的方法。图1为本发明实施例提供的一种现有技术中的数据存储方法示意图,如图1所示,一笔成功的交易需要交易发起方、服务提供商和银行三方参与。图中数字1-6为交易步骤,分别对应着每一个交易步骤有数据集1、数据集2、数据集3、数据集4、数据集5和数据集6共六个数据集。当交易处理系统接收到交易发起方的交易请求后,将此时的交易数据记录为数据集1;然后交易处理系统对交易数据进行处理后,将处理后的交易数据记录为数据集2,并把处理后的交易数据发送到银行,对应步骤2;银行接收到交易数据后对交易数据进行处理并发送给交易处理系统,即步骤3;交易处理系统接收到交易数据后,将其存为数据集3之后,对交易数据进行处理,将处理后的交易数据记录为数据集4,并将此时的交易数据发送给服务提供商,对应步骤4;服务提供商接收到交易数据后,对交易数据进行处理并发送给交易处理系统,对应步骤5;交易处理系统接收到交易数据后,将交易数据记录为数据集5,对交易数据进行处理,将处理后的交易数据记录为数据集6,并将处理后的交易数据发送给交易发起方,对应步骤6。

由图1可知,现有的多方交易系统中,对一笔交易中每个步骤的数据都需要在数据库中记录一个数据集,例如三方交易中,针对每一方都需要记录两个数据集,因此三方交易共需要记录六个数据集,这种数据管理方式存在着以下几点不足:

1、交易数据量大

由于对一笔交易中的每一个步骤的数据都需单独记录,尤其是对于多方交易记录,所产生的数据量较大。对于繁忙的交易系统,每天交易笔数高达几百万或者更高,对系统数据库和存储的压力比较大。

2、数据一致性难保证

由于一笔交易的信息在数据库中记录多条交易,为保证一笔交易的完整性需要保证相关的每条记录必须是完整的。现在系统都是多系统备份,系统之间需要数据的同步,数据同步的单位为一条数据。如果数据同步中一笔交易相关的一条数据丢失,会导致数据的完整性遭到破坏。

3、数据重复性高

在一笔交易数据中有些交易数据是重复的,这些重复交易数据浪费了存储资源,并且在程序运行中浪费更多的内存来存储这些数据。

综上所述,现有的联机处理系统中的数据管理方法存在着交易数据量大,数据一致性难保证,数据重复性高的问题。



技术实现要素:

本发明提供一种交易处理系统中的数据存储方法及装置,用以解决现有技术中存在的交易数据量大,数据一致性难保证,数据重复性高的问题。

本发明实施例提供一种交易处理系统中的数据存储方法,包括:

获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;

针对数据集中的每一个交易元素,执行如下步骤:

判断数据存储空间中是否存在交易元素;

若存在交易元素,则比较第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;

若相同,则在第二数据值对应的存储信息中增加数据集的版本信息。

可选地,还包括:

若数据存储空间中不存在交易元素,则在数据存储空间中添加交易元素,并将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,还包括:

若第一数据值与第二数据值不同,则将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,判断数据存储空间中是否存在交易元素之前,还包括:

计算交易元素的哈希桶(Hash bucket)值;

判断数据存储空间中是否存在交易元素,包括:

根据Hash bucket值在数据存储空间查找具有相同哈希桶值的交易元素;

从具有相同哈希桶值的交易元素中查找是否存在交易元素。

本发明实施例提供一种数据读取方法,适用于采用上述数据存储方法的交易处理系统,包括:

接收数据查询请求,数据查询请求中包括版本信息和交易元素;

从交易处理系统的数据存储空间中,查询交易元素对应的版本信息的数据值;

返回交易元素对应的版本信息的数据值。

本发明实施例提供一种交易处理系统中的数据存储装置,包括:

采集模块,用于获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;

判断模块,用于针对数据集中的每一个交易元素,判断数据存储空间中是否存在交易元素;

比较模块,用于当数据存储空间存在交易元素时,比较第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;

存储模块,用于当交易元素的第一数据值与第二数据值相同时,在第二数据值对应的存储信息中增加数据集的版本信息。

可选地,存储模块,还用于当数据存储空间中不存在交易元素时,在数据存储空间中添加交易元素,并将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,存储模块,还用于当第一数据值与第二数据值不同时,将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,判断模块,还用于计算交易元素的哈希桶(Hash bucket)值;

判断模块,具体用于:

根据Hash bucket值在数据存储空间查找具有相同哈希桶值的交易元素;

从具有相同哈希桶值的交易元素中查找是否存在交易元素。

本发明实施例提供一种数据读取装置,适用于采用上述数据存储装置的交易处理系统,包括:

接收模块,用于接收数据查询请求,数据查询请求中包括版本信息和交易元素;

查询模块,用于从交易处理系统的数据存储空间中,查询交易元素对应的版本信息的数据值;

返回模块,用于返回交易元素对应的版本信息的数据值。

综上所述,本发明实施例提供了一种交易处理系统中的数据存储方法及装置,包括:获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;针对数据集中的每一个交易元素,执行如下步骤:判断数据存储空间中是否存在交易元素;若存在交易元素,则比较交易元素的第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;若相同,则在第二数据值对应的存储信息中增加数据集的版本信息。一次交易过程包含了多个版本的数据集,对于不同版本中的同一个交易元素,若这个交易元素的数据值并没有发生变化,则不需要重复记录此交易元素的数据值,而只需增加一个版本记录即可,从而降低了存储的交易数据的重复性,减少了存储的交易数据量,进一步地,由于存储的交易数据量的减少,使得多系统之间的数据一致性更容易得到保证。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种现有技术中的数据存储方法示意图;

图2为本发明实施例提供的一种交易处理系统中的数据存储方法流程示意图;

图3为本发明实施例提供的一种数据存储结构示意图;

图4本发明实施例提供的一种数据存储流程图;

图5为本发明实施例提供的一种数据读取方法流程示意图;

图6为本发明实施例提供的一种交易处理系统中的数据存储装置结构示意图;

图7为本发明提供的一种数据读取装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图2为本发明实施例提供的一种交易处理系统中的数据存储方法流程示意图,如图2所示,包括以下步骤:

S201:获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;

S202:针对数据集中的每一个交易元素,判断数据存储空间中是否存在交易元素;

S203:若存在交易元素,则比较第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;

S204:若相同,则在第二数据值对应的存储信息中增加数据集的版本信息。

在具体实施过程中,本发明实施例所示的方法即适用于双方、三方交易,也适用于参与方多于三方的多方交易。数据存储空间对交易数据的存储是暂时的,当一次完整的交易确认无误后,存储空间即可删去关于此次交易的数据记录。数据存储空间可同时存储多个交易的交易数据,这些交易的交易数据相互独立,互不干扰。

在步骤S201的具体实施过程中,一个数据集对应着一次交易数据处理结果,如图1中数据集1、数据集2、数据集3、数据集4、数据集5和数据集6,每一个都是一个数据集。数据集中携带有版本信息,版本信息与交易处理步骤相对应,如图1中的数据集1对应着第一次数据处理结果,即交易发起方生成了数据集1中的交易数据,数据集1的版本信息所对应的版本号即为1,而数据集2对应着第二次处理结果,即交易处理系统对数据集1中的交易数据的处理结果生成了数据集2中的交易数据,数据集2的版本信息所对应的版本号即为2。

在步骤S202的具体实施过程中,一个数据集由多个交易元素及其之间的关系组成,如交易时间、交易金额、交易账户、交易次数等,可选地,交易元素可以根据实际应用情况及经验确定。可选地,针对每一个交易元素,按照数据名(Key)、数据长度(Len)和数据值(Value)的格式进行组织,其中,数据名与交易元素有着唯一固定的对照关系,如交易元素为交易金额,其数据名为Money,此时,Money便只能表示交易金额这一交易元素,而不能再表示其它交易元素。数据长度表示了该交易元素对应的数据存储大小,数据长度不仅可用于计算存储数据所占的空间大小以更高效地分配存储空间,对于数据调用时,数据长度也是需要调用的重要信息。数据值代表了交易元素的具体内容,例如,交易金额的数据值为1000、10、233等等,又如,交易地点的数据值为上海、北京、深圳等等。

可选地,当获取一个数据集时,针对每一个交易元素,计算交易元素的哈希桶(Hash bucket)值;根据Hash bucket值在数据存储空间查找具有相同哈希桶值的交易元素;从具有相同哈希桶值的交易元素中查找是否存在交易元素。具体实施过程中,一个Hash bucket值有可能对应着多个交易元素,可选地,针对每一个交易元素,当在数据存储空间中查找到该交易算数对应的Hash bucket值时,再根据数据名从这个Hash bucket值所对应的交易元素中查找是否包含了具有相同数据名的交易元素。通过先Hash bucket值查找,可以大大减少查找过程中的比较次数,从而加快了查找速度。可选地,也可以不利用Hash bucket值查找,即数据存储过程中并不引入Hash bucket,在数据查找时,通过比较交易元素数据名的方式判断数据存储空间中是否存有该交易元素,但这种方法的查找速度相对于借助Hash bucket值查找的方式来说大幅度降低。

可选地,针对每一个交易元素,若数据存储空间中不存在该交易元素,则在数据存储空间中添加交易元素,并将第一数据值及所述数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。数据存储空间中不存在该交易元素,说明该交易元素是数据处理过程中新增加的交易元素。对于新增加的交易元素,应在数据存储空间中添加对于该新增的交易元素的存储,其存储信息应包括该交易元素的数据名、数据值和版本信息,可选地,还包括该交易元素的数据长度。可选地,存储过程为:计算此交易元素的Hash bucket值,判断已有的Hash bucket值中是否有与该交易元素的Hash bucket值相同的Hash bucket值,若有,则在此Hash bucket后添加新的节点,此节点的数据名为该交易元素的数据名。若HASH桶中已有的Hash bucket值中不存在该交易元素的Hash bucket值,则在HASH桶中添加新的bucket值。

在步骤S203的具体实施过程中,针对每一个交易元素,若数据存储空间中存在该交易元素,则还需比较该交易元素的第一数据值与第二数据值是否相同,此处的第一数据值为数据集中的交易元素对应的数据值,第二数据值为数据存储空间中该交易元素对应的数据值。例如,图1中的数据集1、数据集2和数据集3,对于交易金额,若数据集2中交易金额的数据值为第一数据值,则数据集1中交易金额的数据值为第二数据值;若数据集3中交易金额的数据值为第一数据值,则数据集1和数据集2中交易金额的数据值为第二数据值,即当前版本之前所有版本中的该交易元素对应的数据值都是第二数据值,第二数据值可能存在的数量并不仅限于1。

在步骤S204的具体实施过程中,针对每一个交易元素,若该交易元素的第一数据值和第二数据值相同,则在第二数据值对应的存储信息中增加数据集的版本信息。对于存在多个第二数据值的情况下,这里的第一数据值和第二数据值相同,指的是第一数据值与任一个第二数据值相同。若第一数据值与第二数据值相同,则在第二数据值对应的存储信息中增加数据集的版本信息,例如,第一数据值value3与第二数据值value2相同,第一数据值value3对应的版本信息为版本3,第二数据值value2对应的版本信息为版本2,则第二数据值value2对应的版本信息中添加版本信息版本3。

可选地,针对每一个交易元素,若该交易元素的第一数据值与第二数据值不同,则将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。交易元素对应的存储位置指的是根据交易元素的数据名划分的存储区域,若交易元素的第一数据值与第二数据值不同,则在交易元素的数据名对应的存储区域中添加第一数据值及其对应的交易版本信息。

图3为本发明实施例提供的一种数据存储结构示意图,如图3所示,存储结构包含了HASH桶,HASH桶采用记录哈希值的方式存储数据节点(item),每一个节点后的[v1]、[v2]和[v3]表示的是节点中记录的版本信息,分别为数据集1对应的第一版本、数据集2对应的第二版本和数据集3对应的第三版本,HASH链表的横链表示具有相同Hash bucket值的具有不同数据名的节点,竖链表表示具有相同数据名但数据值不同的节点,在数据存储过程中,只有交易元素的第一数据值和第二数据值不同或出现新增的交易元素时才会有新的节点。具体存储过程中,当一个交易元素在存储空间中查找不到时,即图3所示的HASH桶中不存在此交易元素的节点,则计算此交易元素的Hash bucket值,判断已有的Hash bucket值中是否有与该交易元素的Hash bucket值相同的Hash bucket值,若有,则在此Hash bucket后的横链中添加新的节点,此节点的数据名为该交易元素的数据名。若HASH桶中已有的Hash bucket值中不存在该交易元素的Hash bucket值,则在HASH桶中添加新的bucket值链表,如图3所示的结构,添加bucket[n+1]。可选地,如图3所示,存储结构中除了HASH桶外,还可以包括版本位图、版本列表、已用节点数、空闲节点数和空闲节点位置。其中,版本位图一个用于辅助运算的标志位,可以用于版本过滤。版本列表用于存储当前数据集已有的版本号,如图3所示的存储结构,其版本列表应存有1,2,3三个版本。已用节点数记录的是已使用的节点数目。空闲节点数记录的是空闲的节点数目。空闲节点位置记录的是未使用的空闲节点链表。需要指出的是,节点侧的存储方式是本发明实施例的主要内容,而哈希桶是对节点侧的优化,版本位图、版本列表、已用节点数、空闲节点数和空闲节点位置都是可选的内容。

图4为本发明实施例提供的一种数据存储流程图,如图4所示,包括以下步骤:

S401:获取数据集;

S402:提取数据集中的一个交易元素;

S403:判断数据存储空间中是否存在该交易元素;若是,则继续步骤S404,若否,则继续步骤S408;

S404:比较交易元素的第一数据值与第二数据值是否相同;若是,则继续步骤S405,若否,则继续步骤S409;

S405:在第二数据值对应的存储信息中增加数据集的版本信息;

S406:判断所有交易要素是否存储完毕;若是,则继续步骤S407,若否,则返回步骤S402;

S407:存储完毕;

S408:存储该交易元素;

S409:将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置。

图5为本发明实施例提供的一种数据读取方法流程示意图,如图5所示,包括以下步骤:

S501:接收数据查询请求,数据查询请求中包括版本信息和交易元素;

S502:从交易处理系统的数据存储空间中,查询交易元素对应的版本信息的数据值;

S503:返回交易元素对应的版本信息的数据值。

具体实施过程中,本发明实施例适用于本发明所提供的交易系统数据存储方法存储的数据。例如,当需要回滚到交易第二步时,查询需从数据存储空间中提取数据集2对应的第二版本数据。查询请求中包含了查询第二版本数据的请求,从数据存储空间中,查询版本信息为第二版本的各数据值及其数据名,可选地,还可以提取该数据值对应的数据长度,最后返回交易元素对应的版本信息的数据值时,按照数据名、数据长度和数据值组合的格式返回。可选地,对于按照本实施例所示的存储方法存储的交易数据,还可以提取指定交易元素对应不同版本时的数据值,如指定提取交易金额要素时,根据交易金额的数据名Money从数据存储空间中提取Money数据名对应的各版本的数据值,可选地,以数据名、数据长度和数据值组合的格式返回。

综上所述,本发明实施例提供了一种交易处理系统中的数据存储方法,包括:获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;针对数据集中的每一个交易元素,执行如下步骤:判断数据存储空间中是否存在交易元素;若存在交易元素,则比较交易元素的第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;若相同,则在第二数据值对应的存储信息中增加数据集的版本信息。一次交易过程包含了多个版本的数据集,对于不同版本中的同一个交易元素,若这个交易元素的数据值并没有发生变化,则不需要重复记录此交易元素的数据值,而只需增加一个版本记录即可,从而降低了存储的交易数据的重复性,减少了存储的交易数据量,进一步地,由于存储的交易数据量的减少,使得多系统之间的数据一致性更容易得到保证。

基于相同的技术构思,本发明实施例还提供了一种交易处理系统中的数据存储装置,该数据存储装置可以执行上述方法实施例。图6为本发明实施例提供的一种交易处理系统中的数据存储装置结构示意图,如图6所示,数据存储装置600包括:采集模块601、判断模块602、比较模块603和存储模块604,其中:

采集模块601,用于获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;

判断模块602,用于针对数据集中的每一个交易元素,判断数据存储空间中是否存在交易元素;

比较模块603,用于当数据存储空间存在交易元素时,比较第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;

存储模块604,用于当交易元素的第一数据值与第二数据值相同时,在第二数据值对应的存储信息中增加数据集的版本信息。

可选地,存储模块604,还用于当数据存储空间中不存在交易元素时,在数据存储空间中添加交易元素,并将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,存储模块604,还用于当第一数据值与第二数据值不同时,将第一数据值及数据集的交易版本信息存储至交易元素对应的存储位置,数据集的交易版本信息属于第一数据值的存储信息。

可选地,判断模块602,还用于计算交易元素的哈希桶(Hash bucket)值;

判断模块602,具体用于:

根据Hash bucket值在数据存储空间查找具有相同哈希桶值的交易元素;

从具有相同哈希桶值的交易元素中查找是否存在交易元素。

本发明实施例还提供了一种数据读取装置,,适用于采用上述数据存储装置的交易处理系统。图7为本发明提供的一种数据读取装置结构示意图,如图7所示,读取装置700包括:接收模块701、查询模块702和返回模块703,其中:

接收模块701,用于接收数据查询请求,数据查询请求中包括版本信息和交易元素;

查询模块702,用于从交易处理系统的数据存储空间中,查询交易元素对应的版本信息的数据值;

返回模块703,用于返回交易元素对应的版本信息的数据值。

综上所述,本发明实施例提供了一种交易处理系统中的数据存储方法及装置,包括:获取数据集,数据集中携带版本信息,版本信息与交易处理步骤相对应;针对数据集中的每一个交易元素,执行如下步骤:判断数据存储空间中是否存在交易元素;若存在交易元素,则比较交易元素的第一数据值与第二数据值是否相同;第一数据值为数据集中交易元素对应的数据值,第二数据值为数据存储空间中交易元素对应的数据值;若相同,则在第二数据值对应的存储信息中增加数据集的版本信息。一次交易过程包含了多个版本的数据集,对于不同版本中的同一个交易元素,若这个交易元素的数据值并没有发生变化,则不需要重复记录此交易元素的数据值,而只需增加一个版本记录即可,从而降低了存储的交易数据的重复性,减少了存储的交易数据量,进一步地,由于存储的交易数据量的减少,使得多系统之间的数据一致性更容易得到保证。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1