对象排序方法、装置及系统与流程

文档序号:12824816阅读:367来源:国知局
对象排序方法、装置及系统与流程

本申请涉及计算机技术领域,尤其涉及一种对象排序方法、装置及系统。



背景技术:

随着科学技术的快速发展,各行各业中开始普及计算机技术。伴随着各行各业的日常运作,这些计算机可以产生蕴含丰富数据信息的海量数据,并且这些数据信息具有较高的应用价值。为了提取海量数据中的有价值数据信息,可以对海量数据进行数据分析。

目前,对海量数据进行数据分析,可以采用数据排序方式、建模分析方式、数据统计方式等技术手段。其中,对海量数据中的对象进行排序为获取海量数据中有价值数据信息的一个常用技术手段。例如,对淘宝网上卖家的订单量进行排序,对互联网上新闻的点击量进行排序,对全国各个城市的pm2.5污染指数进行排序等等。

在对海量数据中的对象进行排序的过程中,如果海量数据中的对象是固定不变的,则排序结果也是固定不变的。在这种情况下,可以对海量数据中的对象采用简单的排序算法进行排序即可。但是,伴随着各行各业的计算机中日常运行,使得海量数据是不断变化的。即海量数据中需要排序的对象总量是变化的,或者,每个对象的数据值是变化的。在海量数据不断变化的情况下,为了保证排序结果的准确性,便需要对海量数据进行实时排序。

目前,对海量数据进行实时排序技术方案,一般为实时对海量数据中需要排序的每个对象进行排名,然后才可以得到最终排序结果。但是,海量数据中的对象总量巨大,对每个对象进行排名会导致每次排序均占用较长时间和较大内存,进而导致数据排序过程的效率较低且增加了网络吞吐量。

因此,现在需要一种对象排序方法,可以占用较少时间和较小内存,从而提高海量数据的排序效率并降低网络吞吐量。



技术实现要素:

本申请发明人在研究过程中发现:

可以基于对象排序系统来对海量数据中的对象进行排序。参见图1,对象排序系统包括:多个分发节点110、多个计算节点120、多个一级排序节点130和二级排序节点140。下面介绍图1所示的对象排序系统的执行过程。

由于海量数据的对象总量巨大,一个计算节点的计算能力不足以计算所有对象的数据值。为了计算所有对象的数据值,分发节点110可以将海量数据中的所有对象分发至不同的计算节点120,以便每个计算节点120计算一部分对象的数据值。

由于海量数据的对象总量巨大,一个排序节点的排序能力不足以对所有对象进行排序,所以可以利用两级排序节点来进行排序。一级排序节点用于对部分对象进行排序,然后仅仅将排序结果输出至二级排序节点,由二级排序节点再对各个一级排序节点的排序结果进行整合,从而实现输出指定数量排序结果的目的。

例如,以排序结果为输出前10名(即计算top(10))为例,假设对象总量为50个,一级排序节点为2个,二级排序节点为1个。一个一级排序节点可以对25个对象进行排序,输出25个对象的前10名(top(10));另一个一级排序节点可以对另外25个对象进行排序,输出另外25个对象的前10名(top(10))。两个一级排序节点可以将计算得到的部分对象的排序结果输出至二级排序节点,由二级排序节点对两个部分对象的排序结果进行整合,从而得到最终排序结果,即整体50个对象的前10名。

上述排序方法采用两级排序节点的方式来提高排序效率,由一级排序节点进行部分排序,再由二级排序节点再次进行排序。虽然这种利用分级排序的处理方式,在一定程度上可以加快排序效率。但是,在一级排序节点上仍然需要对每个对象进行排序,这会占用较大内存。并且,二级排序节点需要对多个部分排序结果进行多次整合,这会增加排名结果的延时和网络吞吐量。

鉴于此,本申请提供了一种对象排序方法、装置及系统,可以占用较少时间和较小内存,从而提高海量数据的排序效率并降低网络吞吐量。

为了实现上述目的,本申请提供了以下技术手段:

一种对象排序方法,应用于对象排序系统的计算节点群组中一个计算节点,所述对象排序系统还包括与所述计算节点群组相连的分发节点群组和排序节点;所述方法包括:

确定待处理对象的待处理数据信息;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于当前阈值的情况下,才将所述待处理数据信息发送至与所述排序节点;

在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于当前阈值的情况下,才将所述待处理数据信息发送至所述排序节点;

其中,所述当前阈值为所述排序节点已有排序结果的末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

优选的,所述确定待处理对象的待处理数据信息,包括:

接收所述分发节点群组发送待处理对象的当前数据信息,其中,所述当前数据信息包括待处理对象标识以及当前数据值;

在所述当前数据信息中确定待处理对象的所述待处理对象标识;

查找与所述待处理对象标识对应的待处理历史数据值;

将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理数据值。

优选的,还包括:

