<kbd id="ia2e8"><input id="ia2e8"></input></kbd><u id="ia2e8"></u>
  • <blockquote id="ia2e8"></blockquote>
  • <blockquote id="ia2e8"></blockquote>
  • <samp id="ia2e8"><label id="ia2e8"></label></samp>
  • 對象排序方法、裝置及系統與流程

    文檔序號:12824816
    對象排序方法、裝置及系統與流程

    本申請涉及計算機技術領域,尤其涉及一種對象排序方法、裝置及系統。



    背景技術:

    隨著科學技術的快速發展,各行各業中開始普及計算機技術。伴隨著各行各業的日常運作,這些計算機可以產生蘊含豐富數據信息的海量數據,并且這些數據信息具有較高的應用價值。為了提取海量數據中的有價值數據信息,可以對海量數據進行數據分析。

    目前,對海量數據進行數據分析,可以采用數據排序方式、建模分析方式、數據統計方式等技術手段。其中,對海量數據中的對象進行排序為獲取海量數據中有價值數據信息的一個常用技術手段。例如,對淘寶網上賣家的訂單量進行排序,對互聯網上新聞的點擊量進行排序,對全國各個城市的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
    中文字幕一区在线观看视频_国产偷v国产偷v_西西人体44rt net毛最多_伊人久久大香线蕉综合网