一种数据处理的方法、装置和系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置和系统。
背景技术
随着互联网技术的发展,越来越多的用户借助于互联网对数据进行存储、管理以及更新。例如:在电子商务中,假设对于在售产品的数量,其总量为100件,当该在售产品售出1件时,需对总量扣减1,在扣减100次之后,总量为零,将不再允许对该在售产品的数量进行扣减,即该在售产品售完。其中,在售产品的数量叫做“额度数据”。
现有技术中,对于额度数据的处理,具体地,将某一业务对应的额度数据保存在数据库的一行数据库记录中;对于针对该业务的业务请求(即额度数据处理请求,简称:额度请求),通过对该行数据库记录执行读操作来判断额度数据存量,进而根据额度数据存量对该行数据库记录中的额度数据执行写操作来进行减额度处理。
在实际应用中,经常会出现高并发的额度请求,例如:限额抢购、秒杀购物、抢红包等。采用上述额度数据的处理方法,能够利用数据库行操作的原子性来保证高并发额度请求下的竟态互斥。但是,由于针对每一个额度请求,都需要对同一行数据库记录至少进行一次读写操作,对数据库性的读写性能要求较高,难以满足高并发的额度数据处理请求的需求。
发明内容
有鉴于此,本申请实施例提供一种数据处理的方法、装置和系统,用于解决现有技术难以满足高并发的额度数据处理请求的需求的问题。
本申请实施例提供一种数据处理的方法,所述方法应用在非叶子节点服务器中,包括:
通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量;
将所述聚合额度请求量发送给父节点服务器。
本申请实施例还提供一种数据处理的方法,所述方法应用在根节点服务器中,包括:
接收非叶子节点服务器发送的聚合额度请求量,其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的;
根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值。
本申请实施例还提供一种数据处理的方法,所述方法应用在叶子节点服务器中,包括:
接收非叶子节点服务器发送的额度ID值,其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的;
根据所述额度ID值,针对预设时长内的额度请求进行数据处理。
本申请实施例还提供一种数据处理装置,所述装置应用在非叶子节点服务器中,所述装置包括:聚合单元和发送单元,其中:
聚合单元,用于通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量;
发送单元,用于将所述聚合额度请求量发送给父节点服务器。
本申请实施例还提供一种数据处理装置,所述装置应用在根节点服务器中,所述装置包括:接收单元和分配单元,其中:
接收单元,用于接收非叶子节点服务器发送的聚合额度请求量,其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的;
分配单元,用于根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值。
本申请实施例还提供一种数据处理装置,所述装置应用在叶子节点服务器中,所述装置包括:接收单元和数据处理单元,其中:
接收单元,用于接收非叶子节点服务器发送的额度ID值,其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的;
数据处理单元,用于根据所述额度ID值,针对预设时长内的额度请求进行数据处理。
本申请实施例还提供一种数据处理系统,所述系统包括:应用在根节点服务器中的数据处理装置、应用在非叶子节点服务器中的数据处理装置和应用在叶子节点服务器中的数据处理装置。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
非叶子节点服务器通过对其子节点服务器在预设时长内的额度请求进行请求聚合,确定聚合额度请求量,并将所述聚合额度请求量发送给其父节点服务器,在高并发的额度请求下,通过对预设时长内的额度请求进行聚合,能够减少数据库的访问次数,有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种数据处理的方法的流程示意图;
图2为本申请实施例提供的一种服务器结构示意图;
图3为本申请实施例提供的一种服务器结构示意图;
图4为本申请实施例提供的一种数据处理的方法的流程示意图;
图5为本申请实施例提供的一种数据处理的方法的流程示意图;
图6为本申请实施例提供的一种电子设备的示意结构图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的一种数据处理装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图;
图10为本申请实施例提供的一种数据处理装置的结构示意图;
图11为本申请实施例提供的一种数据处理装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图;
图13为本申请实施例提供的一种数据处理装置的结构示意图;
图14为本申请实施例提供的一种数据处理装置的结构示意图;
图15为本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
为了实现本申请的目的,本申请实施例提供一种数据处理的方法、装置和系统,所述方法包括:非叶子节点服务器通过对其子节点服务器在预设时长内的额度请求进行请求聚合,确定聚合额度请求量,并将所述聚合额度请求量发送给其父节点服务器,在高并发的额度请求下,通过对预设时长内的额度请求进行聚合,能够减少数据库的访问次数,有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图1为本申请实施例提供的一种数据处理的方法的流程示意图。所述方法应用在非叶子节点服务器中,所述方法可以如下所示。
步骤101:通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量。
在步骤101中,所述非叶子节点服务器对其子节点服务器在所述预设时长内的额度请求进行请求聚合,确定其子节点服务器在所述预设时长内的聚合额度请求量。
其中,所述子节点服务器是叶子节点服务器或下层非叶子节点服务器。
所述叶子节点服务器负责处理具体的业务请求以及对数据库执行减额度处理,例如,在商品限时抢购业务中,所述叶子节点服务器接收用户发送的业务请求,即抢购请求,并对保存有该限时抢购商品的额度数据的数据库执行减额度处理。
图2为本申请实施例提供的一种服务器结构示意图。
由图2可知,非叶子节点服务器B的子节点为叶子节点服务器D和叶子节点服务器E。
在预设时长1min内,叶子节点服务器D接收到3个额度请求,叶子节点服务器E接收到2个额度请求。非叶子节点服务器B对叶子节点服务器D和叶子节点服务器E在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为5。
图3为本申请实施例提供的一种服务器结构示意图。
由图3可知,非叶子节点服务器B的子节点为下层非叶子节点服务器D和下层非叶子节点服务器E。
在预设时长1min内,下层非叶子节点服务器D接收到3个额度请求,下层非叶子节点服务器E接收到0个额度请求。非叶子节点服务器B对下层非叶子节点服务器D和下层非叶子节点服务器E在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为3。
步骤102:将所述聚合额度请求量发送给其父节点服务器。
在步骤102中,所述非叶子节点服务器将所述聚合额度请求量发送给其父节点服务器。
其中,所述父节点服务器是根节点服务器或上层叶子节点服务器。
当所述非叶子节点服务器的父节点是所述根节点服务器时,所述非叶子节点服务器将所述聚合额度请求量直接发送给所述根节点服务器。
仍以图2为例,非叶子节点服务器B的父节点为根节点服务器A,非叶子节点服务器C的父节点也为根节点服务器A。
非叶子节点服务器B的子节点为叶子节点服务器D和叶子节点服务器E,非叶子节点服务器C的子节点为叶子节点服务器F和叶子节点服务器G。
在预设时长1min内,叶子节点服务器D接收到3个额度请求,叶子节点服务器E接收到0个额度请求;在预设时长1min内,叶子节点服务器F接收到0个额度请求,叶子节点服务器G接收到0个额度请求。
非叶子节点服务器B对叶子节点服务器D和叶子节点服务器E在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为3;非叶子节点服务器C对叶子节点服务器F和叶子节点服务器G在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为0。
非叶子节点服务器B将所述聚合额度请求量3直接发送给根节点服务器A。
当所述非叶子节点服务器的父节点是上层非叶子节点服务器时,通过所述上层非叶子节点服务器将所述聚合额度请求量发送给所述根节点服务器。
仍以上述图3为例,该服务器结构包括两层非叶子节点服务器:上层非叶子节点服务器B、C和下层非叶子节点服务器D、E、F、G。
上层非叶子节点服务器B、C的父节点是根节点A。
下层非叶子节点服务器D、E的父节点是上层非叶子节点服务器B,下层非叶子节点服务器F、G父节点是上层非叶子节点服务器C。
非叶子节点服务器D对应2个叶子节点服务器H、I,非叶子节点服务器E对应2个叶子节点服务器J、K,非叶子节点服务器F对应2个叶子节点服务器L、M,非叶子节点服务器对应2个叶子节点服务器N、P。
在预设时长1min内,叶子节点服务器H接收到3个额度请求,叶子节点服务器I接收到2个额度请求;在预设时长1min内,叶子节点服务器J接收到1个额度请求,叶子节点服务器K接收到2个额度请求;在预设时长1min内,叶子节点服务器L接收到0个额度请求,叶子节点服务器M接收到2个额度请求;在预设时长1min内,叶子节点服务器N接收到3个额度请求,叶子节点服务器P接收到0个额度请求。
下层非叶子节点服务器D对叶子节点服务器H和叶子节点服务器I在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为5;下层非叶子节点服务器E对叶子节点服务器J和叶子节点服务器K在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为3;下层非叶子节点服务器F对叶子节点服务器L和叶子节点服务器M在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为2;下层非叶子节点服务器G对叶子节点服务器N和叶子节点服务器P在预设时长1min内接收到的额度请求进行请求聚合,确定聚合额度请求量为3。
上层非叶子节点服务器B对下层非叶子节点服务器D确定的聚合额度请求量5和下层非叶子节点服务器E确定的聚合额度请求量3再次进行请求聚合,确定聚合额度请求量为8;上层非叶子节点服务器C对下层非叶子节点服务器F确定的聚合额度请求量2和下层非叶子节点服务器G确定的聚合额度请求量3再次进行请求聚合,确定聚合额度请求量为5。
上层非叶子节点服务器B将所述聚合额度请求量8发送给根节点服务器A,上层非叶子节点服务器C同样将所述聚合额度请求量5发送给根节点服务器A。
本申请实施例中,一个节点服务器的子节点服务器个数最大值为D,即:所述根节点服务器最多包含D个所述上层非叶子节点服务器,一个所述上层非叶子节点服务器最多包含D个所述下层非叶子节点分服务器,一个所述下层非叶子节点服务器最多包含D个所述叶子节点服务器。
所述根节点服务器、所述上层非叶子节点服务器、所述下层非叶子节点分服务器以及所述叶子节点服务器构成树形结构。
树形结构的树高度H与节点服务器数量N是对数关系,额度请求的响应时间为H*预设时长,使得所述响应时长仅成对数级增长。
由于一个节点服务器的子节点服务器个数最大值为D,在预设时长内每一个节点服务器至多接收到D个子节点服务器发送的额度请求,因此,根节点服务器以及各层非叶子节点服务器的额度请求不会随着叶子节点服务器接收到的额度请求量(即业务请求量)增长。
需要说明的是,所述D的大小可以根据实际情况确定,这里不做具体限定。
本申请实施例中,将所述聚合额度请求量发送给所述父节点服务器之后,所述方法还包括:
接收所述父节点服务器返回的额度ID值;
根据所述子节点服务器在预设时长内的额度请求,将所述额度ID值分配给所述子节点服务器。
本申请实施例中,将额度数据及相关业务数据保存在N个数据库,并确定每个数据库中的额度ID值范围。当额度数据的额度总量为X时,每个数据库中的额度量(最大更新操作量)为R=X/N。
通过控制数据库的数量,能够控制每个数据库中的最大更新操作量R的大小,以保证每个数据库的处理能力能够满足该最大更新操作量R。
根节点服务器负责维护额度数据的额度总量、剩余额度以及额度ID值。
应理解,额度ID值可以是一个或多个。当额度ID值为多个时,该额度ID值还可以是额度ID范围或额度ID列表等。
但是,该额度ID值为额度ID范围时,即能够更好地保存所述额度ID值,又能够控制额度分配过程中的网络传输量。
例如:对于100个随机红包数据,ID范围为000001~000100。将所述100个红包数据保存在2个数据库中。其中,数据库一中存储50个额度数据,额度ID范围为000001~000050;数据库二中存储50个额度数据,额度ID范围为000051~000100。
根节点服务器负责维护所述红包数据的额度总量、剩余额度以及额度ID范围,例如,额度总量为100,总剩余额度为80,其中,数据库一中的剩余额度为30,额度ID范围为000031~000050;数据库二中的剩余额度为50,额度ID范围为000051~000100。
当所述根节点服务器接收到所述聚合额度请求量之后,所述根节点服务器通过判断剩余额度以及所述聚合额度请求量向所述非叶子节点服务器返回额度ID值。
所述非叶子节点服务器接收到所述根节点服务器返回的所述额度ID值之后,根据所述叶子节点服务器在预设时长内的额度请求,将所述额度ID值分配给所述叶子节点服务器,使得所述叶子节点服务器对所述额度ID值对应的数据库执行减额度处理。
仍以上述图2为例,当根节点服务器A接收到非叶子节点服务器B发送的所述聚合额度请求量3之后,通过判断确定总剩余额度为5,其中,数据库一中的剩余额度为3,额度ID范围为000048~000050;数据库二中的剩余额度为2,额度ID范围为000099~000100。根节点服务器A从5个剩余额度对应的5个额度ID值中选择3个额度ID值,例如,额度ID范围000048~000050内的3个额度ID值,并向非叶子节点服务器B返回所述3个额度ID值。
非叶子节点服务器B接收到所述3个额度ID值之后,由于在预设时长1min内,叶子节点服务器D接收到3个额度请求,叶子节点服务器E接收到0个额度请求,因此,非叶子节点服务器将所述3个额度ID值分配给叶子节点服务器D,进而使得叶子节点服务器D响应所述3个额度请求,对所述额度ID值对应的数据库执行减额度处理,即更新数据库中的额度ID值000048、000049、000050对应的三行数据库记录。
本申请实施例记载的技术方案,非叶子节点服务器通过对其子节点服务器在预设时长内的额度请求进行请求聚合,确定聚合额度请求量,并将所述聚合额度请求量发送给其父节点服务器,在高并发的额度请求下,通过对预设时长内的额度请求进行聚合,能够减少数据库的访问次数,有效提高数据处理的效率,满足高并发的额度数据处理请求的需求。
实施例2
图4为本申请实施例提供的一种数据处理的方法的流程示意图。所述方法应用在根节点服务器中,所述方法可以如下所示。
步骤401:接收非叶子节点服务器发送的聚合额度请求量。
其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的。
在步骤401中,所述非叶子节点服务器通过对所述叶子节点服务器在预设时长内的额度请求进行请求聚合得到所述聚合额度请求量,并将所述聚合额度请求量发送给所述根节点,使得所述根节点接收所述聚合额度请求量。
步骤402:根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值。
在步骤402中,所述根节点服务器根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并根据分配结果向所述非叶子节点服务器返回额度ID值。
根据上述实施例1中记载的内容可知,所述根节点服务器负责维护业务对应的额度总量、剩余额度以及额度ID范围。当所述根节点服务器接收到所述聚合额度请求量之后,所述根节点服务器通过判断剩余额度以及所述聚合额度请求量向所述非叶子节点服务器返回额度ID值。
本申请实施例中,根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值包括:
判断剩余额度是否小于所述聚合额度请求量;
根据判断结果,进行额度分配。
下面详细描述如何根据所述判断结果进行数据处理:
第一种情况:所述判断结果为所述剩余额度不小于所述聚合额度请求量。
当所述剩余额度不小于所述聚合额度请求量时,将所述剩余额度中与所述聚合额度请求量相等数量的额度ID值发送给所述非叶子节点服务器。
仍以上述图2为例,当根节点服务器A接收到非叶子节点服务器B发送的所述聚合额度请求量3之后,通过判断确定总剩余额度为5,其中,数据库一中的剩余额度为3,额度ID范围为000048~000050;数据库二中的剩余额度为2,额度ID范围为000099~000100。因此,根节点服务器A从5个剩余额度对应的5个额度ID值中选择3个额度ID值,例如,额度ID范围000048~000050内的3个额度ID值,并向非叶子节点服务器B返回所述3个额度ID值。
第二种情况:所述判断结果为所述剩余额度小于所述聚合额度请求量。
当所述剩余额度小于所述聚合额度请求量时,将所述额度存量中的额度ID全部发送给所述非叶子节点服务器。
仍以上述图2为例,当根节点服务器A接收到非叶子节点服务器B发送的所述聚合额度请求量3之后,通过判断确定总剩余额度为2,其中,数据库二中的剩余额度为2,额度ID范围为000099~000100。因此,根节点服务器A向非叶子节点服务器B返回所述额度ID范围000099~000100内的2个额度ID值000099、000100。
本申请实施例记载的技术方案,根节点服务器接收非叶子节点服务器发送的对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的聚合额度请求量,进而根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值,在高并发的额度请求下,能够减少数据库的访问次数,有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
实施例3
图5为本申请实施例提供的一种数据处理的方法的流程示意图。所述方法应用在叶子节点服务器中,所述方法可以如下所示。
步骤501:接收非叶子节点服务器发送的额度ID值。
其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的。
在步骤501中,所述根节点服务器进行额度分配之后,向所述非叶子节点服务器发送额度ID值,进而使得所述非叶子节点服务器将所述额度ID值发送给所述叶子节点服务器,所述叶子节点服务器接收所述额度ID值。
步骤502:根据所述额度ID值,针对预设时长内的额度请求进行数据处理。
在步骤502中,所述叶子节点服务器根据所述额度ID值,针对预设时长内的额度请求进行扣减额度的数据处理。
本申请实施例中,根据所述额度ID值,针对预设时长内的额度请求进行数据处理,包括:
判断所述额度ID值的数量是否小于所述额度请求的数量;
根据判断结果进行数据处理。
下面详细描述如何根据所述判断结果进行数据处理:
第一种情况:所述判断结果为所述额度ID值的数量不小于所述额度请求的数量。
当所述额度ID值的数量不小于所述额度请求的数量时,对所述额度ID值对应的数据库执行减额度处理;
对于所述额度请求,返回确认消息。
仍以上述图2为例,叶子节点服务器D在预设时长1min内接收到的额度请求的数量为3个。当叶子节点服务器D接收到非叶子节点服务器B发送的3个额度ID值的额度ID范围为000048~000050之后,叶子节点服务器D确定所述额度ID值的数量3不小于所述额度请求的数量3。
因此,叶子节点服务器D能够处理所述3个额度请求。
叶子节点服务器D对所述额度ID值对应的数据库执行减额度处理,即更新额度ID值000048、000049、000050对应的三行数据库记录。
执行完所述减额度处理之后,针对所述3个额度请求,叶子节点服务器返回确认消息。
第二种情况:所述判断结果为所述额度ID值的数量小于所述额度请求的数量。
当所述额度ID值的数量小于所述额度请求的数量时,确定任一所述额度请求的请求时间;
根据所述请求时间,对所述额度请求进行由早到晚的排序,确定额度请求列表;
将所述额度请求列表中排在前面与所述额度ID值相等数量的额度请求确定为可处理额度请求,以及将所述额度请求列表中其他的额度请求确定为不可处理额度请求;
对所述额度ID值对应的数据库执行减额度处理;
对于所述可处理额度请求,返回确认消息,以及对于所述不可处理额度请求,返回额度不足消息。
仍以上述图2为例,叶子节点服务器D在预设时长1min内接收到的额度请求的数量为3个。当叶子节点服务器D接收到非叶子节点服务器B发送的2个额度ID值000099、000100之后,叶子节点服务器D确定所述额度ID值值的数量2小于所述额度请求的数量3。
因此,叶子节点服务器D仅能够处理所述3个额度请求中的2个额度请求。
叶子节点服务器接收到的所述3个额度请求分别为额度请求一、额度请求二和额度请求三,其中,额度请求一的请求时间为x年x月x日x时15分,额度请求二的请求时间为x年x月x日x时13分,额度请求三的请求时间为x年x月x日x时17分。
根据所述请求时间,对所述3个额度请求进行由早到晚的排序之后,确定额度请求列表:额度请求二、额度请求一、额度请求三。
由于所述额度ID值的数量为2,叶子节点服务器D仅能够处理2个额度请求,因此,将额度请求二和额度请求一确定为可处理额度请求,将额度请求三确定为不可处理额度请求。
叶子节点服务器D对所述额度ID值对应的数据库执行减额度处理,即更新额度ID值000099、000100对应的两行数据库记录。
叶子节点服务器D向所述可处理额度请求(即额度请求二和额度请求一)返回确认消息,以及向所述不可处理额度请求(即额度请求三)返回额度不足消息。
本申请实施例记载的技术方案,叶子节点服务器接收非叶子节点服务器从根节点服务器处接收得到并向所述叶子节点服务器发送的额度ID值,进而根据所述额度ID值,针对预设时长内的额度请求进行数据处理,在高并发的额度请求下,能够有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
实施例4
图6为本申请实施例提供的一种电子设备的示意结构图。如图6所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图7为本申请实施例提供的一种数据处理装置的结构示意图。装置700应用在非叶子节点服务器中,所述装置700包括:聚合单元701和发送单元702,其中:
聚合单元701,用于通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量;
发送单元702,用于将所述聚合额度请求量发送给父节点服务器。
可选地,所述装置700还包括:接收单元703和分配单元704,其中:
接收单元703,用于接收所述父节点服务器返回的额度ID值;
分配单元704,用于根据所述子节点服务器在预设时长内的额度请求,将所述额度ID值分配给所述子节点服务器。
可选地,所述子节点服务器是叶子节点服务器或下层非叶子节点服务器;
所述父节点服务器是根节点服务器或上层非叶子节点服务器。
根据应用在非叶子节点服务器中的所述数据处理装置,聚合单元用于通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量;发送单元用于将所述聚合额度请求量发送给父节点服务器,在高并发的额度请求下,通过对预设时长内的额度请求进行聚合,能够减少数据库的访问次数,有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
图8为本申请实施例提供的一种数据处理装置的结构示意图。数据处理装置80可包括:通道接口801和处理器802,可选地,包括存储器803。
通道接口801、处理器802和存储器803可以通过总线804系统相互连接。总线604可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
可选地,包括存储器803,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器803可以包括只读存储器和随机存取存储器,并向处理器802提供指令和数据。存储器803可能包含高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器802,用于执行以下操作,可选地,执行存储器803所存放的程序,并具体用于执行以下操作:
通过对子节点服务器在预设时长内的额度请求进行请求聚合确定聚合额度请求量;
将所述聚合额度请求量发送给父节点服务器。
上述如本申请图1-3和图7-8所示实施例揭示的数据处理装置或管理者(Master)节点执行的方法可以应用于处理器802中,或者由处理器802实现。处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器803,处理器802读取存储器803中的信息,结合其硬件完成上述方法的步骤。
数据处理装置800还可执行图1的方法,并实现管理者节点或数据处理装置在图2、图3所示实施例的功能,本申请实施例在此不再赘述。
实施例5
图9为本申请实施例提供的一种电子设备的示意结构图。如图9所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图10为本申请实施例提供的一种数据处理装置的结构示意图。装置1000应用在在根节点服务器中,所述装置1000包括:接收单元1001和分配单元1002,其中:
接收单元1001,用于接收非叶子节点服务器发送的聚合额度请求量,其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的;
分配单元1002,用于根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值。
可选地,所述分配单元1002根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值,包括:
判断剩余额度是否小于所述聚合额度请求量;
根据判断结果,进行额度分配。
可选地,所述分配单元1002根据判断结果,进行额度分配,包括:
当所述剩余额度不小于所述聚合额度请求量时,将所述剩余额度中与所述聚合额度请求量相等数量的额度ID值发送给所述非叶子节点服务器。
可选地,所述分配单元1002根据判断结果,进行额度分配,包括:
当所述剩余额度小于所述聚合额度请求量时,将所述剩余额度中的额度ID值全部发送给所述非叶子节点服务器。
根据应用在根节点服务器中的所述数据处理装置,接收单元用于接收非叶子节点服务器发送的聚合额度请求量,其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的;分配单元用于根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值,在高并发的额度请求下,能够有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
图11为本申请实施例提供的一种数据处理装置的结构示意图。数据处理装置1100可包括:通道接口1101和处理器1102,可选地,包括存储器1103。
通道接口1101、处理器1102和存储器1103可以通过总线1104系统相互连接。总线1104可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
可选地,包括存储器1103,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1103可以包括只读存储器和随机存取存储器,并向处理器1102提供指令和数据。存储器1103可能包含高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器1102,用于执行以下操作,可选地,执行存储器803所存放的程序,并具体用于执行以下操作:
接收非叶子节点服务器发送的聚合额度请求量,其中,所述聚合额度请求量为所述非叶子节点服务器对叶子节点服务器在预设时长内的额度请求进行请求聚合得到的;
根据所述聚合额度请求量对数据库中存储的额度数据进行分配,并向所述非叶子节点服务器返回额度ID值。
上述如本申请图4和图9-10所示实施例揭示的数据处理装置或管理者(Master)节点执行的方法可以应用于处理器1102中,或者由处理器1102实现。处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1103,处理器1102读取存储器1103中的信息,结合其硬件完成上述方法的步骤。
数据处理装置1100还可执行图4的方法,并实现管理者节点或数据处理装置。
实施例6
图12为本申请实施例提供的一种电子设备的示意结构图。如图12所示,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图13为本申请实施例提供的一种数据处理装置的结构示意图。装置1300应用在叶子节点服务器中,所述装置1300包括:接收单元1301和数据处理单元1302,其中:
接收单元1301,用于接收非叶子节点服务器发送的额度ID值,其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的;
数据处理单元1302,用于根据所述额度ID值,针对预设时长内的额度请求进行数据处理。
可选地,所述数据处理单元1302根据所述额度ID值,针对预设时长内的额度请求进行数据处理,包括:
判断所述额度ID值的数量是否小于所述额度请求的数量;
根据判断结果进行数据处理。
可选地,所述数据处理单元1302根据判断结果进行数据处理,包括:
当所述额度ID值的数量不小于所述额度请求的数量时,对所述额度ID值对应的数据库执行减额度处理;
对于所述额度请求,返回确认消息。
可选地,所述数据处理单元1302根据判断结果进行数据处理,包括:
当所述额度ID值的数量小于所述额度请求的数量时,确定任一所述额度请求的请求时间;
根据所述请求时间,对所述额度请求进行由早到晚的排序,确定额度请求列表;
将所述额度请求列表中排在前面与所述额度ID值相等数量的额度请求确定为可处理额度请求,以及将所述额度请求列表中其他的额度请求确定为不可处理额度请求;
对所述额度ID值对应的数据库执行减额度处理;
对于所述可处理额度请求,返回确认消息,以及对于所述不可处理额度请求,返回额度不足消息。
根据应用在叶子节点服务器中的所述数据处理装置,接收单元用于接收非叶子节点服务器发送的额度ID值,其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的;数据处理单元用于根据所述额度ID值,针对预设时长内的额度请求进行数据处理,在高并发的额度请求下,能够有效提高数据处理的效率,从而满足高并发的额度数据处理请求的需求。
图14为本申请实施例提供的一种数据处理装置的结构示意图。数据处理装置1400可包括:通道接口1401和处理器1402,可选地,包括存储器1403。
通道接口1401、处理器1402和存储器1403可以通过总线1404系统相互连接。总线1404可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
可选地,包括存储器1403,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1403可以包括只读存储器和随机存取存储器,并向处理器1402提供指令和数据。存储器1403可能包含高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器。
处理器1402,用于执行以下操作,可选地,执行存储器803所存放的程序,并具体用于执行以下操作:
接收非叶子节点服务器发送的额度ID值,其中,所述额度ID值是所述非叶子节点服务器从根节点服务器处接收得到的;
根据所述额度ID值,针对预设时长内的额度请求进行数据处理。
上述如本申请图5和图12-13所示实施例揭示的数据处理装置或管理者(Master)节点执行的方法可以应用于处理器1402中,或者由处理器1402实现。处理器1402可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1402可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1403,处理器1402读取存储器1403中的信息,结合其硬件完成上述方法的步骤。
数据处理装置1400还可执行图5的方法,并实现管理者节点或数据处理装置在图12、图13所示实施例的功能,本申请实施例在此不再赘述。
实施例7
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行实施例一的方法。
实施例8
图15为本申请实施例提供的一种数据处理系统的结构示意图。
系统1500包括:应用在非叶子节点服务器中的数据处理装置700、应用在根节点服务器中的数据处理装置1000和应用在叶子节点服务器中的数据处理装置1300。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如:现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。