在所述排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,接收所述排序节点发送的最新阈值;其中,所述最新阈值为所述当前排序结果的末位数据信息中的数据值;

利用所述最新阈值更新所述当前阈值。

一种对象排序方法,应用于对象排序系统的计算节点群组中一个计算节点,所述对象排序系统还包括与所述计算节点群组相连的分发节点群组和排序节点群组;所述方法包括:

确定待处理对象的待处理数据信息,以及用于表示所述待处理对象所属类别的待处理类别标识;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

其中,所述当前阈值为所述排序节点已有排序结果的末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

优选的,所述确定待处理对象的待处理数据信息,以及用于表示所述待处理对象所属类别的待处理类别标识,包括:

接收所述分发节点群组发送的待处理对象的当前数据信息,其中,所述数据信息包括待处理类别标识、待处理对象标识以及当前数据值;

在所述当前数据信息中,确定待处理对象的所述待处理类别标识和所述待处理对象标识;

在与所述待处理类别标识对应的历史数据值集合中,查找与所述待处理对象标识对应的待处理历史数据值;

将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理对象的待处理数据值。

优选的,还包括:

在与所述待处理类别标识对应的排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,接收与所述待处理类别标识对应的排序节点发送的类别标识和最新阈值;

利用所述最新阈值更新与所述类别标识对应的当前阈值;

其中,所述最新阈值为所述当前排序结果中末位数据信息中的数据值,所述类别标识与所述待处理对象的待处理类别标识一致。

一种对象排序方法,应用于对象排序系统中一个排序节点,所述排序系统还包括计算节点群组以及与所述计算节点群组相连的分发节点群组;所述方法包括:

接收所述计算节点群组按所述的方法发送的待处理对象的待处理数据信息;其中,所述待处理数据信息包括所述待处理对象的待处理对象标识和待处理数据值;

依据所述待处理数据信息更新已有排序结果,生成当前排序结果。

优选的,所述依据所述待处理数据信息更新已有排序结果生成当前排序结果,包括:

若所述已有排序结果对应的数据排序队列中不包含所述待处理对象标识,则在所述排序数据队列中删除所述已有排序结果中的末位数据信息;

在所述排序数据队列中添加所述待处理数据信息;

对所述排序数据队列重新排序之后,生成所述当前排序结果。

优选的,所述依据所述待处理数据信息更新已有排序结果,生成当前排序结果,包括:

若所述已有排序结果对应的数据排序队列中包含所述待处理对象标识,则在所述数据排序队列中,利用所述待处理数据值更新所述待处理对象标识对应的历史数据值;

对所述排序数据队列重新排序之后,生成所述当前排序结果。

优选的,在所述生成所述当前排序结果之后,还包括:

将所述当前排序结果的末位数据信息中的数据值确定为最新阈值;向所述计算节点群组中各个计算节点发送所述最新阈值;或者,

将所述当前排序结果的末位数据信息中的数据值确定为最新阈值;向所述计算节点群组中各个计算节点发送所述最新阈值和所述排序节点自身的类别标识;其中,所述类别标识与所述待处理对象的待处理类别标识一致。

一种对象排序装置,集成于对象排序系统的计算节点群组中一个计算节点,所述对象排序系统还包括与所述计算节点群组相连的分发节点群组和排序节点;所述装置包括:

第一确定数据信息单元,用于确定待处理对象的待处理数据信息;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

第一发送数据信息单元,用于在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于当前阈值的情况下,才将所述待处理数据信息发送至与所述排序节点;

第二发送数据信息单元,用于在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于当前阈值的情况下,才将所述待处理数据信息发送至所述排序节点;

其中,所述当前阈值为所述排序节点已有排序结果的末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

优选的,所述第一确定数据信息单元,包括:

第一接收数据信息单元,用于接收所述分发节点群组发送待处理对象的当前数据信息,其中,所述当前数据信息包括待处理对象标识以及当前数据值;

第一确定单元,用于在所述当前数据信息中确定待处理对象的所述待处理对象标识;

第一查找单元,用于查找与所述待处理对象标识对应的待处理历史数据值;

第二确定单元,用于将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理数据值。

一种对象排序装置,应用于对象排序系统的计算节点群组中一个计算节点,所述对象排序系统还包括与所述计算节点群组相连的分发节点群组和排序节点群组;所述装置包括:

第二确定数据信息单元,用于确定待处理对象的待处理数据信息,以及用于表示所述待处理对象所属类别的待处理类别标识;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

第三发送数据信息单元,用于在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

第四发送数据信息单元,用于在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

其中,所述当前阈值为所述排序节点已有排序结果中末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

优选的,所述第二确定数据信息单元,包括:

第二接收数据信息单元,用于接收所述分发节点群组发送的待处理对象的当前数据信息,其中,所述数据信息包括待处理类别标识、待处理对象标识以及当前数据值;

