CN117057799B - 资产数据处理方法、装置、设备及存储介质 - Google Patents
资产数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117057799B CN117057799B CN202311310680.2A CN202311310680A CN117057799B CN 117057799 B CN117057799 B CN 117057799B CN 202311310680 A CN202311310680 A CN 202311310680A CN 117057799 B CN117057799 B CN 117057799B
- Authority
- CN
- China
- Prior art keywords
- asset
- account
- node group
- transaction request
- slave node
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 239000012634 fragment Substances 0.000 claims abstract description 172
- 238000012545 processing Methods 0.000 claims abstract description 120
- 238000000034 method Methods 0.000 claims description 148
- 230000008569 process Effects 0.000 claims description 88
- 238000004064 recycling Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 23
- 230000000903 blocking effect Effects 0.000 abstract description 15
- 235000019580 granularity Nutrition 0.000 description 106
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种资产数据处理方法、装置、设备及存储介质,应用于云计算、分布式系统、区块链、资产管理等技术领域,包括:在第一账户的资产交易请求频次大于或等于第一预设值时,则从分布式系统的其他节点组中,为第一账户确定M个从节点组。获取第一账户的N个资产片段,进而将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组。实现将该热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。另外通过将第一账户的资产片段配发给从节点组,从节点组只读写本地数据库中第一账户的资产片段,可以实现水平扩展,有效避免交易阻塞,提升资产数据的处理效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种资产数据处理方法、装置、设备及存储介质。
背景技术
账户系统是以账户为单位,对不同用户账户的资产进行存储和管理。例如对用户的货币、游戏币、消费券等资产进行存储和管理。
目前的账户系统通常采用余额模型,使用键值对(key-value)的形式存储单个账户的余额,例如账户A->余额为10元。因此,交易时,需要修改相应账户的余额(即键值对),例如消费时,需要扣减余额,充值时,需增加余额。对于热点账户,单个键值对的操作容易成为性能瓶颈。为了应对热点账户的高负载请求,则将账户拆分成多个子账户,将单key的读写转换为多key的读写,提高交易读写的并发度。但是,已有的资产数据处理方法,依然存在交易阻塞的问题,进而使得资产数据处理效率低。
发明内容
本申请提供一种资产数据处理方法、装置、设备及存储介质,可以避免资产数据的交易阻塞的问题,进而提高资产数据的处理效率。
第一方面,本申请提供一种资产数据处理方法,应用于第一账户的主节点组中的节点,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产交易请求的节点组,所述方法包括:
在所述第一账户的资产交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中,确定所述第一账户的M个从节点组,所述M为正整数;
获取所述第一账户的N个资产片段,所述N个资产片段是对所述第一账户的当前总资产进行拆分得到,所述N为大于1的正整数;
将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,以使所述M个从节点组处理所述第一账户的资产交易请求,所述P为小于N的正整数。
在第一方面的一些实施例中,所述主节点组中的各节点通过一致性算法,保持数据同步。
第二方面,本申请提供了一种资产数据处理方法,应用于第一账户的从节点组中的节点,所述方法包括:
接收所述第一账户的主节点组发送的K个资产片段,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产数据的交易请求的节点组,所述K个资产片段为从所述第一账户的N个资产片段中所选出的P个资产片段中的K个,所述N个资产片段是对所述第一账户的当前资产数据进行拆分得到,所述第一账户的M个从节点组为所述第一账户的资产数据的交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中确定的,所述N为大于1的正整数,所述M为正整数,所述P为小于N的正整数,所述K为小于P的正整数;
接收所述第一账户的资产交易请求;
基于所述K个资产片段,对所述资产交易请求进行处理;
将所述资产交易请求的处理结果发送给客户端。
在第二方面的一些实施例中,所述从节点组中的各节点通过一致性算法,保持数据同步。
第三方面,本申请提供了一种资产数据处理装置,应用于第一账户的主节点组中的节点,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产交易请求的节点组,所述装置包括:
从节点组确定单元,用于在所述第一账户的资产交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中,确定所述第一账户的M个从节点组,所述M为正整数;
资产片段获取单元,用于获取所述第一账户的N个资产片段,所述N个资产片段是对所述第一账户的当前总资产进行拆分得到,所述N为大于1的正整数;
配发单元,用于将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,以使所述M个从节点组处理所述第一账户的资产交易请求,所述P为小于N的正整数。
在一些实施例中,资产片段获取单元,具体用于确定资产片段的拆分粒度和拆分频次;基于所述拆分粒度和所述拆分频次,对所述第一账户的当前总资产进行拆分,得到所述N个资产片段。
在一些实施例中,资产片段获取单元,具体用于确定所述第一账户在第i时间段内的平均资产交易额度,所述i为正整数;基于所述第i时间段内的平均资产交易额度,对所述第一账户的资产片段在第i-1时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到所述第一账户的资产片段在第i时间段内的拆分粒度和拆分频次;基于所述第i时间段内的拆分粒度和拆分频次,对所述第一账户在第i时间段及所述第i时间段之前的资产进行划分,重复执行,得到所述N个资产片段。
在一些实施例中,资产片段获取单元,具体用于若所述第i时间段内的平均资产交易额度大于或等于第一预设额度值时,则将所述第i-1时间段内的拆分粒度调高至第一拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调低至第一拆分频次作为所述第i时间段内的拆分频次;若所述第i时间段内的平均资产交易额度小于或等于第二预设额度值时,则将所述第i-1时间段内的拆分粒度调低至第二拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调高至第二拆分频次作为所述第i时间段内的拆分频次。
在一些实施例中,从节点组确定单元,具体用于获取所述其他节点组平均每分钟接收到的交易请求量;基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组。
在一些实施例中,从节点组确定单元,具体用于基于所述第一账户的资产片段数量N,确定所述第一账户所需的从节点组的数量M;基于所述第一账户所需的从节点组的数量M,以及所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组。
在一些实施例中,从节点组确定单元,具体用于基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中选出平均每分钟接收到的交易请求量最小的M个节点组,作为所述第一账户的M个从节点组。
在一些实施例中,配发单元,在所述将所述N个资产片段中的P个资产片段,配发给所述M个从节点组之前,还用于确定所述N是否大于或等于第二预设值;若所述N大于或等于所述第二预设值时,则将所述N个资产片段中的P个资产片段,配发给所述M个从节点组;若所述N小于所述第二预设值时,则对所述N个资产片段中的至少一个资产片段进行再次拆分,得到Q个资产片段,并将所述Q个资产片段中的P个资产片段,配发给所述M个从节点组,所述Q为大于或等于所述第二预设值的正整数。
在一些实施例中,所述主节点组中包括节点路由信息,所述节点路由信息包括所述第一账户的M个从节点组的路由信息,配发单元,还用于接收客户端发送的所述第一账户的资产交易请求;基于所述M个从节点组的路由信息,将所述资产交易请求发送给所述M个从节点组中的一个从节点组,以使所述从节点组处理所述交易请求。
在一些实施例中,配发单元,还用于接收所述从节点组发送的资产交易请求,所述资产交易请求是所述从节点组在所述从节点组包括的所述第一账户的剩余资产不足以处理所述资产交易请求时转发的;若所述主节点组包括的所述第一账户的剩余资产足以处理所述资产交易请求时,则处理所述资产交易请求;若所述主节点组包括的所述第一账户的剩余资产不足处理所述资产交易请求时,则向所述M个从节点组中的至少一个从节点组发送第一资产回收信息,并接收所述至少一个从节点组发送的所述第一账户的资产片段,所述第一资产回收信息用于指示所述至少一个从节点组将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,配发单元,还用于在检测到所述第一账户的资产交易请求频次小于或等于第三预设值时,向所述M个从节点组发送第二资产回收信息,所述第二资产回收信息用于指示所述M个从节点组将所述第一账户的剩余资产片段发送给所述主节点组;接收所述M个从节点组发送的所述第一账户的资产片段。
在一些实施例中,所述主节点组中的各节点通过一致性算法,保持数据同步。
第三方面,本申请实施例提供了一种资产数据处理装置,应用于第一账户的从节点组中的节点,所述装置包括:
资产片段接收单元,用于接收所述第一账户的主节点组发送的K个资产片段,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产数据的交易请求的节点组,所述K个资产片段为从所述第一账户的N个资产片段中所选出的P个资产片段中的K个,所述N个资产片段是对所述第一账户的当前资产数据进行拆分得到,所述第一账户的M个从节点组为所述第一账户的资产数据的交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中确定的,所述N为大于1的正整数,所述M为正整数,所述P为小于N的正整数,所述K为小于P的正整数;
请求接收单元,用于接收所述第一账户的资产交易请求;
处理单元,用于基于所述K个资产片段,对所述资产交易请求进行处理;
发送单元,用于将所述资产交易请求的处理结果发送给客户端。
在一些实施例中,请求接收单元,具体用于接收所述主节点组发送的所述资产交易请求,所述资产交易请求是所述客户端发送给所述主节点组后,由所述主节点组基于节点路由信息转发给所述从节点组的,所述节点路由信息包括所述M个从节点组的路由信息;或者,接收所述客户端发送的所述资产交易请求,所述资产交易请求是所述客户端基于所述节点路由信息发送的。
在一些实施例中,处理单元,具体用于若所述资产交易请求为向所述第一账户中存入第一资产时,则将第一资产作为新的资产片段存储在所述从节点组中;若所述资产交易请求为从所述第一账户的资产中取出第二资产时,则从所述K个资产片段中的至少一个资产片段中取出所述第二资产。
在一些实施例中,请求接收单元,具体用于若所述从节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时,则将所述资产交易请求转发给所述主节点组,以使所述主节点组处理所述资产交易请求。
在一些实施例中,请求接收单元,还用于接收所述主节点组发送的第一资产回收信息,所述第一资产回收信息是在所述主节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时发送的,所述第一资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组;将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,请求接收单元,还用于接收所述主节点组发送的第二资产回收信息,所述第二资产回收信息是在所述主节点组在检测到所述第一账户的资产数据的交易请求频次小于或等于第三预设值时发送的,所述第二资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组;基于所述第二资产回收信息,将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,所述从节点组中的各节点通过一致性算法,保持数据同步。
第五方面,提供了一种电子设备,包括处理器和存储器。所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行上述第一方面或第二方面及其各实现方式中的方法。
第六方面,提供了一种芯片,用于实现上述第一方面中任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第一方面或第二方面及其各实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第一方面或第二方面及其各实现方式中的方法。
第八方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面或第二方面及其各实现方式中的方法。
第九方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面及其各实现方式中的方法。
综上,本申请实施例通过将分布式系统所包括的节点划分为多个节点组,每一个节点组负责处理部分账户的资产交易请求,且本申请实施例将每一个账户的当前总资产划分为多个资产片段进行管理。具体的,对于第一账户的主节点组,该主节点组统计第一账户的资产交易请求频次,在第一账户的资产交易请求频次大于或等于第一预设值时,则从分布式系统的其他节点组中,为第一账户确定M个从节点组。接着,获取第一账户的N个资产片段,该N个资产片段是对第一账户的当前总资产进行拆分得到,进而将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组。这样从节点组中的节点可以基于本地存储的第一账户的资产片段,来处理第一账户的后期资产交易请求,实现将该热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。进一步的,本申请实施例的直接将第一账户的资产片段配发给从节点组,这样从节点组在处理第一账户的资产交易请求时,只读写从节点组的本地数据库中第一账户的资产片段,因而能够实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例涉及的一种实施环境示意图;
图2是本发明实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图;
图3是本发明实施例提供的区块结构一个可选的示意图;
图4为本申请一实施例提供的资产数据处理方法的流程示意图;
图5为节点组与账户的对应关系示意图;
图6为主节点组、从节点组和资产片段的示意图;
图7为基于网关中的路由信息进行请求配发的示意图;
图8为客户端向从节点组配发请求的示意图;
图9为本申请一实施例提供的资产数据处理方法的流程示意图;
图10是本申请一实施例提供的资产数据处理装置的示意性框图;
图11是本申请一实施例提供的资产数据处理装置的示意性框图;
图12是本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够除了在这里图示或描述的那些以外的顺序实施。在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请提出的技术方案,可应用于云计算、分布式系统、区块链、资产管理等技术领域,用于避免资产交易的阻塞,进而提高资产数据的处理效率。
已有的账户系统通常采用余额模型,使用键值对(key-value)的形式存储单个账户的余额,例如账户A->余额为10元。因此,交易时,需要修改相应账户的余额(即键值对),例如消费时,需要扣减余额,充值时,需增加余额。对于热点账户,单个键值对的操作容易成为性能瓶颈。为了应对热点账户的高负载请求,现有的方案通常包括提高单key的处理速度或者将单key操作转换为多key操作,对应的方法分别为使用内存数据库和子账户,两种方案可以结合使用。其中内存数据库可以加快单key的读写速度,从而提高交易处理的速度,避免读写io阻塞交易的执行,而子账户通过将账户拆分成多个子账户,将单key的读写转换为多key的读写,提高交易读写的并发度,分摊请求到不同的key,实现负载均衡,更大限度的支撑热点账户的高交易请求。
由上述可知,已有的热点账户应对高交易频次的请求,主要依赖底层数据库的读写能力。例如,使用内存数据库来提高单key的读写速度,降低读写延迟,从而增加交易吞吐量。但是,此方法受限于单节点的性能,无法水平扩展。而拆分子账户通常需预先拆分,依赖人工操作,子账户数量难以动态调整,应对突发流量时也易达到交易处理瓶颈。此外,子账户也受限于底层数据的处理能力,即使将子账户均摊到不同节点,不同子账户能够支持并发,但不同子账户依然共享同一个数据库,因而具体的读写操作也同样受限于底层数据库的处理能力,难以水平扩展。因此,已有的资产数据处理方法,依然存在交易阻塞的问题,进而使得资产数据处理效率低,且难以水平扩展。
为了解决上述技术问题,本申请实施例通过将分布式系统所包括的节点划分为多个节点组,每一个节点组负责处理部分账户的资产交易请求,且本申请实施例将每一个账户的当前总资产划分为多个资产片段进行管理。具体的,对于第一账户的主节点组,该主节点组统计第一账户的资产交易请求频次,在第一账户的资产交易请求频次大于或等于第一预设值时,则从分布式系统的其他节点组中,为第一账户确定M个从节点组。接着,获取第一账户的N个资产片段,该N个资产片段是对第一账户的当前总资产进行拆分得到,进而将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组。这样从节点组中的节点可以基于本地存储的第一账户的资产片段,来处理第一账户的后期资产交易请求,实现将该热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。进一步的,本申请实施例的直接将第一账户的资产片段配发给从节点组,这样从节点组在处理第一账户的资产交易请求时,只读写从节点组的本地数据库中第一账户的资产片段,因而能够实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理效率。
下面对本申请实施例的实施环境进行介绍。
图1为本申请实施例涉及的一种实施环境示意图,包括终端设备101和资产系统102。如图1所示,本申请实施例的资产系统可以为分布式系统,包括多个节点组103,每一个节点组包括至少一个节点。每一个节点组负责一个或多个账户的资产交易请求。本申请实施例的资产交易请求包括资产余额的查询请求、资产的转入请求、资产的转出请求等各种交易请求。例如,节点组1负责账户1和账户2的资产交易请求,节点组2负责账户3的资产交易请求等。
在一些实施例中,可以将一个节点组作为一个集群,同一节点组中的不同节点的数据保持一致,起容灾作用。同一节点组中每个节点的数据同步可以使用一致性算法,例如raft共识算法、paxos算法等,保持各节点的数据同步。这样,当该节点组的某一个节点,例如主节点出现故障时,由于各节点的数据同步,因此其他节点可以接管主节点的工作,成为新的主节点,继续处理该账户的资产交易请求,进而保证了该账户的资产数据的处理安全性和可靠性。
在本申请实施例中,单个账户的总资产由多个资产片段(slice)构成,资产片段具有不同面额,大面额的资产片段可以进一步拆分成多个小面额的资产片段。资产片段可以在不同的节点组之间传递。
在实际业务处理过程中,对象通过终端设备101中的客户端向该账户的主节点组发送资产交易请求,该主节点组处理该资产交易请求,并将处理结果返回给客户端。同时,该主节点通过该账户的资产交易请求频次,若该账户的资产交易请求频次大于或等于第一预设值时,则该主节点组从分布式系统的其他节点组中,为该账户确定M个从节点组,例如将分布式系统中负载量较小的其他节点组,确定为该账户的M个从节点组。接着,该账户的主节点组将主节点组中该账户的N个资产片段中的P个资产片段,配发给这M个从节点组例如,将该账户的资产片段1和资产片段2配发给该账户的从节点组1,将该账户的资产片段3、资产片段4和资产片段5,配发给该账户的从节点组2,等等。其中,该账户的N个资产片段是对该账户的当前总资产进行拆分得到。从节点组接到到主节点组发送的该账户的资产片段后,保存该资产片段,例如将该资产片段保存在该从节点组对应的数据库中。这样在该账户的后期交易过程中,客户端将该账户的资产交易请求发送给该账户的从节点组,进而该从节点组处理该资产交易请求,从节点组从本地包括的该账户的资产片段中取出对应额度的资产,或者从节点组为该账户创建新的资产片段,并向该资产片段中存入对应额度的资产。本申请实施例,将热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。进一步的,本申请实施例的直接将热点账户的资产片段配发给从节点组,这样从节点组在处理热点账户的资产交易请求时,只读写从节点组的本地数据库中该热点账户的资产片段,因而能够实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理效率。
在一些实施例中,本申请实施例的分布式系统可以应用于区块链系统。如图2所示,图2是本发明实施例提供的分布式系统应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的电子设备,如服务器、用户终端)形成,节点之间形成组成的点对点网络,点对点协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图2示出的区块链系统中各节点的功能,涉及的功能包括:路由功能,路由功能是节点具有的基本功能,用于支持节点之间的通信。节点除具有路由功能外,还可以具有应用功能。其中,应用用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:钱包、共享账本、智能合约和区块链等。其中,钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币。共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。智能合约,是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图3,图3是本发明实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本申请实施例对终端设备101的具体类型不做限制。在一些实施例中,终端设备101可包括但不限于:手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、可穿戴智能设备、医疗设备等等。设备往往配置有显示装置,显示装置也可为显示器、显示屏、触摸屏等等,触摸屏也可为触控屏、触控面板等等。
在一些实施例中,分布式系统102中的节点可以为终端设备,例如手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、可穿戴智能设备、医疗设备等等。
在一些实施例中,分布式系统102中的节点可以为服务器。该服务器可以是一台或多台。服务器是多台时,存在至少两台服务器用于提供不同的服务,和/或,存在至少两台服务器用于提供相同的服务,比如以负载均衡方式提供同一种服务,本申请实施例对此不加以限定。其中,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102也可以成为区块链的节点。
需要说明的是,本申请实施例的应用场景包括但不限于图1所示。
本发明可用于各类账户系统中,包括游戏、广告账户系统中的热点账户,提高热点账户的交易处理能力,从而提升系统吞吐率的上限。例如,在ToB场景中,部分B端账户的交易请求频次远远高于其余账户,例如广告账户、活动秒杀等场景,在此类场景中,运用本发明所提出的热点账户的分布式处理方法,能够均摊热点账户的请求压力,实现负载均衡,避免请求频次过高导致节点崩溃。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图4为本申请一实施例提供的资产数据处理方法的流程示意图。由上述图1可知,在本申请实施例中,分布式系统包括多个节点组,每一个节点组用于处理一个或几个账户的资产交易请求,在本申请实施例中,每一个节点组对账户的资产数据的处理过程基本一致。为了便于描述,以分布式系统所包括的多个节点组中,第一账户对应的节点组为例进行说明。本申请实施例中将初始为第一账户分配的节点组记为该第一账户的主节点组。下面以第一账户的主节点组中的节点为例,对本申请实施例提供的方法进行介绍。
如图4所示,本申请实施例的资产数据处理方法包括如下步骤:
S101、主节点组在第一账户的资产交易请求频次大于或等于第一预设值时,从多个节点组中除主节点组之外的其他节点组中,确定第一账户的M个从节点组。
在本申请实施例中,第一账户的主节点组为分布式系统中初始为第一账户分配的节点组,用于管理第一账户的资产,例如处理第一账户的资产交易请求。
本申请实施例的资产数据处理方法,可以应用于热点账户。例如,在ToB场景中,部分B端账户的交易请求量远远高于其余账户,例如广告账户、活动秒杀等场景,在此类场景中,运用本申请实施例提出的资产数据处理方法,能够均摊热点账户的资产交易请求压力,实现负载均衡,避免请求量过高导致交易阻塞或节点崩溃的问题,进而提升资产数据的处理可靠性、稳定性以及效率。
本申请实施例的主节点组包括的至少一个节点,这至少一个节点中至少包括一个主节点,申请实施例的方法可以理解为由该主节点组中的主节点执行。
在一些实施例中,本申请实施例的主节点组中的各节点通过一致性算法,保持数据同步。例如,该主节点组中主节点从客户端处接收到一个资产交易请求后,将该资产交易请求作为日志复制到该主节点组中的其他节点上。接着,主节点执行该资产交易请求,并将该资产交易请求的处理结果返回给客户端。该主节点组中的其他节点也执行该资产交易请求,进而保证该主节点组中每一个节点的数据同步。示例性的,客户端向第一账户的主节点组中的主节点发送资产交易请求为向第一账户中存入10元,这样,主节点将该资产交易请求作为日志复制给主节点组中的其他节点,这样主节点执行该请求,向第一账户的资产数据中写入10元,并将该请求的处理结果发送给客户端。同时,该主节点组中的其他节点也执行该请求,例如向第一账户的资产数据中写入10元,这样可以保证该主节点组中各节点的数据一致性。
在本申请实施例中,初始阶段由第一账户的主节点组处理该第一账户的资产交易请求。该主节点组在处理第一账户的资产交易请求的同时,还统计第一账户的资产交易请求频次,以此判断该第一账户是否为热点账户。其中,资产交易请求频次可以理解为预设时间内,主节点组接到的第一账户的资产交易请求量,用于衡量第一账户的资产交易活跃度。
接着,主节点组将第一账户的资产交易请求频次与第一预设值进行比较,本申请实施例对该第一预设值的具体取值不做限制,可以基于时间需要进行确定。若第一账户的资产交易请求频次,小于该第一预设值时,则说明该第一账户不是热点账户,该主节点组可以有效处理该第一账户的资产交易请求。
若该第一账户的资产交易请求频次大于或等于第一预设值时,则说明该第一账户为热点账户,为了实现负载均衡,防止交易阻塞,以及提高交易效率,则第一账户的主节点组从分布式系统所包括的多个节点组中除该主节点组之外的其他节点组中,为该第一账户选择从节点组,以使第一账户的从节点组处理该第一账户的资产交易请求,减轻主节点组的负担,实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理可靠性和处理效率。
下面对确定第一账户的从节点组的具体过程进行介绍。
本申请实施例对主节点组从多个节点组中除所述主节点组之外的其他节点组中,确定第一账户的M个从节点组的具体方式不做限制。
在一些实施例中,主节点组从其他节点组中随机选出M个节点组,作为第一账户的M个从节点组。
在一些实施例中,可以通过如下步骤S101-A至S101-B的步骤,选出第一账户的M个从节点组:
S101-A、主节点组获取其他节点组平均每分钟接收到的交易请求量;
S101-B、主节点组基于其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。
在该实施例中,主节点组在确定第一账户为热点账户时,则为该第一账户选择从节点组。具体的,对于分布式系统中的每一个节点组,该节点组实时或间歇性的统计该节点组的平均每分钟接收到的交易请求量。主节点组获取其他节点组平均每分钟接收到的交易请求量,其中节点组在平均每分钟接收到的交易请求量可以理解为该节点组的负载量。
本申请实施例对主节点组织获取其他节点组在平均每分钟接收到的交易请求量的具体方式不做限制。
在一种示例中,主节点组向其他节点组发送询问请求,该询问请求用于询问其他节点组在平均每分钟接收到的交易请求量。这样,其他节点组可以基于该询问请求,将自身统计的平均每分钟接收到的交易请求量发送给主节点组。
在另一种示例中,分布式系统中的每一个节点组实时或间歇性的统计自身在平均每分钟接收到的交易请求量,并将统计的自身在平均每分钟接收到的交易请求量发送给其他节点组。这样每一个节点组均可以获知其他节点组平均每分钟接收到的交易请求量。这样,主节点组可以获得其他节点组平均每分钟接收到的交易请求量。
接着,主节点基于其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。
在一些实施例中,第一账户的从节点组的个数M为预设值,例如预设第一账户的从节点组的个数为2或3。这样,主节点组可以基于其他节点组平均每分钟接收到的交易请求量,以及第一账户的从节点组的预设个数,从其他节点组中,为第一账户选出预设个数(例如2个或3个)从节点组。
在一种示例中,第一账户的从节点组的个数为2时,则主节点组基于主节点组自身平均每分钟接收到的交易请求量,以及其他节点组平均每分钟接收到的交易请求量,从其他节点组中选出平均每分钟接收到的交易请求量小于主节点组的平均每分钟接收到的交易请求量的节点组,进而从这些节点组中选出2个节点组作为,第一账户的从节点组。例如,从这些节点组中随机选出2个节点组作为,第一账户的从节点组。再例如,从这些节点组中选出平均每分钟接收到的交易请求量最小的2个节点组作为,第一账户的从节点组。
在一种示例中,第一账户的从节点组的个数为2时,则主节点组基于其他节点组平均每分钟接收到的交易请求量,从其他节点组中选出平均每分钟接收到的交易请求量最小的2个节点组作为,第一账户的从节点组。
在一些实施例中,若第一账户的从节点组的个数M不是预设值时,则上述S101-B包括如下S101-B1和S101-B2的步骤:
S101-B1、主节点组基于第一账户的资产片段数量N,确定第一账户所需的从节点组的数量M;
S101-B2、主节点组基于第一账户所需的从节点组的数量M,以及其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。
在本申请实施例中,为了进一步提高对资源数据的处理效果,则将第一账户的当前总资产划分为N个资产片段,这样可以基于第一账户的资产片段的数量N来确定第一账户所需的从节点组的数量M。
在一种示例中,资产片段数量N与从节点组的数量M之间具有预设的对应关系,示例性的,如表1所示:
表1
由上述表1可知,资产片段的不同数量区间,对应不同的从节点组的数量,例如,若第一账户的资产片段为N3个时,则查找上述表1,可以得到第一账户的从节点组的数量为M1。
主节点组基于上述步骤,确定出第一账户所需的从节点组的数量M后,基于第一账户所需的从节点组的数量M,以及其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。
例如,基于其他节点组平均每分钟接收到的交易请求量,从其他节点组中选出平均每分钟接收到的交易请求量最小的M个节点组,作为第一账户的M个从节点组。
再例如,主节点组基于主节点组自身平均每分钟接收到的交易请求量,以及其他节点组平均每分钟接收到的交易请求量,从其他节点组中选出平均每分钟接收到的交易请求量小于主节点组的平均每分钟接收到的交易请求量的节点组。进而从这些节点组中随机选出M个节点组,作为第一账户的M个从节点组。
电子设备基于上述步骤,为第一账户确定M个从节点组后,执行如下S103的步骤。
S102、主节点组获取第一账户的N个资产片段。
其中,N个资产片段是对第一账户的当前总资产进行拆分得到,N为大于1的正整数。
需要说明的是,上述S102与上述S101在实际执行过程中,没有先后顺序之分,例如上述S102可以在上述S101之前执行,或者在上述S101之后执行,或者与上述S101同步执行。本申请实施例对此不作限制。
在一些实施例中,若上述S102在上述S101之后执行时,即第一账户的主节点组在检测到第一账户的资产交易请求频次,大于或等于第一预设值时,将第一账户的当前总资产拆分为N个资产片段。例如,按照预设的拆分粒度,将第一账户的当前总资产平均拆分为N个资产片段。
在一些实施例中,若上述S102在上述S101之前执行时,则上述S102包括如下S102-A和S102-B的步骤:
S102-A、主节点组确定资产片段的拆分粒度和拆分频次;
S102-B、主节点组基于拆分粒度和拆分频次,对第一账户的当前总资产进行拆分,得到N个资产片段。
在本申请实施例中,拆分粒度可以理解为将第一账户的资产拆分为资产片段时的粒度,拆分频次可以理解为将第一账户的资产拆分为资产片段的频率。例如,拆分粒度为5元,拆分频次为10分钟,这样可以每10分钟,按照5元的拆分粒度将第一账户的资产拆分为多个资产片段。举例说明,在第一个10分钟到达时,第一账户的总资产为100元,则按照拆分粒度5元,可以将100元拆分为20个资产片段。在第二个10分钟到达时,假设第一账户在第一个10分钟与第二个10分钟之间新增的资产为150,则按照拆分粒度5元,可以将150元,拆分为30个资产片段。依次类推,可以将第一账户的当前总资产,拆分为N个资产片段。
在该实现方式中,第一账户的主节点组确定资产片段的拆分粒度和拆分频次,进而基于该拆分频次,确定资产的拆分时间,进而在拆分时间到达时,将主节点组中第一账户的未拆分资产进行拆分。也就是说,第一账户的资产间歇性地被拆分为资产片段,这样主节点组在确定第一账户的M个从节点组之前,主节点组已经将第一账户的资产拆分为N个资产片段,这样主节点组在确定出第一账户的M个从节点组之后,直接可以将N个资产片段中的部分资产片段配发给M个从节点组,而无需等待第一账户的资产拆分,进而提高了资产数据的处理速度。
举例说明,假设资产片段的拆分频次为每隔10分钟进行拆分,这样第一账户的主节点组在第一个10分钟到达时,按照拆分粒度,将第一账户的当前总资产拆分为至少一个资产片段。接着,主节点组在第二个10分钟到达时,按照拆分粒度,对第一账户的资产进行拆分。此时,主节点组按照拆分粒度,对第一账户的资产进行拆分的方式至少包括如下两种示例:示例1,主节点组在第二个10分钟到达时,则基于该拆分粒度,只对第一个10分钟到第二个10分钟之间,第一账户未拆分的资产进行拆分。示例2,主节点组在第二个10分钟到达时,则基于该拆分粒度,对第二个10分钟之前第一账户的所有资产进行拆分。 也就是说,对第一10分钟拆分的资产进行重复拆分。依次类推,第一账户的主节点组对第一账户的资产进行周期性的拆分,在第一账户的资产交易请求频次,大于或等于第一预设值时,主节点组已经将第一账户的当前总资产拆分为N个资产片段。
本申请实施例对确定资产片段的拆分粒度和拆分频次的具体方式不做限制。
在一种可能的实现方式中,上述拆分粒度和拆分频次中的至少一个为预设的。
在本申请实施例中,资产片段的拆分粒度和拆分频次将影响资产交易处理的并发度。资产片段的拆分粒度越小,拆分频次越高,热点账户中资产片段的数量也越多,交易时的并发度也就越大,从而交易的吞吐量也更高。另一方面,资产片段的拆分粒度越小,拆分频次越低,资产片段的面额也就越小,交易金额变大时,参与交易的资产片段的数量变多,并发度会随之下降,进而影响系统吞吐率。
基于此,在一些实施例中,通过检测第一账户的平均资产交易额度来设置第一账户的资产片段的拆分粒度和拆分频次。例如,在最开始的预设时间段内(例如20分钟内),统计第一账户的每一笔资产交易的额度平均值,基于该额度平均值,确定第一账户资产的拆分粒度和拆分频次。示例性的,不同的额度平均值与不同的拆分粒度和拆分频次具体预设的对应关系,可以基于第一账户的额度平均值,将该对应关系中该额度平均值对应的拆分粒度和拆分频次,确定为第一账户的资产的拆分粒度和拆分频次。
在一些实施例中,本申请实施例中第一账户的资产的拆分粒度和拆分频次确定后,不在进行更新。
在一些实施例中,第一账户的资产的拆分粒度和拆分频次确定后,还可以更新,此时上述S102-B包括如下S102-B1至S102-B3的步骤:
S102-B1、主节点组确定第一账户在第i时间段内的平均资产交易额度,i为正整数;
S102-B2、主节点组基于第i时间段内的平均资产交易额度,对第一账户的资产片段在第i-1时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到第一账户的资产片段在第i时间段内的拆分粒度和拆分频次;
S102-B3、主节点组基于第i时间段内的拆分粒度和拆分频次,对第一账户在第i时间段及第i时间段之前的资产进行划分,重复执行,得到N个资产片段。
在该实施例中,第一账户的主节点组基于上述步骤,确定出第一账户资产的拆分粒度和拆分频次后,可以基于第一账户的平均资产交易额度,对确定的拆分粒度和拆分频次中的至少一个进行更新。进而基于更新后的拆分粒度和更新后的拆分频次中的至少一个,对第一账户的当前总资产进行拆分,进而得到第一账户的N个资产片段。
在本申请实施例中,主节点组可以对第一账户资产的拆分粒度和拆分频次进行动态更新。具体的,主节点组间歇性的统计第一账户的平均资产交易额度,例如主节点组确定第一账户在第一时间段内的平均资产交易额度,并基于第一时间段内的平均资产交易额度,对第一账户的资产片段的初始拆分粒度和初始拆分频次中的至少一个进行更新,得到第一账户的资产片段在第一时间段内的拆分粒度和拆分频次。进而,基于第一时间段内的拆分粒度和拆分频次,对第一账户在第一时间段及第一时间段之前的资产进行划分,得到第一账户的至少一个资产片段。接着,主节点组确定第一账户在第二时间段内的平均资产交易额度,并基于第二时间段内的平均资产交易额度,对第一账户的资产片段在第一时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到第一账户的资产片段在第二时间段内的拆分粒度和拆分频次。进而,基于第二时间段内的拆分粒度和拆分频次,对第一账户在第二时间段及第二时间段之前的资产进行划分,得到第一账户的至少一个资产片段。重复执行,直到第一账户的资产交易请求频次大于或等于第一预设值时,进而得到第一账户的N个资产片段。
本申请实施例对第i时间段的具体大小不做限制。
在一种示例中,第i时间段为预设的时间段,即主节点组周期性的更新第一账户的资产拆分粒度和拆分频次中的至少一个。例如,主节点组每隔10分钟,计算一次第一账户的平均资产交易额度,并基于计算的平均资产交易额度,对拆分粒度和拆分频次中的至少一个进行一次更新。
示例性的,平均资产交易额度与资产的拆分粒度和拆分频次具有对应关系,进而基于该对应关系,可以确定出平均资产交易额度对应的拆分粒度和拆分频次,若第一账户当前的拆分粒度和拆分频次与平均资产交易额度对应的拆分粒度和拆分频次不一致时,则将第一账户当前的拆分粒度和拆分频次更新为平均资产交易额度对应的拆分粒度和拆分频次。
在一种示例中,假设平均资产交易额度与资产的拆分粒度和拆分频次具有对应关系如表2所示:
表2
由上述表2可知,不同的平均资产交易额度区间,与不同的拆分粒度和拆分频次对应。这样第一账户的主节点组可以通过计算平均资产交易额度,查询上述表2,实现对第一账户资产的拆分粒度和/或拆分频次的更新。
在另一种示例中,第i时间段为相邻两个拆分时间之间的时间间隔。举例说明,第一账户资产的初始拆分粒度为b1,初始拆分频次c1。主节点组基于初始拆分频次c1确定资产的初始拆分时间,进而统计第一账户在初始拆分时间内的平均资产交易额度为a13。在上述表2中查询到平均资产交易额度为a13时,对应的资产的拆分粒度为b2,拆分频次为c2,进而主节点组将第一账户资产的拆分粒度从b1更新为b2,将拆分频次从c1更新为c2,进而在拆分频次c2对应的拆分时间到达时,按照拆分粒度b2,将第一账户的资产拆分为一个或多个资产片段。接着,继续统计第一账户的平均资产交易额度,在检测到平均资产交易额度对应的拆分粒度和拆分频次,与第一账户的当前拆分粒度和当前拆分频次不一致时,对第一账户的当前拆分粒度和当前拆分频次进行更新,并且基于更新后的拆分粒度和拆分频次,对第一账户的所有资产进行重新拆分。依次类推,在第一账户的资产交易请求频次,大于或等于第一预设值时,主节点组可以将第一账户的当前总资产拆分为N个资产片段。这N个资产片段的大小一致,方便后续将大小相同的资产片段配发给第一账户的从节点组。
在一种示例中,假设平均资产交易额度与资产的拆分粒度和拆分频次具有对应关系如表3所示:
表3
基于上述表3, 主节点组确定出第i时间段内的平均资产交易额度后,将该第i时间段内的平均资产交易额度与第一预设值和第二预设值进行比较,若该第i时间段内的平均资产交易额度大于或等于第一预设额度值时,则将第i-1时间段内的拆分粒度调高至第一拆分粒度作为第i时间段内的拆分粒度,且将第i-1时间段内的拆分频次调低至第一拆分频次作为第i时间段内的拆分频次;若第i时间段内的平均资产交易额度小于或等于第二预设额度值时,则将第i-1时间段内的拆分粒度调低至第二拆分粒度作为第i时间段内的拆分粒度,且将第i-1时间段内的拆分频次调高至第二拆分频次作为第i时间段内的拆分频次。若第i时间段内的平均资产交易额度小于第一预设额度值且大于第二预设额度值时,则将第i-1时间段内的拆分粒度和拆分频次,确定为第i时间段内的不进行更新,即对第i-1时间段内的拆分粒度和拆分频次不进行更新。
举例说明,主节点组基于上述表3,确定出第一账户资产的初始拆分粒度(例如初始拆分粒度为2元)和初始拆分频次(例如初始拆分频次为每10分钟对资产拆分一次),进而基于初始拆分频次,确定第一账户资产的初始拆分时间t1。接着,统计第一账户在初始拆分时间t1内的平均资产交易额度a1。将该平均资产交易额度a1与第一预设额度值a和第二预设额度值b进行比较,若该平均资产交易额度a1大于或等于第一预设额度值a时,则将第一账户资产的初始拆分粒度(例如2元)调高至第一拆分粒度(例如5元),且将第一账户资产的初始拆分频次(例如每10分钟对资产拆分一次)调低至第一拆分频次(例如每20分钟拆分一次)。若平均资产交易额度a1小于或等于第二预设额度值b时,则将第一账户资产的初始拆分粒度(例如2元)调低至第二拆分粒度(例如1元),且将第一账户资产的初始拆分频次(例如每10分钟对资产拆分一次)调高至第二拆分频次(例如每5分钟对资产拆分一次)。若平均资产交易额度a1小于第一预设额度值a且大于第二预设额度值b时,则对第一账户资产的初始拆分粒度(例如2元)和初始拆分频次(例如每10分钟对资产拆分一次)不进行更新。
在一些实施例中,在上述计算第一账户的平均资产交易额度时,可以删除单笔最大的交易额度和单笔最小的交易额度。
由上述描述可知,在本申请实施例中,如图5所示,节点组1包括节点1、节点2和节点,这3个节点主要负责处理账户A2的资产交易请求,因此,节点组1可以理解为账户A2的主节点组。节点组2包括节点4、节点5和节点6,这3个节点负责账户A1和账户A3的资产交易请求,因此,节点组2可以理解为账户A1和账户A3的主节点组。同理,节点组3包括节点7、节点8和节点9,这3个节点负责账户A4的资产交易请求,因此,节点组3可以理解为账户4的主节点组。在本申请实施例中,为了便于交易的并行度,则将账户的资产划分为多个资产片段进行管理。示例性的,如图5所示,将账户A1的当前总资产划分为N个资产片段存储在节点组2中。
在一种示例中,本申请实施例的主节点组对应一个数据库,主节点组中各节点上的资产片段均包括在该数据库中。即第一账户的N个资产片段被保存在主节点组对应的数据库中。分布式系统中,不同节点组对应的数据库相互独立。
在另一种示例中,本申请实施例的主节点组所包括的节点中每一个节点包括一个数据库,且通过一致性算法保证主节点组中不同的节点的数据同步。也就是说,主节点组中每一个节点的数据库中均保存有第一账户的N个资产片段。
电子设备基于上述步骤S101和S102,获得第一账户的N个资产片段,且确定出第一账户的M个从节点组后,执行如下S103的步骤。
S103、主节点组将N个资产片段中的P个资产片段,配发给M个从节点组,以使M个从节点组处理第一账户的资产交易请求。
其中,P为小于N的正整数。
在本申请实施例中,若第一账户的主节点组确定第一账户的资产交易请求频次,大于或等于第一预设值时,即确定第一账户为热点账户时,则基于上述步骤,从分布式系统的其他节点组中,为第一账户选出M个从节点组。进而将主节点组中第一账户的N个资产片段中的P个资产片段配发给第一账户的从节点组。此时第一账户的从节点组和主节点组都具有该第一账户的资产交易处理能力。不同节点组的资产片段存储在节点本地,并通过一致性算法来保证同一节点组中不同节点的数据同步。客户端发起第一账户的资产交易请求时,可以将第一账户相关的资产交易请求,随机转发至第一账户的主节点组或者其他从节点组进行处理,分摊主节点组的处理压力。此外,不同节点组的资产片段相互独立,使得资产交易处理互不冲突,因而能够提高热点账户(即第一账户)的资产交易并发度,增加资产管理系统的吞吐率。
示例性的,如图6所示,假设第一账户为账户A1,第一账户的主节点组包括第一账户的N个资产片段,基于上述步骤,为第一账户确定了2个从节点组,假设为节点组1和节点组3。在配发时,第一账户的主节点组(即节点组2)将第一账户的N个资产片段的部分资产片段,例如将资产片段1至10,发送给节点组1,节点组1将接收到的资产片段1至10存储在节点组1的本地数据库中。主节点组将资产片段11至20配发给节点组3,节点组1将接收到的资产片段1至10存储在节点组1的本地数据库中。配发后,第一账户的主节点组包括第一账户的资产片段21至n。这样在后期交易过程中,节点组1和节点组3可以基于本地数据库保存的第一账户的资产片段,也可以对第一账户的资产交易请求进行处理,进而可以将同一热点账户的资产交易分散到不同节点组进行处理,从而实现负载均衡。
本申请实施例对从N个资产片段中选出待配发的P个资产片段的方式不做限制。
在一种可能的实现方式中,上述P为预设值,例如为10、20等预设值。
在一种可能的实现方式中,将N个资产片段中预设比例的资产片段,确定为P个资产片段。例如,将N个资产片段中的50%的资产片段,作为第一账户待配发的P个资产片段。
主节点组确定出第一账户的N个资产片段中选出P个资产片段后,将这P个资产片段配发给第一账户的M个从节点组。
本申请实施例对主节点组将第一账户的P个资产片段配发给M个从节点组的具体方式不做限制。
在一些实施例中,主节点组将P个资产片段平均配置给M个从节点组。举例说明,假设第一账户待配发的资产片段为100个,即P等于100,第一账户的从节点组的个数为10个,即M等于10。这样,主节点组将第一账户的100个资产片段平均配发(即发送)给第一账户的10个从节点组,每个从节点组接收到10个资产片段,进而将接收到的10个资产片段保存在从节点组本地。在一种示例中,若该从节点组中的每个节点包括一个本地数据库时,则从节点组中的每个节点可以将接收到的第一账户的10个资产片段,存储在该节点的本地数据库中。在后期的资产请求处理过程中,从节点组中的节点,可以直接从本地数据库中取出资产片段。
在一些实施例中,主节点组基于第一账户的M个从节点组中每一个从节点组的负载情况,为每一个从节点组配发第一账户的资源片段。例如,若从节点组的负载较低时,则为该从节点组配发较多的资产片段。若从节点组的负载较高时,则为该从节点组配发较少的资产片段。其中,从节点组的负载可以理解为从节点组平均每分钟处理的资产交易请求量。
在一些实施例中,主节点组在将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组之前,首先需要判断第一账户的资产片段的划分个数是否要求。具体是,判断当前第一账户的资产片段个数N是否大于或等于第二预设值,若N大于或等于第二预设值时,则执行上述S103的步骤,将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组,具体配发过程参照上述实施例的具体描述。
若当前第一账户的资产片段的个数N小于第二预设值,则说明第一账户的资产片段的个数不满足配发要求,此时需要对第一账户的资产片段进行重新划分。具体是对第一账户的N个资产片段中的至少一个资产片段进行再次拆分,得到第一账户的Q个资产片段,Q为大于或等于第二预设值的正整数。进而将这Q个资产片段中的P个资产片段,配发给第一账户的M个从节点组。例如,P为100,M为10,则主节点组将主节点组所包括的第一账户的100个资产片段,发送给第一账户的10个从节点组,例如平均发送给10个从节点组,同时,主节点组从本地数据库中删除这100个资产片段。这样对于第一账户的10个从节点组中的每一个从节点组可以得到第一账户的10个资产片段,进而将得到的这10个资产片段存储在该从节点组本地。
主节点组基于上述步骤,在确定出第一账户的资产交易请求频次大于或等于第一预设值时,则将第一账户的当前总资产拆分成多个更细粒度的资产片段,能够有效地提高热点账户(即第一账户)的资产交易并发度。此外,本申请实施例通过将热点账户(即第一账户)的资产片段派发到不同的从节点组,能够分摊热点账户(即第一账户)主节点组的资产交易处理压力,实现分布式的资产交易处理,提升单账户的资产交易并发处理上限,进而提高资产数据的处理效果。
主节点组将第一账户的P个资产片段配发给第一账户的M个从节点组后,从节点组将接收到的第一账户的资产片段保存在本地。
如图7所示,在一些实施例中,分布式系统中的每一个节点组均包括网关,主节点组为第一账户确定M个从节点组后,还将第一账户的M个从节点组中每一个从节点组的路由信息保存在主节点的网关中。同时,第一账户的从节点组在接收到主节点组发送的资产片段时,将主节点组的路由信息保存在该从节点组的网关中。这样主节点组和从节点组可以通过路由机制来转发该第一账户的资产交易请求至对应的从节点组。
S104、从节点组接收第一账户的资产交易请求。
上述从节点组为第一账户的M个从节点组中的一个从节点组。主节点组将第一账户的P个资产片段中的K个资产片段发送给该从节点组。
在本申请实施例中,主节点组将第一账户的K个资产片段发送给第一账户的从节点组后,该从节点组可以接收第一账户的资产交易请求,并对该资产交易请求进行处理。
本申请实施例对从节点组接收第一账户的资产交易请求的具体方式不做限制。
在一种可能的实现方式中,该从节点组接收主节点组发送的第一账户的资产交易请求,该资产交易请求是客户端发送给主节点组后,由主节点组基于节点路由信息转发给从节点组的,节点路由信息包括M个从节点组的路由信息。也就是说,在本申请实施例中,如图7所示,主节点组(即节点组2)的网关中包括节点路由信息,该节点路由信息中包括第一账户(假设第一账户为账户A1)的M个从节点组的路由信息。这样,如图8所示,客户端将第一账户的资产交易请求发送给第一账户的主节点组后,该主节点组随机从第一账户的M个从节点组中选出一个从节点组,并将该资产交易请求发送给该从节点组。
在另一种可能的实现方式中,该从节点组接收客户端发送的资产交易请求,该资产交易请求是所述客户端基于节点路由信息发送的。示例性的,如图9所示,客户端包括第一账户的M个从节点组的路由信息。这样客户端可以基于自身保存的第一账户的M个从节点组的路由信息,从第一账户的M个从节点组中随机选出一个从节点组,并将第一账户的资产交易请求,发送给该从节点组。
在该实现方式中,客户端中的节点路由信息的获取方式至少包括如下几种方式:
方式1,主节点组基于第一账号的M个从节点组,确定出节点路由信息后,将该节点路由信息发送给客户端。
方式2,主节点组基于第一账号的M个从节点组,确定出节点路由信息后,将该节点路由信息发送给第一账户的各从节点组。基于此,客户端将第一账户的资产交易请求发送给第一账户的主节点组,该主节点组基于节点路由信息,将该资产交易请求发送给第一账户的M个从节点组中的一个从节点组。该从节点组执行完该资产交易请求后,向客户端返回处理结果,该处理结果中可以包括节点路由信息。这样,客户端可以从从节点组的响应信息中得到节点路由信息。在后续阶段,客户端直接可以基于该节点路由信息,将第一账户的资产交易请求,直接发送给第一账户的从节点组,而无需主节点组进行转发,避免频繁访问主节点组导致主节点组负载过高,影响资产交易处理速度。
第一账户的从节点组基于上述步骤接收到第一账户的资产交易请求后,执行如下S106的步骤。
S105、从节点组基于K个资产片段,对资产交易请求进行处理。
在本申请实施例中,若第一账户为热点账户时,则第一账户的主节点组为该第一账户确定M个从节点组,在后续的资产交易处理过程中,将该第一账户的资产交易请求发送给该第一账户的从节点组进行处理。从而实现热点账户的分布式处理,降低热点账户主节点组的处理压力。
本申请实施例对从节点组基于K个资产片段,对资产交易请求进行处理的具体方式不做限制。
在一种可能的实现方式中,若上述资产交易请求为向第一账户中存入第一资产时,则将第一资产作为新的资产片段存储在从节点组中。此时,从节点组中增加了一个第一账户的资产片段。
在另一种可能的实现方式中,若资产交易请求为从第一账户的资产中取出第二资产时,则从K个资产片段中的至少一个资产片段中取出第二资产。
在一些实施例中,若从节点组包括的第一账户的资产数据不足以处理资产交易请求时,则将该资产交易请求转发给主节点组,以使主节点组处理该资产交易请求。例如,上述资产交易请求为第一账户的资产中取出第二资产时,但是,当前从节点组所包括的第一账户的总资产的数量小于第二资产的数量,则从节点组无法执行该资产交易请求,此时,从节点组将该资产交易请求转发给主节点组,以使第一账户的主节点组处理该资产交易请求。若主节点组包括的第一账户的剩余资产足以处理该资产交易请求时,则主节点组直接处理该资产交易请求。若主节点组包括的第一账户的剩余资产不足处理资产交易请求时,则向M个从节点组中的至少一个从节点组发送第一资产回收信息,并接收至少一个从节点组发送的第一账户的资产片段,该第一资产回收信息用于指示至少一个从节点组将第一账户的资产片段发送给主节点组。这样各从节点组接收到主节点组发送的第二资产回收信息时,从节点组将当前从节点组中第一账户的资产片段发送给主节点组。接着,主节点组基于回收的第一账户的资产片段,处理上述资产交易请求。
S106、从节点组将资产交易请求的处理结果发送给客户端。
本申请实施例中,将分布式系统中的节点划分为多个节点组,每一个节点组负责一个或几个账户的资产交易请求。进一步的,为了提高资产数据的处理可靠性和安全性,则一个节点组的各节点通过一致性算法,保持数据一致。这样当该节点组中的主节点下线时,其他节点可以无差别的立刻接管该节点组中主节点的工作,保证账户的资产数据的处理可靠性和安全性。在本申请实施例中,为了提高账户的资产数据的处理效率,则第一账户的主节点组在确定该第一账户为热点账户时,为该第一账户确定M个从节点组,并将第一账户的N个资源片段中的P个资产片段配发给M个从节点组。这样在后续的资产交易请求处理过程中,第一账户的主节点组和M个从节点组对该第一账户的资产交易请求进行处理,进而降低了主节点组的工作负担,防止交易阻塞的问题,进而提升了第一账户的资产数据处理效率。
在一些实施例中,第一账户的主节点组在检测到第一账户的资产交易请求频次小于或等于第三预设值,向M个从节点组发送第二资产回收信息,该第二资产回收信息用于指示从节点组将第一账户的剩余资产片段发送给主节点组。对于M个从节点组中的每一个节点组,该从节点组接收到该第二资产回收信息时,将该从节点组中第一账户的资产片段发送给第一账户的主节点组。这样主节点组可以接收M个从节点组发送的第一账户的资产片段,进而将接收到的第一账户的资产片段保存在主节点组本地。在后续的资产交易处理过程中,由第一账户的主节点组处理该第一账户的资产交易请求,这样可以避免交易过程中触发资产片段回收操作,导致资产交易处理延迟的问题。
在一些实施例中,若在后期交易处理过程中,主节点组检测到第一账户的资产交易请求频次大于或等于第一预设值(即第一账户又变为热点账户)时,则主节点组可以重新为第一账户选择新的从节点组,并将第一账户的资产片段中的部分资产片段配发给第一账户的新的从节点组。也就是说,本申请实施例的整个资产数据处理过程是一个动态调整的过程,可以进一步提高资产数据的处理效果。
在一些实施例中,第一账户的从节点组的数量也能够根据第一账户的资产交易请求频次的提高,来动态增加。例如,在本申请实施例中,第一账户的从节点组将接收到的资产交易请求的个数发送给第一账户的主节点组。这样第一账户的主节点组可以获得第一账户的资产交易请求的个数。当第一资产交易请的个数继续增大到某一数值时,则可以为第一账户增加新的从节点组,其中选出新的从节点组的方式,与上述选择M个从节点组的方式基本一致,在此不再赘述。接着,主节点组向新的从节点组配发第一账户的资产片段,其中配发第一账户的资产片段的方式至少包括如下两种:方式一,将主节点组中未配发给M个从节点组的资产片段中的部分资产片段配发给第一账户的新的从节点组。方式二,主节点组从M个从节点组中回收第一账号的资产片段,并将回收的资产片段和主节点组中的资产片段中的部分资产片段,配发给第一账户的M个从节点组和新的从节点组。
在一些实施例中,若当前的分布式系统中的各节点组的处理能力达到上限时,可以向分布式系统中加入额外节点,组成新的节点组。进而可以将第一账户的部分资产片段派发到新节的节点组,从而实现资产数据处理的水平扩展。
本申请实施例提供的资产数据处理方法,通过将分布式系统所包括的节点划分为多个节点组,每一个节点组负责处理部分账户的资产交易请求,且本申请实施例将每一个账户的当前总资产划分为多个资产片段进行管理。具体的,对于第一账户的主节点组,该主节点组统计第一账户的资产交易请求频次,在第一账户的资产交易请求频次大于或等于第一预设值时,则从分布式系统的其他节点组中,为第一账户确定M个从节点组。接着,获取第一账户的N个资产片段,该N个资产片段是对第一账户的当前总资产进行拆分得到,进而将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组。这样从节点组中的节点可以基于本地存储的第一账户的资产片段,来处理第一账户的后期资产交易请求,实现将该热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。进一步的,本申请实施例的直接将第一账户的资产片段配发给从节点组,这样从节点组在处理第一账户的资产交易请求时,只读写从节点组的本地数据库中第一账户的资产片段,因而能够实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理效率。
上文对本申请实施例提供的资产数据处理方法进行整体介绍。下面通过一具体的实施例,对本申请实施例提供的资产数据处理方法作进一步介绍。
图9为本申请一实施例提供的资产数据处理方法的流程示意图,如图9所示,包括:
S201、主节点组在第一账户的资产交易请求频次大于或等于第一预设值时,从多个节点组中除主节点组之外的其他节点组中,确定第一账户的M个从节点组。
其中,M为正整数。
上述S201的具体实现过程可以参照上述S101的相关描述,在此不再赘述。
例如,主节点组获取其他节点组平均每分钟接收到的交易请求量,并基于其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。例如,基于第一账户的资产片段数量N,确定第一账户所需的从节点组的数量M,并基于第一账户所需的从节点组的数量M,以及其他节点组平均每分钟接收到的交易请求量,从其他节点组中,选出第一账户的M个从节点组。
S202、主节点组获取第一账户的N个资产片段。
其中,N个资产片段是对第一账户的当前总资产进行拆分得到,N为大于1的正整数。
需要说明的是,上述S202与上述S201在执行过程中没有先后顺序之分,即S202可以在上述S201之前执行,或者在上述S201之后执行,或者与上述S201同步执行。
本申请实施例对上述S202的具体实现方式不做限制。
在一些实施例中,主节点组确定资产片段的拆分粒度和拆分频次,并基于拆分粒度和拆分频次,对第一账户的当前总资产进行拆分,得到N个资产片段。
例如,主节点组确定第一账户的平均资产交易额度,基于平均资产交易额度,对拆分粒度和拆分频次中的至少一个进行更新。例如若平均资产交易额度大于或等于第一预设额度值时,则将拆分粒度调高至第一拆分粒度,且将拆分频次调低至第一拆分频次。若平均资产交易额度小于或等于第二预设额度值时,则将拆分粒度调低至第二拆分粒度,且将拆分频次调高至第二拆分频次。进而基于更新后的拆分粒度和更新后的拆分频次中的至少一个,对第一账户的当前总资产进行拆分,得到N个资产片段。
上述S202的具体实现过程可以参照上述S102的相关描述,在此不再赘述。
S203、主节点组将第一账户的N个资产片段中的P个资产片段,配发给M个从节点组。
例如,M个从节点组为2个从节点组,P个资产片段为10个资产片段,这样主节点组可以将10个资产片段中的5个资产片段配发给第一个从节点组,将剩余的5个资产片段配发给第二个从节点组。
S204、主节点组接收客户端发送的第一账户的资产交易请求。
在本申请实施例中,主节点组为第一账户确定M个从节点组,且将第一账户的部分资产片段配发给第一账户的M个从节点组后。主节点组接收到第一账户的资产交易请求时,不是自己直接处理,而是将该资产交易请求发送给从节点组,这样可以将主节点组的工作压力。
S205、主节点组基于M个从节点组的路由信息,将资产交易请求发送给M个从节点组中的一个从节点组。
在本申请实施例中,主节点组中包括M个从节点组中每一个从节点组的路由信息,这样主节点组可以基于M个从节点组的路由信息,从M个从节点组中选出一个从节点组,并将该资产交易请求发送给该从节点组进行处理。
S206、从节点组判断从节点组包括的第一账户的资产数据是否足以处理资产交易请求。
从节点组接收到主节点组发送的资产交易请求后,首先判断该从节点组所包括的第一账户的资产数据是否足以处理该资产交易请求。
若从节点组包括的第一账户的资产数据足以处理资产交易请求时,则执行如下S207和S208的步骤。
若从节点组包括的第一账户的资产数据不足以处理资产交易请求时,则执行如下S209至S214的步骤。
S207、从节点组处理该资产交易请求。
在本申请实施例中,若从节点组确定该从节点组包括的第一账户的资产数据足以处理资产交易请求,则执行处理该资产交易请求。
例如,若资产交易请求为向第一账户中存入第一资产时,则将第一资产作为新的资产片段存储在从节点组中。
再例如,若资产交易请求为从第一账户的资产中取出第二资产时,则从K个资产片段中的至少一个资产片段中取出第二资产。
S208、从节点组将资产交易请求的处理结果发送给客户端。
S209、从节点组将资产交易请求转发给主节点组。
在本申请实施例中,若从节点组确定该从节点组包括的第一账户的资产数据不足以处理资产交易请求,则将该资产交易请求发送给第一账户的主节点组。
S210、主节点组判断主节点组包括的第一账户的资产数据是否足以处理资产交易请求。
若主节点组包括的第一账户的资产数据不足以处理资产交易请求时,则执行如下S211的步骤。
若主节点组包括的第一账户的资产数据足以处理资产交易请求时,则执行如下S214的步骤。
S211、主节点组M个从节点组中的至少一个从节点组发送第一资产回收信息。
其中,第一资产回收信息用于指示至少一个从节点组将第一账户的资产片段发送给主节点组。
在本申请实施例中,若从节点组包括的第一账户的资产数据不足以处理资产交易请求,将该资产交易请求转发给第一账户的主节点组织。若主节点组判断主节点组自身包括的第一账户的资产数据也不足以处理资产交易请求,将从第一账户的从节点组中回收第一账户的资产片段。
S212、从节点组基于第一资产回收信息,将第一账户的资产片段发送给主节点组。
具体的,从节点组接收到第一账户的主节点组发送的第一资产回收信息后,将该从节点组中所包括的第一账户的资产片段发送给主节点组。
S213、主节点组处理资产交易请求,并执行如下S220。
主节点组从第一账户的至少一个从节点组中收回第一账户的资产片段后,若主节点组中所包括的第一账户的资产数据足够处理该资产交易请求时,则执行该资产交易请求。若该若主节点组中所包括的第一账户的资产数据还是不足够处理该资产交易请求时,则该资产交易请求处理失败。
S214、主节点组将处理结果发送给客户端。
最后,主节点组将该第一账户的资产交易请求的处理结果,发送给客户端。
在本申请实施例的一些实施例中,还包括如下S215和S216的步骤。
S215、主节点组在检测到第一账户的资产交易请求频次小于或等于第三预设值时,向M个从节点组发送第二资产回收信息。
其中,第二资产回收信息用于指示M个从节点组将第一账户的剩余资产片段发送给主节点组。
主节点组实时检测第一账户的资产交易请求频次,在在检测到第一账户的资产交易请求频次小于或等于第三预设值时,即第一账户不是热点账户时,则主节点组向M个从节点组发送第二资产回收信息,以回收第一账户的资产片段。
S216、从节点组基于第二资产回收信息,将第一账户的资产片段发送给主节点组。
第一账户的从节点组接收到主节点组发送的第二资产回收信息后,将自身保存的第一账户的资产片段发送给主节点组。这样,第一账户的主节点组处理第一账户的后期资产交易请求。
本申请实施例提供的资产数据处理方法,通过将分布式系统所包括的节点划分为多个节点组,每一个节点组负责处理部分账户的资产交易请求,且本申请实施例将每一个账户的当前总资产划分为多个资产片段进行管理。具体的,对于第一账户的主节点组,该主节点组统计第一账户的资产交易请求频次,在第一账户的资产交易请求频次大于或等于第一预设值时,则从分布式系统的其他节点组中,为第一账户确定M个从节点组。接着,获取第一账户的N个资产片段,该N个资产片段是对第一账户的当前总资产进行拆分得到,进而将第一账户的N个资产片段中的P个资产片段配发给第一账户的M个从节点组。这样从节点组中的节点可以基于本地存储的第一账户的资产片段,来处理第一账户的后期资产交易请求,实现将该热点账户的交易请求分摊到其他节点组上,可以有效提高热点账户的交易处理并发度,提高热点账户交易的吞吐率。进一步的,本申请实施例的直接将第一账户的资产片段配发给从节点组,这样从节点组在处理第一账户的资产交易请求时,只读写从节点组的本地数据库中第一账户的资产片段,因而能够实现水平扩展,可以有效避免交易阻塞,进而提升资产数据的处理效率。
上文结合图4至图9,详细描述了本申请的资产数据处理方法实施例,下文结合图10,详细描述本申请的装置实施例。
图10是本申请一实施例提供的资产数据处理装置的示意性框图。该装置10可以应用于第一账户的主节点组中的节点,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产交易请求的节点组。
如图10所示,资产数据处理装置10包括:
从节点组确定单元11,用于在所述第一账户的资产交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中,确定所述第一账户的M个从节点组,所述M为正整数;
资产片段获取单元12,用于获取所述第一账户的N个资产片段,所述N个资产片段是对所述第一账户的当前总资产进行拆分得到,所述N为大于1的正整数;
配发单元13,用于将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,以使所述M个从节点组处理所述第一账户的资产交易请求,所述P为小于N的正整数。
在一些实施例中,资产片段获取单元12,具体用于确定资产片段的拆分粒度和拆分频次;基于所述拆分粒度和所述拆分频次,对所述第一账户的当前总资产进行拆分,得到所述N个资产片段。
在一些实施例中,资产片段获取单元12,具体用于确定所述第一账户在第i时间段内的平均资产交易额度,所述i为正整数;基于所述第i时间段内的平均资产交易额度,对所述第一账户的资产片段在第i-1时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到所述第一账户的资产片段在第i时间段内的拆分粒度和拆分频次;基于所述第i时间段内的拆分粒度和拆分频次,对所述第一账户在第i时间段及所述第i时间段之前的资产进行划分,重复执行,得到所述N个资产片段。
在一些实施例中,资产片段获取单元12,具体用于若所述第i时间段内的平均资产交易额度大于或等于第一预设额度值时,则将所述第i-1时间段内的拆分粒度调高至第一拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调低至第一拆分频次作为所述第i时间段内的拆分频次;若所述第i时间段内的平均资产交易额度小于或等于第二预设额度值时,则将所述第i-1时间段内的拆分粒度调低至第二拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调高至第二拆分频次作为所述第i时间段内的拆分频次。
在一些实施例中,从节点组确定单元11,具体用于获取所述其他节点组平均每分钟接收到的交易请求量;基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组。
在一些实施例中,从节点组确定单元11,具体用于基于所述第一账户的资产片段数量N,确定所述第一账户所需的从节点组的数量M;基于所述第一账户所需的从节点组的数量M,以及所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组。
在一些实施例中,从节点组确定单元11,具体用于基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中选出平均每分钟接收到的交易请求量最小的M个节点组,作为所述第一账户的M个从节点组。
在一些实施例中,配发单元13,在所述将所述N个资产片段中的P个资产片段,配发给所述M个从节点组之前,还用于确定所述N是否大于或等于第二预设值;若所述N大于或等于所述第二预设值时,则将所述N个资产片段中的P个资产片段,配发给所述M个从节点组;若所述N小于所述第二预设值时,则对所述N个资产片段中的至少一个资产片段进行再次拆分,得到Q个资产片段,并将所述Q个资产片段中的P个资产片段,配发给所述M个从节点组,所述Q为大于或等于所述第二预设值的正整数。
在一些实施例中,所述主节点组中包括节点路由信息,所述节点路由信息包括所述第一账户的M个从节点组的路由信息,配发单元13,还用于接收客户端发送的所述第一账户的资产交易请求;基于所述M个从节点组的路由信息,将所述资产交易请求发送给所述M个从节点组中的一个从节点组,以使所述从节点组处理所述交易请求。
在一些实施例中,配发单元13,还用于接收所述从节点组发送的资产交易请求,所述资产交易请求是所述从节点组在所述从节点组包括的所述第一账户的剩余资产不足以处理所述资产交易请求时转发的;若所述主节点组包括的所述第一账户的剩余资产足以处理所述资产交易请求时,则处理所述资产交易请求;若所述主节点组包括的所述第一账户的剩余资产不足处理所述资产交易请求时,则向所述M个从节点组中的至少一个从节点组发送第一资产回收信息,并接收所述至少一个从节点组发送的所述第一账户的资产片段,所述第一资产回收信息用于指示所述至少一个从节点组将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,配发单元13,还用于在检测到所述第一账户的资产交易请求频次小于或等于第三预设值时,向所述M个从节点组发送第二资产回收信息,所述第二资产回收信息用于指示所述M个从节点组将所述第一账户的剩余资产片段发送给所述主节点组;接收所述M个从节点组发送的所述第一账户的资产片段。
在一些实施例中,所述主节点组中的各节点通过一致性算法,保持数据同步。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图10所示的装置可以执行上述资产数据处理方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现主节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
图11是本申请一实施例提供的资产数据处理装置的示意性框图。该装置11应用于第一账户的从节点组中的节点。
如与11所示,资产数据处理装置20包括:
资产片段接收单元21,用于接收所述第一账户的主节点组发送的K个资产片段,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产数据的交易请求的节点组,所述K个资产片段为从所述第一账户的N个资产片段中所选出的P个资产片段中的K个,所述N个资产片段是对所述第一账户的当前资产数据进行拆分得到,所述第一账户的M个从节点组为所述第一账户的资产数据的交易请求频次大于或等于第一预设值时,从所述多个节点组中除所述主节点组之外的其他节点组中确定的,所述N为大于1的正整数,所述M为正整数,所述P为小于N的正整数,所述K为小于P的正整数;
请求接收单元22,用于接收所述第一账户的资产交易请求;
处理单元23,用于基于所述K个资产片段,对所述资产交易请求进行处理;
发送单元24,用于将所述资产交易请求的处理结果发送给客户端。
在一些实施例中,请求接收单元22,具体用于接收所述主节点组发送的所述资产交易请求,所述资产交易请求是所述客户端发送给所述主节点组后,由所述主节点组基于节点路由信息转发给所述从节点组的,所述节点路由信息包括所述M个从节点组的路由信息;或者,接收所述客户端发送的所述资产交易请求,所述资产交易请求是所述客户端基于所述节点路由信息发送的。
在一些实施例中,处理单元23,具体用于若所述资产交易请求为向所述第一账户中存入第一资产时,则将第一资产作为新的资产片段存储在所述从节点组中;若所述资产交易请求为从所述第一账户的资产中取出第二资产时,则从所述K个资产片段中的至少一个资产片段中取出所述第二资产。
在一些实施例中,请求接收单元22,具体用于若所述从节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时,则将所述资产交易请求转发给所述主节点组,以使所述主节点组处理所述资产交易请求。
在一些实施例中,请求接收单元22,还用于接收所述主节点组发送的第一资产回收信息,所述第一资产回收信息是在所述主节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时发送的,所述第一资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组;将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,请求接收单元22,还用于接收所述主节点组发送的第二资产回收信息,所述第二资产回收信息是在所述主节点组在检测到所述第一账户的资产数据的交易请求频次小于或等于第三预设值时发送的,所述第二资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组;基于所述第二资产回收信息,将所述第一账户的资产片段发送给所述主节点组。
在一些实施例中,所述从节点组中的各节点通过一致性算法,保持数据同步。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图11所示的装置可以执行上述资产数据处理方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现从节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图12是本申请实施例提供的电子设备的示意性框图,图12的电子设备可以用于执行上述资产数据处理方法,该电子设备可以为第一账户的主节点组中的节点,或者为第一账户的从节点组中的节点。
如图12所示,该电子设备30可包括:
存储器31和处理器32,该存储器31用于存储计算机程序33,并将该程序代码33传输给该处理器32。换言之,该处理器32可以从存储器31中调用并运行计算机程序33,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序33中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器31包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序33可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器31中,并由该处理器32执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序33在该电子设备中的执行过程。
如图12所示,该电子设备30还可包括:
收发器34,该收发器34可连接至该处理器32或存储器31。
其中,处理器32可以控制该收发器34与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器34可以包括发射机和接收机。收发器34还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (19)
1.一种资产数据处理方法,其特征在于,应用于第一账户的主节点组中的节点,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产交易请求的节点组,所述方法包括:
在所述第一账户的资产交易请求频次大于或等于第一预设值时,获取所述多个节点组中除所述主节点组之外的其他节点组平均每分钟接收到的交易请求量,并基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组,所述M为正整数;
获取所述第一账户的N个资产片段,所述N个资产片段是对所述第一账户的当前总资产进行拆分得到,所述N为大于1的正整数;
将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,以使所述M个从节点组处理所述第一账户的资产交易请求,所述P为小于N的正整数。
2.根据权利要求1所述的方法,其特征在于,所述获取所述第一账户的N个资产片段,包括:
确定资产片段的拆分粒度和拆分频次;
基于所述拆分粒度和所述拆分频次,对所述第一账户的当前总资产进行拆分,得到所述N个资产片段。
3.根据权利要求2所述的方法,其特征在于,所述基于所述拆分粒度和所述拆分频次,对所述第一账户的当前总资产进行拆分,得到所述N个资产片段,包括:
确定所述第一账户在第i时间段内的平均资产交易额度,所述i为正整数;
基于所述第i时间段内的平均资产交易额度,对所述第一账户的资产片段在第i-1时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到所述第一账户的资产片段在第i时间段内的拆分粒度和拆分频次;
基于所述第i时间段内的拆分粒度和拆分频次,对所述第一账户在第i时间段及所述第i时间段之前的资产进行划分,重复执行,得到所述N个资产片段。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第i时间段内的平均资产交易额度,对所述第一账户的资产片段在第i-1时间段内的拆分粒度和拆分频次中的至少一个进行更新,得到所述第一账户的资产片段在第i时间段内的拆分粒度和拆分频次,包括:
若所述第i时间段内的平均资产交易额度大于或等于第一预设额度值时,则将所述第i-1时间段内的拆分粒度调高至第一拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调低至第一拆分频次作为所述第i时间段内的拆分频次;
若所述第i时间段内的平均资产交易额度小于或等于第二预设额度值时,则将所述第i-1时间段内的拆分粒度调低至第二拆分粒度作为所述第i时间段内的拆分粒度,且将所述第i-1时间段内的拆分频次调高至第二拆分频次作为所述第i时间段内的拆分频次。
5.根据权利要求1所述的方法,其特征在于,所述基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组,包括:
基于所述第一账户的资产片段数量N,确定所述第一账户所需的从节点组的数量M;
基于所述第一账户所需的从节点组的数量M,以及所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一账户所需的从节点组的数量M,以及所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组,包括:
基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中选出平均每分钟接收到的交易请求量最小的M个节点组,作为所述第一账户的M个从节点组。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述N个资产片段中的P个资产片段,配发给所述M个从节点组之前,所述方法还包括:
确定所述N是否大于或等于第二预设值;
所述将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,包括:
若所述N大于或等于所述第二预设值时,则将所述N个资产片段中的P个资产片段,配发给所述M个从节点组;
若所述N小于所述第二预设值时,则对所述N个资产片段中的至少一个资产片段进行再次拆分,得到Q个资产片段,并将所述Q个资产片段中的P个资产片段,配发给所述M个从节点组,所述Q为大于或等于所述第二预设值的正整数。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述主节点组中包括节点路由信息,所述节点路由信息包括所述第一账户的M个从节点组的路由信息,所述方法还包括:
接收客户端发送的所述第一账户的资产交易请求;
基于所述M个从节点组的路由信息,将所述资产交易请求发送给所述M个从节点组中的一个从节点组,以使所述从节点组处理所述交易请求。
9.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
接收所述从节点组发送的资产交易请求,所述资产交易请求是所述从节点组在所述从节点组包括的所述第一账户的剩余资产不足以处理所述资产交易请求时转发的;
若所述主节点组包括的所述第一账户的剩余资产足以处理所述资产交易请求时,则处理所述资产交易请求;
若所述主节点组包括的所述第一账户的剩余资产不足处理所述资产交易请求时,则向所述M个从节点组中的至少一个从节点组发送第一资产回收信息,并接收所述至少一个从节点组发送的所述第一账户的资产片段,所述第一资产回收信息用于指示所述至少一个从节点组将所述第一账户的资产片段发送给所述主节点组。
10.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
在检测到所述第一账户的资产交易请求频次小于或等于第三预设值时,向所述M个从节点组发送第二资产回收信息,所述第二资产回收信息用于指示所述M个从节点组将所述第一账户的剩余资产片段发送给所述主节点组;
接收所述M个从节点组发送的所述第一账户的资产片段。
11.一种资产数据处理方法,其特征在于,应用于第一账户的从节点组中的节点,所述方法包括:
接收所述第一账户的主节点组发送的K个资产片段,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产数据的交易请求的节点组,所述K个资产片段为从所述第一账户的N个资产片段中所选出的P个资产片段中的K个,所述N个资产片段是对所述第一账户的当前资产数据进行拆分得到,所述第一账户的M个从节点组为所述第一账户的资产数据的交易请求频次大于或等于第一预设值时,基于所述多个节点组中除所述主节点组之外的其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中选出的,所述N为大于1的正整数,所述M为正整数,所述P为小于N的正整数,所述K为小于P的正整数;
接收所述第一账户的资产交易请求;
基于所述K个资产片段,对所述资产交易请求进行处理;
将所述资产交易请求的处理结果发送给客户端。
12.根据权利要求11所述的方法,其特征在于,所述接收所述第一账户的资产交易请求,包括:
接收所述主节点组发送的所述资产交易请求,所述资产交易请求是所述客户端发送给所述主节点组后,由所述主节点组基于节点路由信息转发给所述从节点组的,所述节点路由信息包括所述M个从节点组的路由信息;或者,
接收所述客户端发送的所述资产交易请求,所述资产交易请求是所述客户端基于所述节点路由信息发送的。
13.根据权利要求11所述的方法,其特征在于,所述基于所述K个资产片段,对所述资产交易请求进行处理,包括:
若所述资产交易请求为向所述第一账户中存入第一资产时,则将第一资产作为新的资产片段存储在所述从节点组中;
若所述资产交易请求为从所述第一账户的资产中取出第二资产时,则从所述K个资产片段中的至少一个资产片段中取出所述第二资产。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若所述从节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时,则将所述资产交易请求转发给所述主节点组,以使所述主节点组处理所述资产交易请求。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收所述主节点组发送的第一资产回收信息,并基于所述第一资产回收信息,将所述第一账户的资产片段发送给所述主节点组,所述第一资产回收信息是在所述主节点组包括的所述第一账户的资产数据不足以处理所述资产交易请求时发送的,所述第一资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组;或者,
接收所述主节点组发送的第二资产回收信息,并基于所述第二资产回收信息,将所述第一账户的资产片段发送给所述主节点组,所述第二资产回收信息是在所述主节点组在检测到所述第一账户的资产数据的交易请求频次小于或等于第三预设值时发送的,所述第二资产回收信息用于指示所述从节点组将所述第一账户的资产片段发送给所述主节点组。
16.一种资产数据处理装置,其特征在于,应用于第一账户的主节点组中的节点,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产交易请求的节点组,所述装置包括:
从节点组确定单元,用于在所述第一账户的资产交易请求频次大于或等于第一预设值时,获取所述多个节点组中除所述主节点组之外的其他节点组平均每分钟接收到的交易请求量,并基于所述其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中,选出所述第一账户的M个从节点组,所述M为正整数;
资产片段获取单元,用于获取所述第一账户的N个资产片段,所述N个资产片段是对所述第一账户的当前总资产进行拆分得到,所述N为大于1的正整数;
配发单元,用于将所述N个资产片段中的P个资产片段,配发给所述M个从节点组,以使所述M个从节点组处理所述第一账户的资产交易请求,所述P为小于N的正整数。
17.一种资产数据处理装置,其特征在于,应用于第一账户的从节点组中的节点,所述装置包括:
资产片段接收单元,用于接收所述第一账户的主节点组发送的K个资产片段,所述主节点组为分布式系统所包括的多个节点组中,用于处理所述第一账户的资产数据的交易请求的节点组,所述K个资产片段为从所述第一账户的N个资产片段中所选出的P个资产片段中的K个,所述N个资产片段是对所述第一账户的当前资产数据进行拆分得到,所述第一账户的M个从节点组为所述第一账户的资产数据的交易请求频次大于或等于第一预设值时,基于所述多个节点组中除所述主节点组之外的其他节点组平均每分钟接收到的交易请求量,从所述其他节点组中选出的,所述N为大于1的正整数,所述M为正整数,所述P为小于N的正整数,所述K为小于P的正整数;
请求接收单元,用于接收所述第一账户的资产交易请求;
处理单元,用于基于所述K个资产片段,对所述资产交易请求进行处理;
发送单元,用于将所述资产交易请求的处理结果发送给客户端。
18.一种电子设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至10或11至15任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至10或11至15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311310680.2A CN117057799B (zh) | 2023-10-11 | 2023-10-11 | 资产数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311310680.2A CN117057799B (zh) | 2023-10-11 | 2023-10-11 | 资产数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117057799A CN117057799A (zh) | 2023-11-14 |
CN117057799B true CN117057799B (zh) | 2024-02-09 |
Family
ID=88655725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311310680.2A Active CN117057799B (zh) | 2023-10-11 | 2023-10-11 | 资产数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117057799B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020161688A1 (en) * | 2019-02-08 | 2020-08-13 | Christopher Lyndon Higgins | Distributed ledger computing platforms and associated methods, systems and devices |
CN115907949A (zh) * | 2022-11-25 | 2023-04-04 | 中国银行股份有限公司 | 银行交易数据处理方法及装置 |
CN116151982A (zh) * | 2023-02-21 | 2023-05-23 | 平安付科技服务有限公司 | 热点账户的交易数据处理方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105447604B (zh) * | 2014-08-04 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 一种账户处理方法及装置 |
CN109858915B (zh) * | 2019-01-24 | 2022-05-17 | 网联清算有限公司 | 交易系统和业务处理方法 |
EP4167019A4 (en) * | 2020-09-03 | 2023-12-06 | Samsung Electronics Co., Ltd. | METHOD FOR CHANGING THE SETTINGS OF A DISPLAY AND ELECTRONIC DEVICE |
-
2023
- 2023-10-11 CN CN202311310680.2A patent/CN117057799B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020161688A1 (en) * | 2019-02-08 | 2020-08-13 | Christopher Lyndon Higgins | Distributed ledger computing platforms and associated methods, systems and devices |
CN115907949A (zh) * | 2022-11-25 | 2023-04-04 | 中国银行股份有限公司 | 银行交易数据处理方法及装置 |
CN116151982A (zh) * | 2023-02-21 | 2023-05-23 | 平安付科技服务有限公司 | 热点账户的交易数据处理方法、装置、设备及介质 |
Non-Patent Citations (1)
Title |
---|
人机物三元计算中的通用计算账户与个人信息资产代数;徐志伟;谢毅;海沫;李晓林;袁子牧;;计算机研究与发展(06);第1136-1146页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117057799A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091429B (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
EP4202694A1 (en) | Node memory-based data processing method and apparatus, device, and medium | |
JP6716727B2 (ja) | ストリーミングデータ分散処理方法及び装置 | |
CN110263035A (zh) | 基于区块链的数据存储、查询方法及装置和电子设备 | |
CN110737668B (zh) | 数据存储方法、数据读取方法、相关设备及介质 | |
CN108011929A (zh) | 数据请求处理方法、装置、计算机设备和存储介质 | |
CN111405019B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN104011701A (zh) | 内容传送网络 | |
JP7270755B2 (ja) | 分散システムでのメタデータルーティング | |
US10067719B1 (en) | Methods and systems for storing and accessing data in a distributed data storage system | |
CN102523234A (zh) | 一种应用服务器集群实现方法及系统 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN112559637B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN106991008B (zh) | 一种资源锁管理方法、相关设备及系统 | |
CN112069169B (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
CN109413202B (zh) | 区块链交易信息的排序系统及方法 | |
CN112199427A (zh) | 一种数据处理方法和系统 | |
US20230102617A1 (en) | Repeat transaction verification method, apparatus, and device, and medium | |
CN112650812A (zh) | 一种数据分片存储方法、装置、计算机设备和存储介质 | |
US20190372825A1 (en) | Communication apparatus, communication method, and recording medium | |
CN112328632B (zh) | 一种分布式两级缓存的方法和系统 | |
CN107908713A (zh) | 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法 | |
CN117057799B (zh) | 资产数据处理方法、装置、设备及存储介质 | |
CN115098528B (zh) | 业务处理方法、装置、电子设备及计算机可读存储介质 | |
CN105472029A (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 |