信息处理方法、信息处理装置、电子设备、介质
文献发布时间:2024-01-17 01:24:51
技术领域
本公开涉及计算机技术领域,尤其涉及一种信息处理方法、信息处理装置、电子设备、计算机可读存储介质以及计算机程序产品。
背景技术
随着大数据时代的到来,数据存储变得十分重要。数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库作为数据管理的有效技术,发挥着越来越重要的作用。
现有技术中,采用同一个数据库实现数据管理,在一些场景中,会出现数据异常等问题。例如热点账户,需要在短时间内针对该账户相关的资源数据进行多次操作,容易达到系统的性能瓶颈,进而导致针对账户相关的资源数据进行的操作失败或者延时,账户相关的资源数据错误等问题。
发明内容
本公开提供一种信息处理方法、信息处理装置、电子设备、计算机可读存储介质及计算机程序产品,以至少解决相关技术中对热点账户的资源数据进行操作时出现错误或延时的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种信息处理方法,包括:接收事务插入请求,在第一类型数据库中插入事务;其中,第一类型数据库用于维护事务;当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;其中,第二类型数据库用于缓存事务对应的数据;当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
可选的,方法还包括:当数据在第二类型数据库中更新失败时,对事务进行回滚处理;其中,回滚处理为恢复至在第二类型数据库中更新之前的状态。
可选的,事务为减少账户对应的资源数据,事务对应有一减少数值,数据在第二类型数据库中更新失败,包括:在账户对应的资源数据小于减少数值时,数据在第二类型数据库中更新失败。
可选的,方法还包括:在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识;根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据;将账户对应的资源数据与账户对应的校验资源数据进行比较;在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。
可选的,方法还包括:在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据;将账户对应的校验资源数据加载至第二类型数据库。
可选的,方法还包括:接收资源查询请求,在第二类型数据库中查询账户对应的资源数据;在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。
可选的,方法还包括:在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁;当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。
根据本公开实施例的第二方面,提供一种信息处理装置,包括:事务插入单元,被配置为执行接收事务插入请求,在第一类型数据库中插入事务;其中,第一类型数据库用于维护事务;数据更新单元,被配置为执行当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;其中,第二类型数据库用于缓存事务对应的数据;事务提交单元,被配置为执行当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
可选的,装置还包括:回滚处理单元,被配置为执行当数据在第二类型数据库中更新失败时,对事务进行回滚处理;其中,回滚处理为恢复至在第二类型数据库中更新之前的状态。
可选的,事务为减少账户对应的资源数据,事务对应有一减少数值,数据在第二类型数据库中更新失败,装置还包括:更新失败单元,被配置为执行在账户对应的资源数据小于减少数值时,数据在第二类型数据库中更新失败。
可选的,装置还包括:事务标识获取单元,被配置为执行在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识;校验资源数据计算单元,被配置为执行根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据;资源数据比较单元,被配置为执行将账户对应的资源数据与账户对应的校验资源数据进行比较;资源数据表更新单元,被配置为执行在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。
可选的,装置还包括:资源数据删除单元,被配置为执行在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据;资源数据加载单元,被配置为执行将账户对应的校验资源数据加载至第二类型数据库。
可选的,装置还包括:资源数据查询单元,被配置为执行接收资源查询请求,在第二类型数据库中查询账户对应的资源数据;资源数据返回单元,被配置为执行在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。
可选的,装置还包括:分布式锁获取单元,被配置为执行在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁;资源数据计算单元,被配置为执行当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行可执行指令,以实现如上述信息处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述信息处理方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序/指令,其特征在于,计算机程序/指令被处理器执行时实现上述信息处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开的一种实施例提供的信息处理方法中,可以接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。本公开的实施例,可以将两个数据库进行组合处理事务,在一个数据库中维护事务,在另一个数据库中缓存事务对应的数据,将事务与事务对应的数据进行分离,提升了数据管理的稳定性,能够支持高并发操作,避免针对热点账户的操作失败或者延时,进而保证账户相关的数据的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1示意性示出本公开示例性实施例中实施信息处理方法的示例性系统架构的示意图;
图2是根据一示例性实施例示出的一种信息处理方法的流程图;
图3是根据一示例性实施例示出的另一种信息处理方法的流程图;
图4是根据一示例性实施例示出的一种在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表的流程图;
图5是根据一示例性实施例示出的一种在第二类型数据库中删除账户对应的资源数据,将账户对应的校验资源数据加载至第二类型数据库的流程图;
图6是根据一示例性实施例示出的一种对应的资源数据与账户对应的校验资源数据是否相同的示意图;
图7是根据一示例性实施例示出的一种在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据的流程图;
图8是根据一示例性实施例示出的一种根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据的流程图;
图9是根据一示例性实施例示出的一种在第二类型数据库中查询账户对应的资源数据的示意图;
图10是根据一示例性实施例示出的一种信息处理装置的组成示意图;
图11是根据一示例性实施例示出了适于用来实现本公开示例性实施例的电子设备的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的信息处理方法的示例性系统架构的示意图。
如图1所示,系统架构1000可以包括终端设备1001、1002、1003中的一种或多种,网络1004和服务器1005。网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器1005可以是多个服务器组成的服务器集群等。
用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收或发送消息等。终端设备1001、1002、1003可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式计算机等等。另外,服务器1005可以是提供各种服务的服务器。
在一种实施例中,本公开的信息处理方法的执行主体可以是服务器1005,服务器1005可以获取由终端设备1001、1002、1003发送的事务插入请求,并在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
此外,还可以通过终端设备1001、1002、1003等执行本公开的信息处理方法,以实现接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
此外,本公开信息处理方法的实现过程还可以由终端设备1001、1002、1003和服务器1005共同实现。例如,终端设备1001、1002、1003可以接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。并将处理结果返回至服务器1005。
随着大数据时代的到来,数据存储变得十分重要。数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库作为数据管理的有效技术,发挥着越来越重要的作用。
现有技术中,采用同一个数据库实现数据管理,在一些场景中,会出现数据异常等问题。例如热点账户,需要在短时间内针对该账户相关的资源数据进行多次操作,容易达到系统的性能瓶颈,进而导致针对账户相关的资源数据进行的操作失败或者延时,账户相关的资源数据错误等问题。
图2是根据一示例性实施例示出的一种信息处理方法的流程图,如图2所示,信息处理方法,可以包括以下步骤。
在步骤S210中,接收事务插入请求,在第一类型数据库中插入事务;其中,第一类型数据库用于维护事务;
在步骤S220中,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;其中,第二类型数据库用于缓存事务对应的数据;
在步骤S230中,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
本公开的一种实施例提供的信息处理方法中,可以接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。本公开的实施例,可以将两个数据库进行组合处理事务,在一个数据库中维护事务,在另一个数据库中缓存事务对应的数据,将事务与事务对应的数据进行分离,提升了数据管理的稳定性,能够支持高并发操作,避免针对热点账户的操作失败或者延时,进而保证账户相关的数据的准确性。
下面,将结合图2及实施例对本示例性实施例中的信息处理方法的步骤S210~S240进行更详细的说明。
步骤S210,接收事务插入请求,在第一类型数据库中插入事务;
在本公开的一种示例实施例中,可以接收事务插入请求,在第一类型数据库中插入事务。其中,第一类型数据库用于维护事务。具体的,事务插入请求可以用于在第一类型数据库中插入事务。举例而言,事务插入请求可以为第一类型数据库中的insert操作(插入操作)。
需要说明的是,本公开对于事务插入请求的具体形式并不做特殊限定。
在本公开的一种示例实施例中,在接收到事务插入请求之后,可以在第一类型数据库中插入事务。具体的,事务可以包括对事务对应的数据进行增加、对事务对应的数据进行删除、对事务对应的数据进行修改等。
举例而言,事务可以为删除某账户的部分资源数据。
需要说明的是,本公开对于在第一类型数据库中插入事务的具体方式并不做特殊限定。
在本公开的一种示例实施例中,第一类型数据库可以为采用了关系模型来组织数据的数据库,如关系型数据库,其以行和列的形式存储数据,这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个第一类型数据库就是由二维表及其之间的关系组成的一个数据组织。例如,可以在第一类型数据库中维护账户明细表。
在本公开的一种示例实施例中,第一类型数据库可以采用OceanBase数据库(分布式第一类型数据库)。
需要说明的是,本公开对于第一类型数据库的具体类型并不做特殊限定。
在本公开的一种示例实施例中,第二类型数据库是指以键值的形式存储数据的数据库,实现了对数据的高速缓存,提高应用的反应速度,极大缓解后端数据库的压力。根据数据的保存方式可以分为临时性、永久性和两者兼具三种。
在本公开的一种示例实施例中,第二类型数据库可以采用Redis(RemoteDictionary Server,远程字典服务)数据库。
需要说明的是,本公开对于第二类型数据库的具体类型并不做特殊限定。
步骤S220,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;
在本公开的一种示例实施例中,在通过上述步骤在第一类型数据库中插入事务之后,可以判断事务是否插入成功,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据。其中,第二类型数据库用于缓存事务对应的数据。具体的,事务在第一类型数据库中插入成功,表示需要在第二类型数据库中更新该事务对应的数据。
举例而言,事务为删除某账户的部分资源数据,在第一类型数据库中插入该事务且成功时,可以在第二类型数据库中查找该账户,并将该账户的部分资源数据进行删除。
需要说明的是,本公开对于根据事务在第二类型数据库中更新数据的具体方式并不做特殊限定。
在本公开的一种示例实施例中,事务在第一类型数据库中插入失败时,可以返回操作失败消息。具体的,事务在第一类型数据库中插入失败,可以表示未能成功在第一类型数据库中插入该事务,此时,可以返回操作失败消息。
举例而言,在将事务插入至第一类型数据库时,若响应时间大于预设时间,则可以表示事务在第一类型数据库中插入失败,此时可以返回操作失败消息。
在本公开的一种示例实施例中,第二数据库可以为缓存型数据库。
需要说明的是,本公开对于事务在第一类型数据库中插入失败的具体类型并不做特殊限定。
在本公开的一种示例实施例中,可以向上游账户返回操作失败消息。
步骤S230,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
在本公开的一种示例实施例中,在通过上述步骤根据事务在第二类型数据库中更新数据之后,可以判断是否更新成功,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。具体的,数据在第二类型数据库中更新成功时,表示已经针对事务在第二类型数据库中更新了数据,此时,可以在第一类型数据库中提交事务,表示此事务已经处理完成。具体而言,提交是指提交事务的所有操作,即事务中所有对数据库的更新写入到磁盘中,事务正常结束。
需要说明的是,本公开对于在第一类型数据库中提交事务的具体方式并不做特殊限定。
在本公开的一种示例实施例中,当数据在第二类型数据库中更新失败时,对事务进行回滚处理。其中,回滚处理为恢复至在第二类型数据库中更新之前的状态。具体的,数据在第二类型数据库中更新失败,可以表示数据未能成功在第二类型数据库中更新,即事务没有在第二类型数据库中得到执行,此时可以对事务进行回滚处理。具体而言,回滚指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。
在本公开的一种示例实施例中,在账户对应的资源数据小于减少数值时,数据在第二类型数据库中更新失败。具体的,事务为减少账户对应的资源数据,事务对应有一减少数值,只有在账户对应的资源数据小于减少数值时,才能够进行减少操作。
举例而言,事务为减少账户对应的资源数据,当该账户中的资源数据小于事务对应的减少数值时,该事务无法执行,则数据在第二类型数据库中更新失败,此时,需要对事务进行回滚处理。
需要说明的是,本公开对于数据在第二类型数据库中更新失败的具体类型并不做特殊限定。
在本公开的一种示例实施例中,如图3所示,可以多线(线程1、线程2、线程3)进行事务处理,可以接收事务插入请求,在第一类型数据库中插入事务,并判断是否插入成功(事务在第一类型数据库中是否插入成功),若插入成功,则根据事务在第二类型数据库中更新数据,若插入失败,则返回操作失败消息;并判断更新是否成功(数据在第二类型数据库中更新是否成功),若更新成功,则在第一类型数据库中提交事务,若更新失败,则对事务进行回滚处理。
在本公开的一种示例实施例中,可以采用Lua脚本(脚本语言)更新可以保证事务的原子性。
在本公开的一种示例实施例中,可以在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识,根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据,将账户对应的资源数据与账户对应的校验资源数据进行比较,在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。参照图4所示,在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表,可以包括以下步骤S410~S440:
步骤S410,在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识;
在本公开的一种示例实施例中,可以在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识。具体的,第二类型数据库中可以存储账户对应的资源数据,以及账户对应的事务标识。具体的,账户对应的事务标识可以用于,在第一类型数据库中查找与该账户对应的事务标识相关的事务。
举例而言,账户对应的事务标识可以为第一类型数据库中维护的明细表的主键ID。
需要说明的是,本公开对于账户对应的事务标识的具体形式并不做特殊限定。
进一步的,可以根据账户对应的标识在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识。
举例而言,账户对应的标识可以为账户ID。
需要说明的是,本公开对于账户的标识的具体形式并不做特殊限定。
步骤S420,根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据;
在本公开的一种示例实施例中,在通过上述步骤得到账户对应的资源数据以及账户对应的事务标识之后,可以根据账户对应的事务标识在第一类型数据库中获取账户对应的事务。具体的,账户对应的事务标识可以用于,在第一类型数据库中查找与该账户对应的事务标识相关的事务,因此,可以通过述账户对应的事务标识在第一类型数据库中查找账户对应的事务,账户对应的事务可以用于指示该账户所进行的所有操作。
需要说明的是,本公开对于根据账户对应的事务标识在第一类型数据库中获取账户对应的事务的具体方式并不做特殊限定。
在本公开的一种示例实施例中,在通过上述步骤得到账户对应的事务之后,可以根据账户对应的事务计算账户对应的校验资源数据。具体的,可以对账户对应的事务进行汇总,得到账户对应的校验资源数据。
需要说明的是,本公开对于根据账户对应的事务计算账户对应的校验资源数据的具体方式并不做特殊限定。
步骤S430,将账户对应的资源数据与账户对应的校验资源数据进行比较;
步骤S440,在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。
在本公开的一种示例实施例中,在通过上述步骤得到账户对应的资源数据以及账户对应的校验资源数据之后,可以比较账户对应的资源数据与账户对应的校验资源数据是否相同,若账户对应的资源数据与账户对应的校验资源数据相同,则表示第二类型数据库中存储的账户对应的校验资源数据正确,此时,可以采用账户对应的资源数据更新第一类型数据库中的资源数据表。
需要说明的是,本公开对于采用账户对应的资源数据更新第一类型数据库中的资源数据表的具体方式并不做特殊限定。
具体的,第一类型数据库中的资源数据表是通过第一类型数据库维护的表格,并资源数据表可以用于记录多个账户的资源数据。
需要说明的是,本公开对于第一类型数据库中的资源数据表的具体形式并不做特殊限定。
本公开的方案,可以对第一类型数据库以及第二类型数据库进行一致性校验。
进一步的,可以每隔预设时间段执行本实施例的方案。例如,每隔5分钟执行本实施例的方案。
通过上述步骤S410~S440,可以在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识,根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据,将账户对应的资源数据与账户对应的校验资源数据进行比较,在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。通过本公开的实施例,可以对第二类型数据库以及第一类型数据库中的数据进行校验,保障系统在高并发场景下的准确性。
在本公开的一种示例实施例中,在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据,将账户对应的校验资源数据加载至第二类型数据库。参照图5所示,在第二类型数据库中删除账户对应的资源数据,将账户对应的校验资源数据加载至第二类型数据库,可以包括以下步骤S510~S520:
步骤S510,在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据;
在本公开的一种示例实施例中,在通过上述步骤判断账户对应的资源数据与账户对应的校验资源数据是否相同之后,若账户对应的资源数据与账户对应的校验资源数据不同时,则表示第二类型数据库中存储的账户对应的资源数据错误,即第二类型数据库中存在脏数据,此时,可以在第二类型数据库中删除账户对应的资源数据。
步骤S520,将账户对应的校验资源数据加载至第二类型数据库。
在本公开的一种示例实施例中,在通过上述步骤在第二类型数据库中删除账户对应的资源数据之后,可以将账户对应的校验资源数据加载至第二类型数据库。具体的,在将第二类型数据库中账户对应的资源数据删除后,可以将通过上述步骤计算得到的账户对应的校验资源数据作为账户对应的资源数据存储如第二类型数据库中。
需要说明的是,本公开对于将账户对应的校验资源数据加载至第二类型数据库的具体方式并不做特殊限定。
在本公开的一种示例实施例中,如图6所示,可以定时执行校验任务,在达到预设时间后,开始执行数据校验任务,在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识,根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据,并将账户对应的资源数据与账户对应的校验资源数据进行比较,判断账户对应的资源数据与账户对应的校验资源数据是否相同,若相同,则采用账户对应的资源数据更新第一类型数据库中的资源数据表,若不同,则在第二类型数据库中删除账户对应的资源数据。
通过上述步骤S510~S520,在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据,将账户对应的校验资源数据加载至第二类型数据库。通过本公开的实施例,可以对第二类型数据库以及第一类型数据库中的数据进行校验,修正系统运行时由于硬件或网络等因素造成的数据不一致的问题,保障系统在高并发场景下的准确性。
在本公开的一种示例实施例中,可以接收资源查询请求,在第二类型数据库中查询账户对应的资源数据,在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。参照图7所示,在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据,可以包括以下步骤S710~S720:
步骤S710,接收资源查询请求,在第二类型数据库中查询账户对应的资源数据;
步骤S720,在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。
在本公开的一种示例实施例中,可以接收资源查询请求,在第二类型数据库中查询账户对应的资源数据。具体的,资源查询请求可以用于在第二类型数据库中查询某个账户对应的资源数据,若第二类型数据库中存在账户对应的资源数据时,则可以直接返回账户对应的资源数据。具体而言,资源查询请求中包括账户对应的标识,可以通过账户对应的标识在第二类型数据库中查询账户对应的资源数据。
需要说明的是,本公开对于在第二类型数据库中查询账户对应的资源数据的具体方式并不做特殊限定。
通过上述步骤S710~S720,可以接收资源查询请求,在第二类型数据库中查询账户对应的资源数据,在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。
在本公开的一种示例实施例中,在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁,当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。参照图8所示,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据,可以包括以下步骤S810~S820:
步骤S810,在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁;
在本公开的一种示例实施例中,在通过上述步骤在第二类型数据库中查询账户对应的资源数据之后,若第二类型数据库中不存在账户对应的资源数据时,则需要根据第一类型数据库计算账户对应的资源数据,此时,可以先获取用于计算账户对应的资源数据的分布式锁。具体的,分布式锁是指分布式系统中的锁,可以通过分布式锁解决分布式系统中控制共享资源访问的问题。具体的,分布式锁具有以下特性:在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行,高可用的获取锁与释放锁,高性能的获取锁与释放锁,具备可重入特性、具备锁失效机制,即自动解锁,防止死锁,具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
需要说明的是,本公开对于分布式锁的具体实现形式并不做特殊限定。
步骤S820,当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据;
在本公开的一种示例实施例中,在通过上述步骤获取到计算账户对应的资源数据的分布式锁时,可以在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。具体的,可以在第二类型数据库中查找账户对应的事务标识,并根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,再根据账户对应的事务计算账户对应的资源数据,最后将计算得到的账户对应的资源数据进行返回。
需要说明的是,本公开对于根据账户对应的事务计算账户对应的资源数据的具体方式并不做特殊限定。
进一步的,在通过上述步骤未获取到计算账户对应的资源数据的分布式锁时,可以表示当前已经有其他线程正在根据账户对应的事务计算账户对应的资源数据了,此时,可以结束本线程,即结束计算账户对应的资源数据的任务。
在本公开的一种示例实施例中,如图9所示,可以接收资源查询请求,在第二类型数据库中查询账户对应的资源数据,判断第二类型数据库中是否存在账户对应的资源数据,若存在,则返回账户对应的资源数据,若不存在,则获取计算账户对应的资源数据的分布式锁,当未获取到计算账户对应的资源数据的分布式锁时,结束本线程,当获取到计算账户对应的资源数据的分布式锁时,可以根据账户对应的事务计算账户对应的资源数据,根据该账户对应的资源数据更新第一类型数据库中的资源数据表,并在第二类型数据库中更新账户对应的资源数据。
通过上述步骤S810~S820,可以在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁,当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。通过本实施例的方案,在进行资源数据查询时,可以采用分布式锁控制数据访问,避免高并发场景下对资源数据进行访问导致数据错误的问题。
本公开的一种实施例提供的信息处理方法中,本公开的一种实施例提供的信息处理方法中,可以接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。本公开的实施例,通过第一类型数据库以及第二类型数据库处理事务,能够支持高并发操作,避免针对热点账户的操作失败或者延时,进而保证账户相关的数据的准确性。
图10是根据一示例性实施例示出的一种信息处理装置框图。参照图10,该信息处理装置1000包括事务插入单元1010、数据更新单元1020、事务提交单元1030。
其中,事务插入单元,被配置为执行接收事务插入请求,在第一类型数据库中插入事务;其中,第一类型数据库用于维护事务;数据更新单元,被配置为执行当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;其中,第二类型数据库用于缓存事务对应的数据;事务提交单元,被配置为执行当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
可选的,装置还包括:回滚处理单元,被配置为执行当数据在第二类型数据库中更新失败时,对事务进行回滚处理;其中,回滚处理为恢复至在第二类型数据库中更新之前的状态。
可选的,事务为减少账户对应的资源数据,事务对应有一减少数值,数据在第二类型数据库中更新失败,装置还包括:更新失败单元,被配置为执行在账户对应的资源数据小于减少数值时,数据在第二类型数据库中更新失败。
可选的,装置还包括:事务标识获取单元,被配置为执行在第二类型数据库中查找账户对应的资源数据以及账户对应的事务标识;校验资源数据计算单元,被配置为执行根据账户对应的事务标识在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的校验资源数据;资源数据比较单元,被配置为执行将账户对应的资源数据与账户对应的校验资源数据进行比较;资源数据表更新单元,被配置为执行在账户对应的资源数据与账户对应的校验资源数据相同时,采用账户对应的资源数据更新第一类型数据库中的资源数据表。
可选的,装置还包括:资源数据删除单元,被配置为执行在账户对应的资源数据与账户对应的校验资源数据不同时,在第二类型数据库中删除账户对应的资源数据;资源数据加载单元,被配置为执行将账户对应的校验资源数据加载至第二类型数据库。
可选的,装置还包括:资源数据查询单元,被配置为执行接收资源查询请求,在第二类型数据库中查询账户对应的资源数据;资源数据返回单元,被配置为执行在第二类型数据库中存在账户对应的资源数据时,返回账户对应的资源数据。
可选的,装置还包括:分布式锁获取单元,被配置为执行在第二类型数据库中不存在账户对应的资源数据时,获取计算账户对应的资源数据的分布式锁;资源数据计算单元,被配置为执行当获取到计算账户对应的资源数据的分布式锁时,在第一类型数据库中获取账户对应的事务,根据账户对应的事务计算账户对应的资源数据,返回账户对应的资源数据。
本公开的一种实施例提供的信息处理装置,可以接收事务插入请求,在第一类型数据库中插入事务,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。本公开的实施例,通过第一类型数据库以及第二类型数据库处理事务,能够支持高并发操作,避免针对热点账户的操作失败或者延时,进而保证账户相关的数据的准确性。
关于上述实施例中的信息处理装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
下面参照图11来描述根据本公开的这种实施例的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130、显示单元1140。
其中,存储单元存储有程序代码,程序代码可以被处理单元1110执行,使得处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,处理单元1110可以执行如图2中所示的步骤S210,接收事务插入请求,在第一类型数据库中插入事务;其中,第一类型数据库用于维护事务;步骤S220,当事务在第一类型数据库中插入成功时,根据事务在第二类型数据库中更新数据;其中,第二类型数据库用于缓存事务对应的数据;步骤S230,当数据在第二类型数据库中更新成功时,在第一类型数据库中提交事务。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1170(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述实施例中的信息处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 日志信息处理方法、装置、电子设备及可读存储介质
- 信息处理方法及装置、电子设备和存储介质
- 信息处理方法、装置、电子设备及可读存储介质
- 投保信息处理方法、装置、电子设备及计算机可读介质
- 信息处理方法和装置、电子设备、计算机可读存储介质
- 信息处理服务器、信息处理方法、信息处理程序、记录了信息处理程序的记录介质、便携终端、便携式计算机的信息处理方法、便携终端用程序、以及记录了便携终端用程序的记录介质
- 信息处理方法、信息处理装置、电子设备及介质