第三确定单元,用于在所述当前数据信息中,确定待处理对象的所述待处理类别标识和所述待处理对象标识;

第二查找单元,用于在与所述待处理类别标识对应的历史数据值集合中,查找与所述待处理对象标识对应的待处理历史数据值;

第四确定单元,用于将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理对象的待处理数据值。

优选的,还包括:

第二接收阈值单元,用于在与所述待处理类别标识对应的排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,接收与所述待处理类别标识对应的排序节点发送的类别标识和最新阈值;

第二更新单元,利用所述最新阈值更新与所述类别标识对应的当前阈值;

其中,所述最新阈值为所述当前排序结果中末位数据信息中的数据值,所述类别标识与所述待处理对象的待处理类别标识一致。

一种对象排序装置,应用于对象排序系统中一个排序节点,所述排序系统还包括计算节点群组以及与所述计算节点群组相连的分发节点群组;所述装置包括:

第三接收数据信息单元,用于接收所述计算节点群组发送的待处理对象的待处理数据信息;其中,所述计算节点群组中每个计算节点集成有上述对象排序装置,所述待处理数据信息包括所述待处理对象的待处理对象标识和待处理数据值;

生成单元,用于依据所述待处理数据信息更新已有排序结果,生成当前排序结果。

优选的,所述生成单元,包括:

删除单元,用于若所述已有排序结果对应的数据排序队列中不包含所述待处理对象标识,则在所述排序数据队列中删除所述已有排序结果中的末位数据信息;

添加单元,用于在所述排序数据队列中添加所述待处理数据信息;

第一生成结果单元,用于对所述排序数据队列重新排序之后,生成所述当前排序结果。

优选的,所述生成单元,包括:

第三更新单元,用于若所述已有排序结果对应的数据排序队列中包含所述待处理对象标识,则在所述数据排序队列中,利用所述待处理数据值更新所述待处理对象标识对应的历史数据值;

第二生成结果单元,用于对所述排序数据队列重新排序之后,生成所述当前排序结果。

一种对象排序系统,包括:

分发节点群组、计算节点群组和排序节点;

所述计算节点群组用于执行上述对象排序方法;

所述排序节点用于执行所述对象排序方法。

一种对象排序系统,包括:

分发节点群组、计算节点群组和排序节点群组;

所述计算节点群组用于执行上述对象排序方法;

所述排序节点群组中的排序节点用于执行上述对象排序方法。

通过以上内容,可以看出本申请具有以下有益效果:

本申请提供的对象排序系统在计算节点上设有一个当前阈值,当前阈值为已有排序结果的末位数据信息中的数据值。可以理解的是,在排序方式为降序(或升序)排列的情况下[即计算最大top(n)(或最小top(n))的情况下],已有排序结果的末位数据信息中的数据值为已有排序结果中的最小值(最大值)。

因此,在待处理数据值大于(小于)当前阈值的时候,待处理数据信息才有打破已有排序结果的可能,此时计算节点才向排序节点发送待处理对象的待处理数据信息,以供排序节点更新已有排序结果。在待处理数据值不大于(不小于)当前阈值的时候,待处理数据信息不会改变已有排序结果,此时,计算节点不会向排序节点发送待处理对象的待处理数据信息,排序节点便无需对待处理对象的待处理数据进行计算。

即,本申请中计算节点利用将待处理对象的待处理数据信息与当前阈值进行比较的方式来过滤掉大部分对排序结果无用的待处理对象,仅仅将对排序结果有用的待处理对象发送至排序节点,由排序节点进行排序。因此,本申请可以使得排序节点对较少数量的对象进行排序,由于排序对象数量骤减所以可以提高排序效率并减少占用内存。

附图说明

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

图1为本申请实施例公开一种对象排序系统的结构示意图;

图2为本申请实施例公开又一对象排序系统的结构示意图;

图3为本申请实施例公开对象排序方法的流程图;

图4为本申请实施例公开的又一对象排序方法的流程图;

图5为本申请实施例公开的又一对象排序方法的流程图;

图6为本申请实施例公开的又一对象排序系统的结构示意图;

图7为本申请实施例公开的又一对象排序方法的流程图;

图8为本申请实施例公开的又一对象排序方法的流程图;

图9为本申请实施例公开的又一对象排序方法的流程图;

图10为本申请实施例公开的又一对象排序方法的流程图;

图11为本申请实施例公开的对象排序装置的结构示意图;

图12为本申请实施例公开的又一对象排序装置的结构示意图;

图13为本申请实施例公开的又一对象排序装置的结构示意图;

图14为本申请实施例公开的又一对象排序装置的结构示意图;

图15为本申请实施例公开的又一对象排序装置的结构示意图;

图16为本申请实施例公开的又一对象排序装置的结构示意图;

图17为本申请实施例公开的又一对象排序装置的结构示意图;

图18为本申请实施例公开的又一对象排序装置的结构示意图;

图19为本申请实施例公开的又一对象排序装置的结构示意图;

图20为本申请实施例公开的又一对象排序装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在介绍本申请实施例之前首先介绍一种对象排序系统实施例一,以方便本领域技术人员更容易理解本申请实施例的应用场景。如图2所示,对象排序系统包括:分发节点群组100、计算节点群组200和排序节点301。

经过本申请发明人研究发现,现有技术排序效率较低且网络吞吐量较高的根本原因在于:参与排序的对象数量较大。因此,为了实现提高排序效率并降低网络吞吐量的目的,本申请提供的技术手段为减少参与排序的对象数量,以便排序节点高效快速的计算多个对象的top(n)。

top(n)的含义为依照排序方式输出前n个对象,其中n为非零自然数。当排序方式为升序排列时,top(n)的含义为输出数据值最小的前n个对象;例如,全国污染指数最低的前10名。当排序方式为升序排列时,top(n)的含义为输出数据值最大的前n个对象;例如,卖家订单数最高的前10名。

为了实现减少参与排序的对象数量的目的,本申请将计算节点群组作为过滤器,用来过滤掉对海量数据中对已有排序结果无用的待处理对象,仅仅保留对海量数据中排序结果有用的待处理对象,从而仅仅将对排序结果有用的对象发送至排序节点。由于排序节点上仅仅对排序结果有用的对象进行处理,而无需对排序结果无用的对象进行处理,所以可以大大减少排序节点处理的对象数量。

为了达到计算节点群组作为过滤器的目的,本申请为计算节点群组中每个计算节点设置动态变化的当前阈值,当前阈值跟随排序节点中已有排序结果的末位数据信息的数据值的变化而变化。计算节点可以将对象的数据信息与当前阈值进行对比,从而决定是否过滤该对象的数据信息。

本申请提供一种对象排序方法实施例一,应用于如图2所示的对象排序系统的计算节点群组中一个计算节点。计算节点群组中各个计算节点的处理过程是一致的,并且,一个计算节点对每个对象的处理过程也是一致的,所以本申请仅对一个计算节点对一个对象的处理过程进行详细介绍。为了方便描述将本实施例中需要处理的对象称为待处理对象。

如图3所示,对象排序方法具体包括以下步骤:

步骤s301:确定待处理对象的待处理数据信息;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值。

由于待处理对象的待处理数据值在不断变化,所以,在执行后续步骤之前首先确定待处理对象当前的待处理数据信息。待处理数据信息包括待处理对象的待处理对象标识以及待处理对象的待处理数据值。当然,待处理对象标识不会变化,不断变化的为待处理数据值。

待处理数据值在历史数据值基础上变化。因此,可以将待处理数据值与历史数据值的和值作为当前数据值。

例如,以待处理对象为货物存储量为例,货物存储量是在历史货物量的基础上逐渐递增的,则在计算待处理数据值时计算历史货物量与当前货物量的和值。

针对待处理数据值的变化过程,本申请提供了确定待处理数据信息的实施例。参见图4,具体包括以下步骤:

步骤s401:接收所述分发节点群组发送待处理对象的当前数据信息,其中,所述当前数据信息包括待处理对象标识以及当前数据值。

由于一个计算节点上可以处理多个对象,所以,计算节点可以接收待处理对象的当前数据信息,并从中确定待处理对象标识和当前数据值。以利用待处理对象标识在多个对象中区分出待处理对象。

步骤s402:在所述当前数据信息中确定待处理对象的所述待处理对象标识。

步骤s403:查找与所述待处理对象标识对应的待处理历史数据值。

计算节点上维护有多个对象的历史数据值,每个历史数据值与对象标识一一对应。在确定待处理对象标识之后,在存储空间中查找与待处理对象标识对应的待处理历史数据值。

步骤s404:将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理数据值。

计算待处理历史数据值与当前数据值的和值,从而得到待处理对象当前的待处理数据值。

例如,以待处理对象为货物存储量为例,向仓库中存放货物,则货物存储量在历史货物量(历史数据值)的基础上增加,则在计算待处理数据值时可以计算历史货物量与当前货物量的和值。

排序方式有升序排列和降序排列,在不同排序方式下待处理数据值与当前阈值的对比过程略有不同,下面对不同排序方式下待处理数据值与当前阈值的对比过程进行详细说明。

接着返回图3,进入步骤s302:在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于当前阈值的情况下,才将所述待处理数据信息发送至与所述排序节点。

在排序方式为降序排列的情况下(即计算最大top(n)的情况下),已有排序结果中末位数据信息中的数据值为已有排序结果的最小数据值;本申请中当前阈值与末位数据信息的数据值一致。

因此,如果一个对象的数据值大于当前阈值的时候,则表示该对象的数据信息会打破已有排序结果,即该对象为对排序结果有用的对象;此时计算节点向排序节点发送该对象的数据信息。

如果一个对象的数据值不大于当前阈值的时候,则表示该对象的数据信息不会打破已有排序结果,即该对象为对排序结果无用的对象;此时计算节点不会向排序节点发送该对象的数据信息。

步骤s303:在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于当前阈值的情况下,才将所述待处理数据信息发送至所述排序节点。

在排序方式为升序排列的情况下(即计算最小top(n)的情况下),已有排序结果中末位数据信息中的数据值为已有排序结果的最大数据值;本申请中当前阈值与末位数据信息的数据值一致。

因此,如果一个对象的数据值小于当前阈值的时候,则表示该对象的数据信息会打破已有排序结果,即该对象为对排序结果有用的对象;此时计算节点向排序节点发送该对象的数据信息。

如果一个对象的数据值不小于当前阈值的时候,则表示该对象的数据信息不会打破已有排序结果,即该对象为对排序结果无用的对象;此时计算节点不会向排序节点发送该对象的数据信息。

可以理解的是,在排序节点接收待处理信息之后,可以依据所述待处理数据信息更新所述已有排序结果生成当前排序结果。为了实时保持当前阈值与排序结果中末位数据信息的数据值一致,计算节点可以接收所述排序节点发送的最新阈值;其中,所述最新阈值为所述当前排序结果中末位数据信息中的数据值;然后利用所述最新阈值更新所述当前阈值。

通过以上技术内容,可以看出本实施例具有以下有益效果:

本申请提供的对象排序系统在计算节点上设有一个当前阈值,当前阈值为已有排序结果的末位数据信息中的数据值。可以理解的是,在排序方式为降序(或升序)排列的情况下[即计算最大top(n)(或最小top(n))的情况下],已有排序结果的末位数据信息中的数据值为已有排序结果中的最小值(最大值)。

因此,在待处理数据值大于(小于)当前阈值的时候,待处理数据信息才有打破已有排序结果的可能,此时计算节点才向排序节点发送待处理对象的待处理数据信息,以供排序节点更新已有排序结果。在待处理数据值不大于(不小于)当前阈值的时候,待处理数据信息不会改变已有排序结果。此时,计算节点不会向排序节点发送待处理对象的待处理数据信息,排序节点便无需对待处理对象的待处理数据进行计算。

即,本申请中计算节点利用将待处理对象的待处理数据信息与当前阈值进行比较的方式来过滤掉大部分对排序结果无用的待处理对象,仅仅将对排序结果有用的待处理对象发送至排序节点,由排序节点进行排序。因此,本申请可以使得排序节点对较少数量的对象进行排序,由于排序对象数量骤减所以可以提高排序效率并减少占用内存。

图2所示的对象处理系统中只有一个排序节点,一般情况下一个排序节点对一个类别的对象进行排序处理。例如,仅对卖家订单量进行排序,仅对大气污染指数进行排序等等。为了实现对多个类别的对象进行排序,本申请提供了一种对象排序系统的实施例二。参见图5具体包括:

分发节点群组100、计算节点群组200和排序节点群组300。排序节点群组300中包括多个排序节点,每个排序节点可以实现对一个类别的对象排序处理。

由于排序节点具有多个,为了使得计算节点在确定待处理对象之后,知道应该将待处理对象发送至那个排序节点,可以在每个排序节点上构建对象的类别标识与排序节点标识的对应关系。比如,排序节点标识1对应待处理对象的类别标识1。

下面介绍在图5所示的对象处理系统的基础上,提供的对象处理方法的实施例二。如图6所示,具体包括以下步骤:

步骤s601:确定待处理对象的待处理数据信息,以及用于表示所述待处理对象所属类别的待处理类别标识;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值。

由于待处理对象的待处理数据值在不断变化,所以,在执行后续步骤之前首先确定待处理对象当前的待处理数据信息。待处理数据信息包括待处理对象的待处理类别标识、待处理对象标识以及待处理数据值。当然,待处理类别标识和待处理对象标识不会变化,不断变化的为待处理数据值。

待处理数据值的变化过程为待处理数据值在历史数据值的基础上变化。

针对待处理数据值的变化过程,本申请提供了确定待处理数据信息的实施例。参见图7,具体包括以下步骤:

步骤s701:接收所述分发节点群组发送的待处理对象的当前数据信息,其中,所述数据信息包括待处理类别标识、待处理对象标识以及当前数据值。

由于一个计算节点上可以处理多个类别的对象,每个种类可以处理多个对象。所以,计算节点可以接收待处理对象的当前数据信息,并从中确定待处理对象类别标识、待处理对象标识和当前数据值,以利用待处理类别标识和待处理对象标识在多个对象中区分出待处理对象。

步骤s702:在所述当前数据信息中,确定待处理对象的所述待处理类别标识和所述待处理对象标识。

步骤s703:在与所述待处理类别标识对应的历史数据值集合中,查找与所述待处理对象标识对应的待处理历史数据值。

计算节点上维护有多个类别对象的历史数据值集合,所以,首先在历史数据值集合中,查找出与待处理类别标识对应待处理历史数据值集合。待处理历史数据值集合中具有多个对象的历史数据值,每个历史数据值与对象标识一一对应。因此,可以在待处理历史数据值集合中,查找与待处理对象标识对应的待处理历史数据值。

步骤s704:将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理对象的待处理数据值。

计算待处理历史数据值与当前数据值的和值,从而得到待处理对象当前的待处理数据值。

在确定待处理对象的待处理数据之后,为了确定待处理对象是否为对排序结果有用的对象,需要将待处理数据值与待处理类别标识对应的当前阈值进行对比。所述当前阈值为所述排序节点已有排序结果中末位数据信息中的 数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

在不同排序方式下待处理数据值与当前阈值的对比过程略有不同,下面对不同排序方式下待处理数据值与当前阈值的对比过程进行详细说明。

接着返回图6,进入步骤s602:在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点。

步骤s603:在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点。

其中,所述当前阈值为所述排序节点已有排序结果中末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

步骤s602和步骤s603的具体内容已在步骤s302和步骤s303中进行详细描述在此不再赘述。与步骤s302和步骤s303不同的是,步骤s602和步骤s603中当前阈值为计算节点在类别标识与阈值的对应关系中查找到的与待处理类别标识对应的阈值,排序节点为计算节点在类别标识与排序节点标识的对应关系中查找到的与待处理类别标识对应的排序节点。

可以理解的是,在与所述待处理类别标识对应的排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,计算节点可以接收与所述待处理类别标识对应的排序节点发送的类别标识和最新阈值。计算节点可以利用所述最新阈值更新与所述类别标识对应的当前阈值。

为了实现处理多个类别对象的目的,计算节点上具有与多个类别标识对应的当前阈值。为了准确更新与排序节点对应的当前阈值,所以,排序节点可以发送类别标识和最新阈值。这样计算节点在接收类别标识和最新阈值之后,便得知需要更新与类别标识对应的当前阈值。

排序节点发送的类别标识与其处理对象的类别标识一致。即,排序节点处理类别标识a的对象,则排序节点向计算节点发送最新阈值时一并发送类别标识a;以便计算节点更新与类别标识a对应的当前阈值。

通过以上内容,可以看出本实施例具有以下有益效果:本实施例本申请中计算节点利用将待处理对象的待处理数据信息与当前阈值进行比较的方式来过滤掉大部分对排序结果无用的待处理对象,仅仅将对排序结果有用的待处理对象发送至排序节点,由排序节点进行排序。因此,本申请可以使得排序节点对较少数量的对象进行排序,由于排序对象数量骤减所以可以提高排序效率并减少占用内存。

并且本实施例还可以对多个类别对象实现数据排序目的,从而可以扩宽本实施例的应用范围。

上述内容介绍了计算节点的处理过程,下面介绍排序节点的处理过程。本申请提供了一种数据排序方法实施例三,应用于图2或图5所示对象排序系统中的排序节点。如图8所示,具体包括以下步骤:

步骤s801:接收所述计算节点群组发送的待处理对象的待处理数据信息;其中,所述待处理数据信息包括所述待处理对象的待处理对象标识和待处理数据值。

计算节点可以采用图3或图7所示的对象处理方法,向排序节点发送待处理数据信息。排序节点可以为图2所示的排序节点301,或者图6排序节点群组300中与待处理类别标识对应的排序节点。

排序节点301或者与待处理类别标识对应的排序节点可以接收待处理数据信息。

步骤s802:依据所述待处理数据信息更新已有排序结果,生成当前排序结果。

由于计算节点发送至排序节点的待处理数据信息均是有用对象的数据信息,即会已有排序结果产生影响的数据信息,所以,排序节点可以依据待处理数据更新已有排序结果,并生成当前排序结果。

下面对步骤s802的具体实现过程进行详细描述:

可以理解的是,已有排序结果的排序队列中存在有多个对象。针对待处理对象而言,待处理对象可能已经存在于已有排序结果的排序队列中,可能不存在已有排序结果的排序队列中。因此,针对两种不同情况,提供步骤s1002的两种处理方式:

第一种处理方式:已有排序结果对应的数据排序队列中不包含所述待处理对象标识。如图9所示,第一种处理方式具体包括以下步骤:

步骤s901:若所述已有排序结果对应的数据排序队列中不包含所述待处理对象标识,则在所述排序数据队列中删除所述已有排序结果中的末位数据信息。

步骤s902:在所述排序数据队列中添加所述待处理数据信息。

步骤s903:对所述排序数据队列重新排序之后,生成所述当前排序结果。

由于已有排序结果的数据排序队列中不包含待处理对象标识,则说明数据排序队列中不包含待处理对象。由于待处理对象的待处理数据值已经大于(或小于)末位数据信息的数据值,所以,末位数据信息在已有排序结果中已经无用。因此,在数据排序队列中删除末位数据信息,然后在排序队列中添加待处理数据信息。然后在重新对数据排序队列进行排序,从而生成当前排序结果。

第二种方式:已有排序结果对应的数据排序队列中包含所述待处理对象标识。如图10所示,具体包括以下步骤:

步骤s1001:若所述已有排序结果对应的数据排序队列中包含所述待处理对象标识,则在所述数据排序队列中,利用所述待处理数据值更新所述待处理对象标识对应的历史数据值。

步骤s1002:对所述排序数据队列重新排序之后,生成所述当前排序结果。

由于已有排序结果的数据排序队列中包含待处理对象标识,则说明数据排序队列中包含待处理对象。但是,数据排序队列中存储的为待处理对象的历史数据值,因此,利用待处理数据值更新历史数据值。由于待处理对象的数据值已经发生变化,所以,已有排序结果可能会发生变化,因此需要重新对数据排序队列进行排序,从而生成当前排序结果。

在更新生成当前排序结果之后,为了保证后续对象排序的执行,可以更新计算节点中的当前阈值。

更新当前阈值的第一种实现方式为:将所述当前排序结果的末位数据信息中的数据值确定为最新阈值;向所述计算节点群组中各个计算节点发送所述最新阈值。

在对象排序系统中仅有一个排序节点的情况下,计算节点群组中各个计算节点上仅有一个当前阈值,所以直接排序节点仅仅发送最新阈值,计算节点更新当前阈值即可。

第二种实现方式为:将所述当前排序结果的末位数据信息中的数据值确定为最新阈值;向所述计算节点群组中各个计算节点发送所述最新阈值和所述排序节点自身的类别标识;其中,所述类别标识与所述待处理对象的待处理类别标识一致。

在对象排序系统中具有多个排序节点的情况下,计算节点群组中各个计算节点上具有多个当前阈值,为了方便计算节点确定所需更新的阈值,所以排序节点发送类别标识和最新阈值,以便计算节点更新与类别标识对应的当前阈值。

与图3所示的对象排序方法的实施例一相对应,本申请还提供了一种对象排序装置实施例一,集成于图2所示对象排序系统的计算节点群组中一个计算节点。如图11所示,所述装置包括:

第一确定数据信息单元111,用于确定待处理对象的待处理数据信息;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

第一发送数据信息单元112,用于在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于当前阈值的情况下,才将所述待处理数据信息发送至与所述排序节点;

第二发送数据信息单元113,用于在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于当前阈值的情况下,才将所述待处理数据信息发送至所述排序节点;

其中,所述当前阈值为所述排序节点已有排序结果中末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

其中,如图12所示,所述第一确定数据信息单元111,包括:

第一接收数据信息单元121,用于接收所述分发节点群组发送待处理对象的当前数据信息,其中,所述当前数据信息包括待处理对象标识以及当前数据值;

第一确定单元122,用于在所述当前数据信息中确定待处理对象的所述待处理对象标识;

第一查找单元123,用于查找与所述待处理对象标识对应的待处理历史数据值;

第二确定单元124,用于将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理数据值。

如图13所示,本申请提供的对象排序装置实施例一,还包括:

第一接收阈值单元131,用于在所述排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,接收所述排序节点发送的最新阈值;其中,所述最新阈值为所述当前排序结果中末位数据信息中的数据值;

第一更新单元132,用于利用所述最新阈值更新所述当前阈值。

与图6所示的对象排序方法对应的一种对象排序装置实施例二,集成于图5所示的对象排序系统的计算节点群组中一个计算节点,如图14所示,所述装置包括:

第二确定数据信息单元141,用于确定待处理对象的待处理数据信息,以及用于表示所述待处理对象所属类别的待处理类别标识;其中,所述待处理数据信息包括用于唯一表示所述待处理对象的待处理对象标识,以及,所述待处理对象的待处理数据值;

第三发送数据信息单元142,用于在排序方式为按数据值降序排列情况下,仅在所述待处理数据值大于与所述待处理类别标识对应的当前阈值的情况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

第四发送数据信息单元143,用于在排序方式为按数据值升序排列情况下,仅在所述待处理数据值小于与所述待处理类别标识对应的当前阈值的情 况下,才将所述待处理数据信息发送至与所述待处理类别标识对应的排序节点;

其中,所述当前阈值为所述排序节点已有排序结果中末位数据信息中的数据值,所述已有排序结果为所述排序节点对多个数据信息按所述排序方式排序后生成的。

其中,如图15所示,所述第二确定数据信息单元141,包括:

第二接收数据信息单元151,用于接收所述分发节点群组发送的待处理对象的当前数据信息,其中,所述数据信息包括待处理类别标识、待处理对象标识以及当前数据值;

第三确定单元152,用于在所述当前数据信息中,确定待处理对象的所述待处理类别标识和所述待处理对象标识;

第二查找单元153,用于在与所述待处理类别标识对应的历史数据值集合中,查找与所述待处理对象标识对应的待处理历史数据值;

第四确定单元154,用于将所述待处理历史数据值与所述当前数据值的和值,确定为所述待处理对象的待处理数据值。

如图16所示,本申请提供的一种对象排序装置实施例二,还包括:

第二接收阈值单元161,用于在与所述待处理类别标识对应的排序节点依据所述待处理数据信息更新所述已有排序结果生成当前排序结果之后,接收与所述待处理类别标识对应的排序节点发送的类别标识和最新阈值;

第二更新单元162,利用所述最新阈值更新与所述类别标识对应的当前阈值;

其中,所述最新阈值为所述当前排序结果中末位数据信息中的数据值,所述类别标识与所述待处理对象的待处理类别标识一致。

如图8所示的对象排序方法相对应,本申请还提供了一种对象排序装置,应用于图2或图5所示的对象排序系统中一个排序节点。如图17所示,所述装置包括:

第三接收数据信息单元171,用于接收所述计算节点群组发送的待处理对象的待处理数据信息;其中,所述待处理数据信息包括所述待处理对象的待 处理对象标识和待处理数据值;所述计算节点群组中每个计算节点集成有图11或图14所示的装置。

生成单元172,用于依据所述待处理数据信息更新已有排序结果,生成当前排序结果。

其中,如图18所示,所述生成单元172,包括:

删除单元181,用于若所述已有排序结果对应的数据排序队列中不包含所述待处理对象标识,则在所述排序数据队列中删除所述已有排序结果中的末位数据信息;

添加单元182,用于在所述排序数据队列中添加所述待处理数据信息;

第一生成结果单元183,用于对所述排序数据队列重新排序之后,生成所述当前排序结果。

其中,如图19所示,所述生成单元172,包括:

第三更新单元191,用于若所述已有排序结果对应的数据排序队列中包含所述待处理对象标识,则在所述数据排序队列中,利用所述待处理数据值更新所述待处理对象标识对应的历史数据值;

第二生成结果单元192,用于对所述排序数据队列重新排序之后,生成所述当前排序结果。

如图20所示,在所述生成所述当前排序结果之后,还包括:

第五确定单元201,用于将所述当前排序结果的末位数据信息中的数据值确定为最新阈值;

第一发送阈值单元202,用于向所述计算节点群组中各个计算节点发送所述最新阈值。或者,第二发送阈值单元203,用于向所述计算节点群组中各个计算节点发送所述最新阈值和所述排序节点自身的类别标识;其中,所述类别标识与所述待处理对象的待处理类别标识一致。

如图2所示,本申请提供了一种对象排序系统,其特征在于,包括:

分发节点群组100、计算节点群组200和排序节点301;

所述计算节点群组100用于执行图3所示的对象排序方法。

所述排序节点301用于执行图8所示的对象排序方法。

本系统的具体执行过程,已在图3和图8的实施例中进行详细描述,在此不再赘述。

如图5所示,本申请提供了一种对象排序系统,包括:

分发节点群组100、计算节点群组200和排序节点群组300;

所述计算节点群组100用于执行图6所示的对象排序方法。

所述排序节点群组300中的排序节点用于执行图8所示的对象排序方法。

本系统的具体执行过程,已在图6和图8的实施例中进行详细描述,在此不再赘述。

通过以上内容可以看出本申请具有以下有益效果:

本申请提供的对象排序系统在计算节点上设有一个当前阈值,当前阈值为已有排序结果的末位数据信息中的数据值。可以理解的是,在排序方式为降序(或升序)排列的情况下[即计算最大top(n)(或最小top(n))的情况下],已有排序结果的末位数据信息中的数据值为已有排序结果中的最小值(最大值)。

因此,在待处理数据值大于(小于)当前阈值的时候,待处理数据信息才有打破已有排序结果的可能,此时计算节点才向排序节点发送待处理对象的待处理数据信息,以供排序节点更新已有排序结果。在待处理数据值不大于(不小于)当前阈值的时候,待处理数据信息不会改变已有排序结果,此时,计算节点不会向排序节点发送待处理对象的待处理数据信息,排序节点便无需对待处理对象的待处理数据进行计算。

即,本申请中计算节点利用将待处理对象的待处理数据信息与当前阈值进行比较的方式来过滤掉大部分对排序结果无用的待处理对象,仅仅将对排序结果有用的待处理对象发送至排序节点,由排序节点进行排序。因此,本申请可以使得排序节点对较少数量的对象进行排序,由于排序对象数量骤减所以可以提高排序效率并减少占用内存。

本实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可 以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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