TW201627873A - 用於在分散式計算中處理重發請求的方法與設備 - Google Patents
用於在分散式計算中處理重發請求的方法與設備 Download PDFInfo
- Publication number
- TW201627873A TW201627873A TW104128416A TW104128416A TW201627873A TW 201627873 A TW201627873 A TW 201627873A TW 104128416 A TW104128416 A TW 104128416A TW 104128416 A TW104128416 A TW 104128416A TW 201627873 A TW201627873 A TW 201627873A
- Authority
- TW
- Taiwan
- Prior art keywords
- partition
- request
- copy
- retransmission
- response
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/08—Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
Abstract
本發明的目的是提供一種用於在分散式計算中處理重發請求的方法與設備;獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;將所述重發請求發送至所述目標副本分區。與現有技術相比,本發明透過所述各個副本分區的分區回應時間來區別各個分區,從而確定所述重發請求所對應的目標副本分區,使得重發時可以優先選擇回應時間更優的副本,降低重發請求的回應時間,降低集群的整體負載。
Description
本發明涉及電腦領域,尤其涉及一種用於在分散式計算中處理重發請求的技術。
在分散式計算中,有時需要將一個較大的計算任務拆分成多個子任務,並將各個子任務分發到多個計算節點進行處理,待所述計算節點處理完成後,再將各個子任務的計算結果反饋匯總為最終計算結果,所述較大的計算任務的執行情況取決於最慢的子任務的執行時間,若是個別子任務的執行時間遠遠大於其他子任務,就會影響到整個分散式系統的吞吐量和請求相應時間,這就是分散式計算中的長尾現象。
目前,在現有技術中,對於長尾現象,主要是採用簡單的任務重發的方式來補償長尾現象對整體計算任務的耗時影響,但實踐表明,此時,重發的任務往往並不能較快地完成,從而導致簡單的任務重發並不能有效緩解分散式計算中的長尾現象。
本發明的目的是提供一種用於在分散式計算中處理重發請求的方法與設備。
根據本發明的一個方面,提供了一種用於在分散式計算中處理重發請求的方法,包括:獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;將所述重發請求發送至所述目標副本分區。
根據本發明的另一方面,還提供了一種用於在分散式計算中處理重發請求的設備,包括:第一裝置,用於獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;第二裝置,用於基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;第三裝置,用於將所述重發請求發送至所述目標副本分區。
與現有技術相比,本發明透過所述各個副本分區的分區回應時間來區別各個分區,從而確定所述重發請求所對應的目標副本分區,使得重發時可以優先選擇回應時間更優的副本,降低重發請求的回應時間,降低集群的整體負
載。而且,本發明還引入重發預判,只有當所述重發請求滿足請求重發條件時,才將所述重發請求發送至所述目標副本分區,而在集群高負載和分區傾斜等應用場景中,由於被請求重發的分區的最近回應時間已經較大,則放棄重發請求,使得可以節省大概率無益處的重發,從而降低集群實際負載。此外,對於分散式計算中待處理的首發請求,本發明還可依據各個副本分區的分區回應速度資訊選擇所述首發請求對應的副本分區,即在第一次發送請求時就為目標請求選擇了較優的分區,從而在源頭上就儘量減少了需要重發的概率。
1‧‧‧設備
101‧‧‧第一裝置
102‧‧‧第二裝置
103‧‧‧第三裝置
201‧‧‧第一裝置
202‧‧‧第二裝置
203‧‧‧第三裝置
204‧‧‧第四裝置
透過閱讀參照以下圖式所作的對非限制性實施例所作的詳細描述,本發明的其他特徵、目的和優點將會變得更明顯:圖1示出根據本發明一個方面的一種用於在分散式計算中處理重發請求的設備的設備示意圖;圖2示出根據本發明一個較佳實施例的一種用於在分散式計算中處理重發請求的設備的設備示意圖;圖3示出根據本發明另一個方面的一種用於在分散式計算中處理重發請求的方法流程圖;圖4示出根據本發明一個較佳實施例的一種用於在分散式計算中處理重發請求的方法流程圖;圖5示出根據本發明一個較佳實施例的與現有技術的
技術效果對比圖。
圖式中相同或相似的圖式符號代表相同或相似的部件。
下面結合圖式對本發明作進一步詳細描述。
在本發明一個典型的配置中,終端、服務網路的設備和可信方均包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)和/或非揮發性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁片儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取
的資訊。按照本文中的界定,電腦可讀媒體不包括非暫存電腦可讀媒體(transitory media),如調變的資料信號和載波。
圖1示出根據本發明一個方面的一種用於在分散式計算中處理重發請求的設備的設備示意圖。所述設備1包括第一裝置101、第二裝置102和第三裝置103。
其中,第一裝置101獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;第二裝置102基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;第三裝置103將所述重發請求發送至所述目標副本分區。
具體地,所述設備1的第一裝置101獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區。在分散式計算中,用戶發出的任務請求往往需要巨大計算能力才能解決,此時,會將該複雜的父請求拆分為多個子請求,進而,透過伺服器將所述多個子請求分別發送到分散式集群的多個計算節點進行各自處理,待各個計算節點處理完成,再將各個計算結果返回匯總。在此,所述分散式集群中,會存在若干套副本資料,每一套副本資料都包含分散式計算中所需要的全部資料,每一套副本資料進一步劃分為若干個副本分區,每個副本分區都包含對應副本資料中的部分資料。在此,較佳地,所述每一套副本資料對
應的分區劃分一致,例如,系統中同時存在副本資料1和副本資料2,兩套副本資料都分別劃分為M個分區,且對應分區中分佈的資料相同,如,副本資料1的分區1與副本資料2的分區1一致,副本資料1的分區2與副本資料2的分區2一致,……以此類推。在此,分散式集群由多台伺服器組成,一台伺服器即為一個計算節點,可以儲存一個或是多個分區資料。一個副本資料的各個分區所對應的設備,可以都存在於同一個機房,也可以跨機房部署。一個機房也可以同時部署多個副本資料對應的各個設備。
在此,基於分散式集群中一些常見問題,如跨機房網路延遲、設備暫態故障、設備硬體差異、資料分片不均勻等原因可能導致各個計算節點上回應時間的不平衡。此時,對於回應不及時的子請求定義為長尾請求,即為所述待處理的重發請求。所述待處理的重發請求的獲取,可以基於所設定的比例時間,即所述目標請求超過預設的比例時間即需要啟動重發任務;也可以採用自一定比例的分區結果返回時,判斷是否啟動重發任務,例如一個父請求拆分成100個目標子請求,並對應於100個分區,當有30%的分區返回了請求結果,而剩下的請求仍在執行時,則判斷啟動重發剩餘的仍在執行的任務,獲取重發請求。
接著,所述設備1的第二裝置102基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區。基於系統中冗餘的副本分區,所述重發請求可以重新選擇一個發送副本分區,在該副本分區中對應有所述重
發請求需要的資料資訊,在此,較佳地,所述每一個副本資料對應的分區劃分一致,進而所述重發請求可以與每個副本的對應分區相匹配。一般情況下,不同副本的相同分區,對於同一個重發請求的回應情況存在著差異,例如,同樣對於重發請求A,同時存在兩個副本分區,副本1的分區3與副本2的分區3同時都包含重發請求A對應的請求資料,但是上述兩個副本分區可能由於此時資料負載,或是兩個副本分區對應的設備之間的差異,或是其中一個副本分區對應的設備存在故障等原因,使得對於重發請求A而言,兩個副本分區的實際請求回應效果存在差異,為了更有效地完成整體計算,會優先選擇回應效果更優的副本分區作為所述重發請求A的目標副本分區。在此,較佳地,基於所述副本分區的分區回應時間資訊來確定所述重發請求對應的目標副本分區。所述分區回應時間資訊包括基於所述分區接收的歷史請求、即時請求的回應時間等資料進行分析計算而得到的分區資訊。一般情況下,可以透過比較各個副本分區的分區回應時間資訊來選擇回應效果更優的副本分區。具體地,在分散式計算過程中,每個副本分區每個時間段都可能會接受大量的不同資料請求,所以分區的資料負載在不斷變化,進而,每個副本分區的分區回應時間資訊不會一成不變,而是需要即時更新。在本發明中,更新所基於的所述歷史請求或即時請求包括某個資料請求的首發請求,也包括某個資料請求的重發請求。進一步,系統可以設置一定的更新周期,例如每隔T時
間,更新對應的分區回應時間資訊;也可以基於即時請求的回應時間,更新對應的分區回應時間資訊;還可以同時對歷史請求和即時請求的回應時間進行權重計算,得到更合理的分區回應時間資訊。更進一步,當一個重發請求需要選擇對應的目標副本分區時,就可以基於此時各個副本分區對應的分區回應時間資訊,進行篩選,得到最終的目標副本分區。
在此,本領域技術人員應能理解上述基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區僅為舉例,其他現有的或今後可能出現的確定所述重發請求對應的目標副本分區的方式如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
接著,所述設備1的第三裝置103將所述重發請求發送至所述目標副本分區。當確定了所述重發請求對應的目標副本分區,可以進一步將請求任務重新發送到新的副本分區,並等待新的副本分區返回資訊。本發明中,所述分散式計算可以包括即時計算,也可以包括非即時計算。特別是,當所述分散式計算為非即時計算時,計算任務時長的量級較大,如可以是分鐘、小時或是更長,此時若是一次重發的效果依然不理想,在性能開銷允許的範圍內,還可以基於本發明繼續進行二次重發、三次重發……。此外,可以在重發請求發出前,對所述目標副本分區進行重發預判,目的是,當出現集群高負載和分區傾斜等場景,
放棄無益處的重發,降低集群整體的實際負載。
在現有技術中,對於長尾現象,重發請求會等概率的發送到不同副本,此時,任務重發是基於兩個前提:一是預設重發請求比原先請求優先返回;二是重發請求帶來的性能開銷較小,對其他正常處理的請求無明顯影響。但是在實際計算中,上述假設的前提並不總是成立。例如,當整個集群處於高負載狀態下,若是接受重發請求的設備已經處於高負載狀態,則重發請求依然需要較長時間返回,此時,重發並不能改善集群回應時間,反而會增加集群負擔。又如,計算任務所依賴的資料分區傾斜,如數據劃分不均和資料存取傾斜等情況,此時,所有副本中對應重發請求的分區回應時間都較大,無法對任務重發帶來任何好處。再如,計算任務對應的副本傾斜,如由於網路存取時間延遲差異、設備差異、硬體故障等原因使得分散式集群中包含相同資料的等價副本在負載相同時也可能存在一致性的回應時間差異。這些場景使得現有技術的適用存在明顯的缺點,從而,並不能很好地解決長尾問題。
與此相比,本發明透過所述各個副本分區的分區回應時間來區別各個分區,從而確定所述重發請求所對應的目標副本分區,使得重發時可以優先選擇回應時間更優的副本,降低重發請求的回應時間,降低集群的整體負載,從而優化了整體的分散式計算。
較佳地,所述設備1的第三裝置103包括第一單元(未示出)和第二單元(未示出),所述第一單元檢測所
述重發請求是否滿足請求重發條件;所述第二單元當所述重發請求滿足所述請求重發條件,將所述重發請求發送至所述目標副本分區。
具體地,對於所獲取的重發請求,基於所述各個副本分區的分區回應時間確定了重發請求所對應的最優的目標副本分區,但是,有時在目標副本分區完成重發並不能真正優化集群計算。例如,當整個集群處於高負載狀態下,或是計算任務所依賴的資料分區傾斜時,如遇到資料劃分不均和資料存取傾斜等情況時,所有副本中對應重發請求的分區回應時間都較大,無法對任務重發帶來任何好處。此時,可以選擇放棄重發請求,以避免大概率的無益處的重發,從而降低集群的實際負載。較佳地,可以基於任務請求對應的副本分區可能存在的過載情況,設置對應的請求重發條件,透過所述第三裝置103的第一單元檢測所述重發請求是否滿足設置的請求重發條件。當不滿足請求重發條件時,則啟動過載保護,即判斷認為所對應的目標副本分區過載,放棄重發,若是所述重發請求滿足所述請求重發條件,則判斷進行重發操作,所述第二單元會將所述重發請求發送至所述目標副本分區。
更較佳地,所述第一單元根據所述目標副本分區的分區回應時間資訊及所述重發請求所對應的最大超時時間,確定所述重發請求是否滿足請求重發條件。
具體地,可以基於所述重發請求所對應的目標副本分區的分區回應時間資訊以及所述目標副本分區中所述重發
請求對應的最大超時時間,來判斷所述重發請求是否滿足請求重發條件。在此,所述最大超時時間對應於一個請求在分區等待回應的所允許的最長時間。較佳地,在分散式計算中,來自同一個父請求的各個子請求對應的所述最大超時時間一致,來自不同父請求的各個子請求可以對應各異的所述最大超時時間。所述最大超時時間的設置的差異可以基於各個任務請求對應的來源不同而有所差異。在此,基於所述重發請求對應的最大超時時間,並結合目標副本分區的分區回應時間資訊,就可以對所述重發請求進行預判。例如,當副本分區中所述重發請求對應的最大超時時間為T,當前目標副本分區的分區回應時間資訊是score,則當score<T×a(a是介於0到1之間的浮點數)時,判斷不滿足請求重發條件,啟動過載保護。例如當a取為0.5時,若此時分區回應時間資訊score較小,如小於該副本分區的請求最大超時時間的一半時,說明發往目標副本分區的請求可能需要較長時間才能返回,這可能是應為是目標副本分區對應的設備的負載已經很高,此時則選擇放棄重發。反之,則說明滿足請求重發條件,進而可以將所述重發請求發送至所述目標副本分區。
在此,本領域技術人員應能理解上述確定所述重發請求是否滿足請求重發條件的方法僅為舉例,其他現有的或今後可能出現的其他確定所述重發請求是否滿足請求重發條件的方法如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
圖2示出根據本發明一個較佳實施例的一種用於在分散式計算中處理重發請求的設備的設備示意圖。所述設備1還包括第四裝置204。以下參照圖2對該較佳實施例進行詳細描述:具體地,設備1的第一裝置201獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;第二裝置202基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;第三裝置203將所述重發請求發送至所述目標副本分區;第四裝置204根據所述副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定所述副本分區的分區回應速度資訊;其中,所述第二裝置202基於所述副本分區的分區回應速度資訊確定所述重發請求所對應的目標副本分區。其中,所述設備1的第一裝置201、第二裝置202和第三裝置203與圖1所示出的對應裝置相同或基本相同,故此處不再贅述,並透過引用的方式包含於此。
其中,所述第四裝置204根據所述副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定所述副本分區的分區回應速度資訊;其中,所述第二裝置202基於所述副本分區的分區回應速度資訊確定所述重發請求所對應的目標副本分區。具體地,透過所述分區回應時間資訊確定所述副本分區的分區回應速度資訊,再基於所述分區回應速度資訊確定所述目標副本分區。較佳地,所述分區回應速度資訊為當前分區回應速度資訊。所述分區回
應速度資訊可以對應多種形式。例如,在當前時刻T1,副本x的分區y回應了某個當前請求Q1,並且所述分區y對於請求Q1的回應返回時間是t1,此時基於請求Q1的所述回應返回時間t1,確定副本x的分區y的當前分區回應時間資訊D1,此時,可以將所述副本x的分區y的當前分區回應時間資訊D1作為該副本分區的當前分區回應速度資訊。又如,基於上例,已知所述副本x的分區y的當前分區回應時間資訊D1,並且,若是在之前一個歷史時刻T0,副本x的分區y回應了某個當前請求Q0,所述分區y對於請求Q0的回應返回時間是t0,對應於T0時刻,基於請求Q0的所述回應返回時間t0,確定副本x的分區y的歷史分區回應時間資訊D0,同時,該歷史分區回應時間資訊D0對應於一個歷史分區回應速度資訊E0,此時,基於所述歷史分區回應速度資訊E0和當前分區回應時間資訊D1,做加權運算,得到當前分區回應速度資訊E1,所述演算法的一種舉例如下:E1=[E0×b+D1×(2-b)]/2,(b是0到1之間的浮點數,比如0.8)
在此,所述分區回應速度資訊是基於歷史分區回應速度資訊和當前分區回應時間資訊的加權運算得到的,透過所述加權運算做資料平滑處理,可以降低歷史分區回應時間資訊的影響,突出最新的分區回應時間資訊的影響。所述分區回應速度資訊能夠體現各個副本分區對於任務請求的處理差異,並且,還可以對各個分區回應速度資訊進行周期性、或是即時地更新,使得該資料的更加合理。進一
步,所述設備1的第二裝置102基於所述副本分區的當前分區回應速度資訊確定所述重發請求所對應的目標副本分區。
較佳地,所述第二裝置202包括第三單元(未示出)和第四單元(未示出),所述第三單元根據所述重發請求確定一個或多個候選副本分區;所述第四單元基於所述候選副本分區的分區回應速度資訊,確定所述重發請求所對應的目標副本分區。
具體地,所述第二裝置202的第三單元根據所述重發請求確定一個或多個候選副本分區。在此,首先要確定若干個候選副本分區,其中所述候選副本分區需要包含所述重發請求所請求的目標資料。每一套副本資料都包含分散式集群中進行的計算所需要的全套資料,各個副本資料劃分成若干個分區,各個副本資料劃分分區的標準可以一致,也可以不同。例如,副本資料1劃分為n個分區,副本資料2劃分為m個分區,若此時重發請求對應的首發請求發送到的是副本資料1中的第n1個分區,請求的是資料W,則副本資料2中所對應的候選副本分區,就是其m個分區中包含了資料W的對應分區。在此,較佳地,分散式集群中,各個副本資料的劃分標準一致,由此,便可以快速地確定所述候選副本分區。例如,在上述舉例中,n與m相等,且每一組相同分區中資料組成也分別一致,即副本資料1的第n1分區中的資料與副本資料2的第m1分區中的資料分佈一致。此時,若所述首發請求是
向某個副本資料的第k個分區發出的請求,則對應的重發請求的候選副本分區,就是其他各個副本中的第k個分區。
接著,所述第二裝置202的第四單元基於所述候選副本分區的分區回應速度資訊,確定所述重發請求所對應的目標副本分區。在此,各個副本資料,可能因為歷史資料負載不均,跨機房網路延遲、設備暫態故障、設備硬體差異等情況而存在副本回應速度資訊的差異,這種差異會直接反映到各個副本所對應的分區,進而,即使各個副本的分區劃分一致,不同副本資料中相同的副本分區,如副本資料1的第a個分區與副本資料2的第a個分區,也會存在分區回應速度資訊的差異。進一步,基於這種差異,便可以選擇出所述重發請求對應的最終的目標副本分區。所述重發請求對應的目標副本分區的確定,可以有多種方式,例如,可以是先基於副本分區的各個分區回應速度資訊,得到一個副本整體的副本回應速度資訊,再對各個副本資料對應的所述副本回應速度資訊進行對比,選擇目標副本,進而選擇目標副本中與重發請求對應的具體的目標副本分區;又如,在此,較佳地,也可以是直接採用體現了各個副本資料之間的差異體的分區回應速度資訊,從而選擇重發請求對應的目標副本分區,其中,副本之間的差異,也會間接的體現在其中各個副本分區的分區回應速度資訊中。
更較佳地,所述第四單元累加前i個所述候選副本分
區的分區回應速度資訊,直至所得累加和與所有所述候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數;將該第i個所述候選副本分區作為所述重發請求所對應的目標副本分區。
具體地,確定所述重發請求對應的目標副本分區的方法,較佳地可以是:基於獲取的所述重發請求,進一步確定若干個候選副本分區,並獲得各個候選副本分區當前對應的分區回應速度資訊,在此,基於本方案的所述目標副本分區的選擇演算法的一個實例如下:分區M.sum_score=副本1.分區M.score+副本2.分區M.score+…副本n.分區M.score rand=產生0-1之間的隨機浮點數for迴圈副本1.分區M到副本n.分區M分區M.accumulate=副本1.分區M.score+副本2.分區M.score+…副本i.分區M.score如果rand<分區M.accumulate/分區M.sum_score返回:選擇分區i迴圈結束選擇分區n(上述迴圈未選中)
在此,所述重發請求對應的資料資訊存在於副本分區M中,候選副本將分區回應速度資訊記為score。副本1、副本2……副本n為n個候選副本,每個副本都對應資料分佈相同的分區M。副本1.分區M.score、副本2.分區M.score、…副本n.分區M.score為各個候選副本分區對應的分區回應速度資訊。分區M.sum_score為所有所述候選副本分區的分區回應速度資訊之和。首先,累加
前i個所述候選副本分區的分區回應速度資訊,則當累加到前i個所述候選副本分區的分區回應速度資訊時,所述分區回應速度資訊的累加值與所有所述候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數,此時,選擇第i個候選副本分區作為所述重發請求所對應的目標副本分區;若是迴圈結束仍未有選中的副本分區,則以第n個副本分區作為所述重發請求所對應的目標副本分區。在此,所述候選副本分區對應的分區回應速度資訊越優,即score數值越大,則對應副本分區其被選中作為目標副本分區的概率就越大。
在此,本領域技術人員應能理解上述確定重發請求對應的目標副本分區的方法僅為舉例,其他現有的或今後可能出現的確定所述重發請求對應的目標副本分區的方式如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
更較佳地,所述亂數為即時產生的。
具體地,區間(0,1)內的一亂數是即時產生的,即在進行目標副本分區選擇時即時產生。在此,基於即時產生的亂數,並依照一定的概率選擇目標副本分區,雖然所述候選副本分區對應的分區回應速度資訊越優,其被選中作為目標副本分區的概率就越大,但是一些分區回應速度資訊較低的分區也存在被選中的概率。這種並非嚴格選擇分區回應速度資訊最優的分區的做法是為了對資料做平滑處理。原因可以包含以下兩點:一是,所述各個分區的分
區回應速度資訊,反映的是歷史上計算出該分區回應速度資訊時的各個分區的情況,並不能完全準確地代表當前進行重發請求時的各個分區的最新情況。例如,某個分區之前由於存在設備障礙,對應的分區回應速度資訊不理想,但是當前由於設備回復正常,就可能帶來比其他分區更優的操作性能,這一改變並不能及時體現在該分區對應的分區回應速度資訊上,此時,如果完全基於對應的分區回應速度資訊進行選擇,該分區就不會被選中,則所述分區對應設備性能恢復後的優勢就得不到利用。所以,在此,透過即時產生的亂數可以均衡地給予分區回應速度資訊不理想、但是實際性可能較優的候選副本分區被選中的機會。二是,避免候選副本分區對應的分區回應速度資訊波動太大。若是嚴格按照分區回應速度資訊選擇目標副本分區,對於分區回應速度資訊較優的分區,在連續一段時間,特別在請求量較大時,甚至是一暫態,該分區會接受大量請求,對應的負載會快速增大,進而該分區對應的分區回應速度資訊迅速降低,則後續請求又會快速轉移請求另一個分區回應速度資訊較高的分區,如此一來,各個分區後背跳躍式選擇,穩定性較差,不利於集群的整體性能發揮。
較佳地,所述設備1還包括第七裝置(未示出)和第八裝置(未示出),其中,所述第七裝置接收對應的請求回應結果;所述第八裝置根據所述請求回應結果的回應時間,更新對應副本分區的分區回應速度資訊。
具體地,在分散式計算中,副本分區對應的分區回應
速度資訊可以即時更新。較佳地,可以基於每一次所述副本分區返回的請求回應結果來更新該副本分區的分區回應速度資訊。在此,透過所述第七裝置接收的請求回應結果,可以對應於到達對應分區的某個請求任務的首發請求,也可以對應於到達對應分區的某個請求任務的重發請求。例如,本發明中,當目標重發請求在副本u的分區v中完成重發任務,並返回請求資訊,此時接收到該副本u的分區v的重發請求對應的請求回應結果是回應時間t,則基於該回應時間t,更新對應的副本分區的分區回應速度資訊。
在此,本領域技術人員應能理解上述請求回應結果的回應時間僅為舉例,其他現有的或今後可能出現的其他形式的請求回應結果如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
更較佳地,所述第八裝置根據所述請求回應結果的回應時間,以及對應副本分區的請求最大超時時間,確定所述對應副本分區的請求多餘時間資訊;並根據所述請求多餘時間資訊,更新所述對應副本分區的分區回應速度資訊。
具體地,在此,所述第八裝置對副本分區對應的分區回應速度資訊的具體更新,需要獲得幾個資料資訊,一是所述第七裝置接收到的所述待更新副本分區對某個所述任務請求的回應時間;二是所述任務請求在所述待更新副本分區對應的請求最大超時時間。例如,上述副本u的分區
v的重發請求對應的請求回應結果是回應時間t。同時,所述重發請求在所述副本分區對應一個請求最大超時時間,所述請求最大超時時間對應於一個請求在分區等待回應的所允許的最長時間。進一步,基於所述副本分區中請求相應結果的回應時間和對應的請求最大超時時間,確定對應副本分區的請求多餘時間資訊。例如,上述副本u的分區v的重發請求對應的請求回應結果是回應時間t,所述重發請求在分區v的請求的最大超時時間Tm3,則較佳地,所述副本分區的請求多餘時間資訊為Tm3-t。對於一個副本分區,若是請求的最大超時時間與請求回應結果的回應時間越接近,即多餘時間越少,則後續就可能不會再接受緊急的請求,相反地,若是所述請求多餘時間越多,則對應的分區回應速度資訊越優。進一步,基於所述多餘時間資訊可以更新所述副本分區的分區回應速度資訊,例如,可以直接以當前的請求所對應請求多餘時間資訊作為副本分區的分區回應速度資訊來更新;也可以將當前所對應的請求多餘時間資訊與該副本分區之前計算得到的歷史請求多餘時間資訊做加權運算,以加權運算的結果作為所更新的分區回應速度資訊,在此,可以透過這樣的平滑操作強化最新資料的影響。
此外,對於各個副本分區所對應的請求最大超時時間,在分散式計算中,父請求的回應時間取決於最慢的子任務的執行時間,進而,為父請求確定的請求最大超時時間也同樣適用對應的各個子請求。例如,父請求1對應的
最大超時時間是Tm,則其對應的所有子請求的最大超時時間是都Tm。則當所述子請求首發到各個副本分區,或是所述子請求重發到各個副本分區時,所對應的副本分區的請求最大超時時間即為所述Tm。在此,所述請求最大超時時間的確定可以依據各種不同的請求類型,並基於歷史請求資料資訊來確定。例如,同樣是對某個副本分區中相同資料的請求,請求Y1是來自交易買家的請求,請求Y2是來自交易賣家的請求,此時,對應的副本分區的請求最大超時時間可能就是:在接收請求Y1時,對應請求的最大超時時間Tm1,在接收請求Y2時,對應請求的最大超時時間Tm2,在此,Tm1與Tm2可以不相同。
較佳地,所述設備1還包括第五裝置(未示出)和第六裝置(未示出),所述第五裝置用於獲取分散式計算中待處理的首發請求;所述第六裝置基於所述副本分區的分區回應速度資訊確定所述首發請求所對應的副本分區,並將所述首發請求發送至所述首發請求所對應的副本分區。
具體地,在實際的分散式計算中,透過本發明所述的方法,可以對所述任務請求的重發進行優化,優選回應時間較優的副本。進一步,在父請求所對應的各個子請求的首發請求,也可以基於已有的所述副本分區的分區回應速度資訊確定所述首發請求所對應的副本分區,並將所述首發請求發送至所述首發請求所對應的副本分區。此時,對比現有方案,可以從源頭上減少需要重發的次數,有效地減少了後續因為長回應時間需要重發的請求,降低集群的
實際負載。具體的操作過程與重發請求選擇對應目標副本分區相同或相似,在此,不再贅述。
圖3示出根據本發明另一個方面的一種用於在分散式計算中處理重發請求的方法流程圖。
其中,在步驟S301中,所述設備1獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;在步驟S302中,所述設備1基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;在步驟S303中,所述設備1將所述重發請求發送至所述目標副本分區。
具體地,在步驟S301中,所述設備1獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區。在分散式計算中,用戶發出的任務請求往往需要巨大計算能力才能解決,此時,會將該複雜的父請求拆分為多個子請求,進而,透過伺服器將所述多個子請求分別發送到分散式集群的多個計算節點進行各自處理,待各個計算節點處理完成,再將各個計算結果返回匯總。在此,所述分散式集群中,會存在若干套副本資料,每一套副本資料都包含分散式計算中所需要的全部資料,每一套副本資料進一步劃分為若干個副本分區,每個副本分區都包含對應副本資料中的部分資料。在此,較佳地,所述每一套副本資料對應的分區劃分一致,例如,系統中同時存在副本資料1
和副本資料2,兩套副本資料都分別劃分為M個分區,且對應分區中分佈的資料相同,如,副本資料1的分區1與副本資料2的分區1一致,副本資料1的分區2與副本資料2的分區2一致,……以此類推。在此,分散式集群由多台伺服器組成,一台伺服器即為一個計算節點,可以儲存一個或是多個分區資料。一個副本資料的各個分區所對應的設備,可以都存在於同一個機房,也可以跨機房部署。一個機房也可以同時部署多個副本資料對應的各個設備。
在此,基於分散式集群中一些常見問題,如跨機房網路延遲、設備暫態故障、設備硬體差異、資料分片不均勻等原因可能導致各個計算節點上回應時間的不平衡。此時,對於回應不及時的子請求定義為長尾請求,即為所述待處理的重發請求。所述待處理的重發請求的獲取,可以基於所設定的比例時間,即所述目標請求超過預設的比例時間即需要啟動重發任務;也可以採用自一定比例的分區結果返回時,判斷是否啟動重發任務,例如一個父請求拆分成100個目標子請求,並對應於100個分區,當有30%的分區返回了請求結果,而剩下的請求仍在執行時,則判斷啟動重發剩餘的仍在執行的任務,獲取重發請求。
接著,在步驟S302中,所述設備1基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區。基於系統中冗餘的副本分區,所述重發請求可以重新選擇一個發送副本分區,在該副本分區中對應有所述
重發請求需要的資料資訊,在此,較佳地,所述每一個副本資料對應的分區劃分一致,進而所述重發請求可以與每個副本的對應分區相匹配。一般情況下,不同副本的相同分區,對於同一個重發請求的回應情況存在著差異,例如,同樣對於重發請求A,同時存在兩個副本分區,副本1的分區3與副本2的分區3同時都包含重發請求A對應的請求資料,但是上述兩個副本分區可能由於此時資料負載,或是兩個副本分區對應的設備之間的差異,或是其中一個副本分區對應的設備存在故障等原因,使得對於重發請求A而言,兩個副本分區的實際請求回應效果存在差異,為了更有效地完成整體計算,會優先選擇回應效果更優的副本分區作為所述重發請求A的目標副本分區。在此,較佳地,基於所述副本分區的分區回應時間資訊來確定所述重發請求對應的目標副本分區。所述分區回應時間資訊包括基於所述分區接收的歷史請求、即時請求的回應時間等資料進行分析計算而得到的分區資訊。一般情況下,可以透過比較各個副本分區的分區回應時間資訊來選擇回應效果更優的副本分區。具體地,在分散式計算過程中,每個副本分區每個時間段都可能會接受大量的不同資料請求,所以分區的資料負載在不斷變化,進而,每個副本分區的分區回應時間資訊不會一成不變,而是需要即時更新。在本發明中,更新所基於的所述歷史請求或即時請求包括某個資料請求的首發請求,也包括某個資料請求的重發請求。進一步,系統可以設置一定的更新周期,例如
每隔T時間,更新對應的分區回應時間資訊;也可以基於即時請求的回應時間,更新對應的分區回應時間資訊;還可以同時對歷史請求和即時請求的回應時間進行權重計算,得到更合理的分區回應時間資訊。更進一步,當一個重發請求需要選擇對應的目標副本分區時,就可以基於此時各個副本分區對應的分區回應時間資訊,進行篩選,得到最終的目標副本分區。
在此,本領域技術人員應能理解上述基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區僅為舉例,其他現有的或今後可能出現的確定所述重發請求對應的目標副本分區的方式如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
接著,在步驟S303中,所述設備1將所述重發請求發送至所述目標副本分區。當確定了所述重發請求對應的目標副本分區,可以進一步將請求任務重新發送到新的副本分區,並等待新的副本分區返回資訊。本發明中,所述分散式計算可以包括即時計算,也可以包括非即時計算。特別是,當所述分散式計算為非即時計算時,計算任務時長的量級較大,如可以是分鐘、小時或是更長,此時若是一次重發的效果依然不理想,在性能開銷允許的範圍內,還可以基於本發明繼續進行二次重發、三次重發……。此外,可以在重發請求發出前,對所述目標副本分區進行重發預判,目的是,當出現集群高負載和分區傾斜等場景,
放棄無益處的重發,降低集群整體的實際負載。
在現有技術中,對於長尾現象,重發請求會等概率的發送到不同副本,此時,任務重發是基於兩個前提:一是預設重發請求比原先請求優先返回;二是重發請求帶來的性能開銷較小,對其他正常處理的請求無明顯影響。但是在實際計算中,上述假設的前提並不總是成立。例如,當整個集群處於高負載狀態下,若是接受重發請求的設備已經處於高負載狀態,則重發請求依然需要較長時間返回,此時,重發並不能改善集群回應時間,反而會增加集群負擔。又如,計算任務所依賴的資料分區傾斜,如數據劃分不均和資料存取傾斜等情況,此時,所有副本中對應重發請求的分區回應時間都較大,無法對任務重發帶來任何好處。再如,計算任務對應的副本傾斜,如由於網路存取時間延遲差異、設備差異、硬體故障等原因使得分散式集群中包含相同資料的等價副本在負載相同時也可能存在一致性的回應時間差異。這些場景使得現有技術的適用存在明顯的缺點,從而,並不能很好地解決長尾問題。
與此相比,本發明透過所述各個副本分區的分區回應時間來區別各個分區,從而確定所述重發請求所對應的目標副本分區,使得重發時可以優先選擇回應時間更優的副本,降低重發請求的回應時間,降低集群的整體負載,從而優化了整體的分散式計算。
較佳地,所述方法的步驟S303中包括步驟S3031(未示出)和步驟S3032(未示出),在步驟S3031中,
所述設備1檢測所述重發請求是否滿足請求重發條件;在步驟S3032中,當所述重發請求滿足所述請求重發條件,所述設備1將所述重發請求發送至所述目標副本分區。
具體地,對於所獲取的重發請求,基於所述各個副本分區的分區回應時間確定了重發請求所對應的最優的目標副本分區,但是,有時在目標副本分區完成重發並不能真正優化集群計算。例如,當整個集群處於高負載狀態下,或是計算任務所依賴的資料分區傾斜時,如遇到資料劃分不均和資料存取傾斜等情況時,所有副本中對應重發請求的分區回應時間都較大,無法對任務重發帶來任何好處。此時,可以選擇放棄重發請求,以避免大概率的無益處的重發,從而降低集群的實際負載。較佳地,可以基於任務請求對應的副本分區可能存在的過載情況,設置對應的請求重發條件,在步驟S3031中,所述設備1檢測所述重發請求是否滿足設置的請求重發條件。當不滿足請求重發條件時,則啟動過載保護,即判斷認為所對應的目標副本分區過載,放棄重發,若是所述重發請求滿足所述請求重發條件,則判斷進行重發操作,所述設備1會將所述重發請求發送至所述目標副本分區。
更較佳地,在步驟S3031中,所述設備1根據所述目標副本分區的分區回應時間資訊及所述重發請求所對應的最大超時時間,確定所述重發請求是否滿足請求重發條件。
具體地,可以基於所述重發請求所對應的目標副本分
區的分區回應時間資訊以及所述目標副本分區中所述重發請求對應的最大超時時間,來判斷所述重發請求是否滿足請求重發條件。在此,所述最大超時時間對應於一個請求在分區等待回應的所允許的最長時間。較佳地,在分散式計算中,來自同一個父請求的各個子請求對應的所述最大超時時間一致,來自不同父請求的各個子請求可以對應各異的所述最大超時時間。所述最大超時時間的設置的差異可以基於各個任務請求對應的來源不同而有所差異。在此,基於所述重發請求對應的最大超時時間,並結合目標副本分區的分區回應時間資訊,就可以對所述重發請求進行預判。例如,當副本分區中所述重發請求對應的最大超時時間為T,當前目標副本分區的分區回應時間資訊是score,則當score<T×a(a是介於0到1之間的浮點數)時,判斷不滿足請求重發條件,啟動過載保護。例如當a取為0.5時,若此時分區回應時間資訊score較小,如小於該副本分區的請求最大超時時間的一半時,說明發往目標副本分區的請求可能需要較長時間才能返回,這可能是應為是目標副本分區對應的設備的負載已經很高,此時則選擇放棄重發。反之,則說明滿足請求重發條件,進而可以將所述重發請求發送至所述目標副本分區。
在此,本領域技術人員應能理解上述確定所述重發請求是否滿足請求重發條件的方法僅為舉例,其他現有的或今後可能出現的其他確定所述重發請求是否滿足請求重發條件的方法如可適用於本發明,也應包含在本發明保護範
圍以內,並在此以引用方式包含於此。
圖4示出根據本發明一個較佳實施例的一種用於在分散式計算中處理重發請求的方法流程圖。所述方法還包括步驟S404。以下參照圖4對該較佳實施例進行詳細描述:具體地,在步驟S401中,所述設備1獲取分散式計算中待處理的重發請求,其中,所述分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;在步驟S402中,所述設備1基於所述副本分區的分區回應時間資訊確定所述重發請求所對應的目標副本分區;在步驟S403中,所述設備1將所述重發請求發送至所述目標副本分區;在步驟S404中,所述設備1根據所述副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定所述副本分區的分區回應速度資訊;其中,在步驟S402中,所述設備1基於所述副本分區的分區回應速度資訊確定所述重發請求所對應的目標副本分區。其中,所述步驟S401、步驟S402和步驟S403與圖3所示出的對應步驟相同或基本相同,故此處不再贅述,並透過引用的方式包含於此。
其中,在所述步驟S404中,所述設備1根據所述副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定所述副本分區的分區回應速度資訊;其中,在步驟S402中,所述設備1基於所述副本分區的分區回應速度資訊確定所述重發請求所對應的目標副本分區。具體地,透過所述分區回應時間資訊確定所述副本分區的分區
回應速度資訊,再基於所述分區回應速度資訊確定所述目標副本分區。較佳地,所述分區回應速度資訊為當前分區回應速度資訊。所述分區回應速度資訊可以對應多種形式。例如,在當前時刻T1,副本x的分區y回應了某個當前請求Q1,並且所述分區y對於請求Q1的回應返回時間是t1,此時基於請求Q1的所述回應返回時間t1,確定副本x的分區y的當前分區回應時間資訊D1,此時,可以將所述副本x的分區y的當前分區回應時間資訊D1作為該副本分區的當前分區回應速度資訊。又如,基於上例,已知所述副本x的分區y的當前分區回應時間資訊D1,並且,若是在之前一個歷史時刻T0,副本x的分區y回應了某個當前請求Q0,所述分區y對於請求Q0的回應返回時間是t0,對應於T0時刻,基於請求Q0的所述回應返回時間t0,確定副本x的分區y的歷史分區回應時間資訊D0,同時,該歷史分區回應時間資訊D0對應於一個歷史分區回應速度資訊E0,此時,基於所述歷史分區回應速度資訊E0和當前分區回應時間資訊D1,做加權運算,得到當前分區回應速度資訊E1,所述演算法的一種舉例如下:E1=[E0×b+D1×(2-b)]/2,(b是0到1之間的浮點數,比如0.8)
在此,所述分區回應速度資訊是基於歷史分區回應速度資訊和當前分區回應時間資訊的加權運算得到的,透過所述加權運算做資料平滑處理,可以降低歷史分區回應時間資訊的影響,突出最新的分區回應時間資訊的影響。所
述分區回應速度資訊能夠體現各個副本分區對於任務請求的處理差異,並且,還可以對各個分區回應速度資訊進行周期性、或是即時地更新,使得該資料的更加合理。進一步,在步驟S402中,所述設備1基於所述副本分區的當前分區回應速度資訊確定所述重發請求所對應的目標副本分區。
較佳地,所述步驟S402中包括步驟S4021(未示出)和步驟S4022(未示出),在步驟S4021中,所述設備1根據所述重發請求確定一個或多個候選副本分區;在步驟S4022中,所述設備1基於所述候選副本分區的分區回應速度資訊,確定所述重發請求所對應的目標副本分區。
具體地,在步驟S4021中,所述設備1根據所述重發請求確定一個或多個候選副本分區。在此,首先要確定若干個候選副本分區,其中所述候選副本分區需要包含所述重發請求所請求的目標資料。每一套副本資料都包含分散式集群中進行的計算所需要的全套資料,各個副本資料劃分成若干個分區,各個副本資料劃分分區的標準可以一致,也可以不同。例如,副本資料1劃分為n個分區,副本資料2劃分為m個分區,若此時重發請求對應的首發請求發送到的是副本資料1中的第n1個分區,請求的是資料W,則副本資料2中所對應的候選副本分區,就是其m個分區中包含了資料W的對應分區。在此,較佳地,分散式集群中,各個副本資料的劃分標準一致,由此,便
可以快速地確定所述候選副本分區。例如,在上述舉例中,n與m相等,且每一組相同分區中資料組成也分別一致,即副本資料1的第n1分區中的資料與副本資料2的第m1分區中的資料分佈一致。此時,若所述首發請求是向某個副本資料的第k個分區發出的請求,則對應的重發請求的候選副本分區,就是其他各個副本中的第k個分區。
接著,在步驟S4022中,所述設備1基於所述候選副本分區的分區回應速度資訊,確定所述重發請求所對應的目標副本分區。在此,各個副本資料,可能因為歷史資料負載不均,跨機房網路延遲、設備暫態故障、設備硬體差異等情況而存在副本回應速度資訊的差異,這種差異會直接反映到各個副本所對應的分區,進而,即使各個副本的分區劃分一致,不同副本資料中相同的副本分區,如副本資料1的第a個分區與副本資料2的第a個分區,也會存在分區回應速度資訊的差異。進一步,基於這種差異,便可以選擇出所述重發請求對應的最終的目標副本分區。所述重發請求對應的目標副本分區的確定,可以有多種方式,例如,可以是先基於副本分區的各個分區回應速度資訊,得到一個副本整體的副本回應速度資訊,再對各個副本資料對應的所述副本回應速度資訊進行對比,選擇目標副本,進而選擇目標副本中與重發請求對應的具體的目標副本分區;又如,在此,較佳地,也可以是直接採用體現了各個副本資料之間的差異體的分區回應速度資訊,從而
選擇重發請求對應的目標副本分區,其中,副本之間的差異,也會間接的體現在其中各個副本分區的分區回應速度資訊中。
更較佳地,在步驟S4022中,所述設備1累加前i個所述候選副本分區的分區回應速度資訊,直至所得累加和與所有所述候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數;將該第i個所述候選副本分區作為所述重發請求所對應的目標副本分區。
具體地,確定所述重發請求對應的目標副本分區的方法,較佳地可以是:基於獲取的所述重發請求,進一步確定若干個候選副本分區,並獲得各個候選副本分區當前對應的分區回應速度資訊,在此,基於本方案的所述目標副本分區的選擇演算法的一個實例如下:分區M.sum_score=副本1.分區M.score+副本2.分區M.score+…+副本n.分區M.score rand=產生0-1之間的隨機浮點數for迴圈副本1.分區M到副本n.分區M分區M.accumulate=副本1.分區M.score+副本2.分區M.score+…+副本i.分區M.score如果rand<分區M.accumulate/分區M.sum_score返回:選擇分區i迴圈結束選擇分區n(上述迴圈未選中)
在此,所述重發請求對應的資料資訊存在於副本分區M中,候選副本將分區回應速度資訊記為score。副本1、副本2……副本n為n個候選副本,每個副本都對應
資料分佈相同的分區M。副本1.分區M.score、副本2.分區M.score、…副本n.分區M.score為各個候選副本分區對應的分區回應速度資訊。分區M.sum_score為所有所述候選副本分區的分區回應速度資訊之和。首先,累加前i個所述候選副本分區的分區回應速度資訊,則當累加到前i個所述候選副本分區的分區回應速度資訊時,所述分區回應速度資訊的累加值與所有所述候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數,此時,選擇第i個候選副本分區作為所述重發請求所對應的目標副本分區;若是迴圈結束仍未有選中的副本分區,則以第n個副本分區作為所述重發請求所對應的目標副本分區。在此,所述候選副本分區對應的分區回應速度資訊越優,即score數值越大,則對應副本分區其被選中作為目標副本分區的概率就越大。
在此,本領域技術人員應能理解上述確定重發請求對應的目標副本分區的方法僅為舉例,其他現有的或今後可能出現的確定所述重發請求對應的目標副本分區的方式如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
更較佳地,所述亂數為即時產生的。
具體地,區間(0,1)內的一亂數是即時產生的,即在進行目標副本分區選擇時即時產生。在此,基於即時產生的亂數,並依照一定的概率選擇目標副本分區,雖然所述候選副本分區對應的分區回應速度資訊越優,其被選中
作為目標副本分區的概率就越大,但是一些分區回應速度資訊較低的分區也存在被選中的概率。這種並非嚴格選擇分區回應速度資訊最優的分區的做法是為了對資料做平滑處理。原因可以包含以下兩點:一是,所述各個分區的分區回應速度資訊,反映的是歷史上計算出該分區回應速度資訊時的各個分區的情況,並不能完全準確地代表當前進行重發請求時的各個分區的最新情況。例如,某個分區之前由於存在設備障礙,對應的分區回應速度資訊不理想,但是當前由於設備回復正常,就可能帶來比其他分區更優的操作性能,這一改變並不能及時體現在該分區對應的分區回應速度資訊上,此時,如果完全基於對應的分區回應速度資訊進行選擇,該分區就不會被選中,則所述分區對應設備性能恢復後的優勢就得不到利用。所以,在此,透過即時產生的亂數可以均衡地給予分區回應速度資訊不理想、但是實際性可能較優的候選副本分區被選中的機會。二是,避免候選副本分區對應的分區回應速度資訊波動太大。若是嚴格按照分區回應速度資訊選擇目標副本分區,對於分區回應速度資訊較優的分區,在連續一段時間,特別在請求量較大時,甚至是一暫態,該分區會接受大量請求,對應的負載會快速增大,進而該分區對應的分區回應速度資訊迅速降低,則後續請求又會快速轉移請求另一個分區回應速度資訊較高的分區,如此一來,各個分區後背跳躍式選擇,穩定性較差,不利於集群的整體性能發揮。
較佳地,所述方法還包括步驟S407(未示出)和步
驟S408(未示出),其中,在步驟S407中,所述設備1接收對應的請求回應結果;在步驟S408中,所述設備1根據所述請求回應結果的回應時間,更新對應副本分區的分區回應速度資訊。
具體地,在分散式計算中,副本分區對應的分區回應速度資訊可以即時更新。較佳地,可以基於每一次所述副本分區返回的請求回應結果來更新該副本分區的分區回應速度資訊。在此,在步驟S408中,透過所述設備1接收的請求回應結果,可以對應於到達對應分區的某個請求任務的首發請求,也可以對應於到達對應分區的某個請求任務的重發請求。例如,本發明中,當目標重發請求在副本u的分區v中完成重發任務,並返回請求資訊,此時接收到該副本u的分區v的重發請求對應的請求回應結果是回應時間t,則基於該回應時間t,更新對應的副本分區的分區回應速度資訊。
在此,本領域技術人員應能理解上述請求回應結果的回應時間僅為舉例,其他現有的或今後可能出現的其他形式的請求回應結果如可適用於本發明,也應包含在本發明保護範圍以內,並在此以引用方式包含於此。
更較佳地,在步驟S408中,所述設備1根據所述請求回應結果的回應時間,以及對應副本分區的請求最大超時時間,確定所述對應副本分區的請求多餘時間資訊;並根據所述請求多餘時間資訊,更新所述對應副本分區的分區回應速度資訊。
具體地,在此,在步驟S408中,所述設備1對副本分區對應的分區回應速度資訊的具體更新,需要獲得幾個資料資訊,一是所述第七裝置接收到的所述待更新副本分區對某個所述任務請求的回應時間;二是所述任務請求在所述待更新副本分區對應的請求最大超時時間。例如,上述副本u的分區v的重發請求對應的請求回應結果是回應時間t。同時,所述重發請求在所述副本分區對應一個請求最大超時時間,所述請求最大超時時間對應於一個請求在分區等待回應的所允許的最長時間。進一步,基於所述副本分區中請求相應結果的回應時間和對應的請求最大超時時間,確定對應副本分區的請求多餘時間資訊。例如,上述副本u的分區v的重發請求對應的請求回應結果是回應時間t,所述重發請求在分區v的請求的最大超時時間Tm3,則較佳地,所述副本分區的請求多餘時間資訊為Tm3-t。對於一個副本分區,若是請求的最大超時時間與請求回應結果的回應時間越接近,即多餘時間越少,則後續就可能不會再接受緊急的請求,相反地,若是所述請求多餘時間越多,則對應的分區回應速度資訊越優。進一步,基於所述多餘時間資訊可以更新所述副本分區的分區回應速度資訊,例如,可以直接以當前的請求所對應請求多餘時間資訊作為副本分區的分區回應速度資訊來更新;也可以將當前所對應的請求多餘時間資訊與該副本分區之前計算得到的歷史請求多餘時間資訊做加權運算,以加權運算的結果作為所更新的分區回應速度資訊,在此,可以
透過這樣的平滑操作強化最新資料的影響。
此外,對於各個副本分區所對應的請求最大超時時間,在分散式計算中,父請求的回應時間取決於最慢的子任務的執行時間,進而,為父請求確定的請求最大超時時間也同樣適用對應的各個子請求。例如,父請求1對應的最大超時時間是Tm,則其對應的所有子請求的最大超時時間是都Tm。則當所述子請求首發到各個副本分區,或是所述子請求重發到各個副本分區時,所對應的副本分區的請求最大超時時間即為所述Tm。在此,所述請求最大超時時間的確定可以依據各種不同的請求類型,並基於歷史請求資料資訊來確定。例如,同樣是對某個副本分區中相同資料的請求,請求Y1是來自交易買家的請求,請求Y2是來自交易賣家的請求,此時,對應的副本分區的請求最大超時時間可能就是:在接收請求Y1時,對應請求的最大超時時間Tm1,在接收請求Y2時,對應請求的最大超時時間Tm2,在此,Tm1與Tm2可以不相同。
較佳地,所述方法還包括步驟S405(未示出)和步驟S406(未示出),其中,在步驟S405中,所述設備1獲取分散式計算中待處理的首發請求;在步驟S406中,所述設備1基於所述副本分區的分區回應速度資訊確定所述首發請求所對應的副本分區,並將所述首發請求發送至所述首發請求所對應的副本分區。
具體地,在實際的分散式計算中,透過本發明所述的方法,可以對所述任務請求的重發進行優化,優選回應時
間較優的副本。進一步,在父請求所對應的各個子請求的首發請求,也可以基於已有的所述副本分區的分區回應速度資訊確定所述首發請求所對應的副本分區,並將所述首發請求發送至所述首發請求所對應的副本分區。此時,對比現有方案,可以從源頭上減少需要重發的次數,有效地減少了後續因為長回應時間需要重發的請求,降低集群的實際負載。具體的操作過程與重發請求選擇對應目標副本分區相同或相似,在此,不再贅述。
圖5示出根據本發明一個較佳實施例的與現有技術的技術效果對比圖。
具體地,基於所類比的長尾應用場景,圖中示出了分散式集群在採用不同技術時對任務請求的回應時間,回應時間越短,技術效果越好。其中,對比於無長尾處理的情況,利用現有技術的長尾優化,集群回應時間會降低13%,而對比於相同的無長尾處理的情況,利用本發明對應的技術方案,可以使集群回應時間降低40%,相比於現有技術,整體上能有了明顯提升。此外,進一步對比了計算節點回應時間的方差,透過本方案,計算節點回應時間的方差下降了73%-82%,而方差下降則說明各個計算節點的回應時間趨於均衡,即透過本發明,集群整體負載情況得到均衡和優化,且效果顯著。
對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,
無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由申請專利範圍而不是上述說明限定,因此旨在將落在申請專利範圍的等同要件的含義和範圍內的所有變化涵括在本發明內。不應將申請專利範圍中的任何圖式符號視為限制所涉及的申請專利範圍。此外,顯然“包括”一詞不排除其他單元或步驟,單數不排除複數。裝置申請專利範圍中陳述的多個單元或裝置也可以由一個單元或裝置透過軟體或者硬體來實現。第一,第二等詞語用來表示名稱,而並不表示任何特定的順序。
Claims (20)
- 一種用於在分散式計算中處理重發請求的方法,其中,該方法包括:獲取分散式計算中待處理的重發請求,其中,該分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;基於該副本分區的分區回應時間資訊確定該重發請求所對應的目標副本分區;將該重發請求發送至該目標副本分區。
- 根據申請專利範圍第1項的方法,其中,該將該重發請求發送至該目標副本分區包括:檢測該重發請求是否滿足請求重發條件;當該重發請求滿足該請求重發條件,將該重發請求發送至該目標副本分區。
- 根據申請專利範圍第2項的方法,其中,該檢測該重發請求是否滿足請求重發條件包括:根據該目標副本分區的分區回應時間資訊及該重發請求所對應的最大超時時間,確定該重發請求是否滿足請求重發條件。
- 根據申請專利範圍第1至3項中任一項的方法,其中,該方法還包括:根據該副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定該副本分區的分區回應速度資訊; 其中,該基於該副本分區的分區回應時間資訊確定該重發請求所對應的目標副本分區包括:基於該副本分區的分區回應速度資訊確定該重發請求所對應的目標副本分區。
- 根據申請專利範圍第4項的方法,其中,該基於該副本分區的分區回應時間資訊確定該重發請求所對應的目標副本分區包括:根據該重發請求確定一個或多個候選副本分區;基於該候選副本分區的分區回應速度資訊,確定該重發請求所對應的目標副本分區。
- 根據申請專利範圍第5項的方法,其中,該基於該候選副本分區的分區回應速度資訊,確定該重發請求所對應的目標副本分區包括:累加前i個該候選副本分區的分區回應速度資訊,直至所得累加和與所有該候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數;將該第i個該候選副本分區作為該重發請求所對應的目標副本分區。
- 根據申請專利範圍第6項的方法,其中,該亂數為即時產生的。
- 根據申請專利範圍第4項的方法,其中,該方法還包括:獲取分散式計算中待處理的首發請求;基於該副本分區的分區回應速度資訊確定該首發請求所對應的副本分區,並將該首發請求發送至該首發請求所 對應的副本分區。
- 根據申請專利範圍第4項的方法,其中,該方法還包括:接收對應的請求回應結果;根據該請求回應結果的回應時間,更新對應副本分區的分區回應速度資訊。
- 根據申請專利範圍第9項的方法,其中,該根據該請求回應結果的回應時間,更新對應副本分區的分區回應速度資訊包括:根據該請求回應結果的回應時間,以及對應副本分區的請求最大超時時間,確定該對應副本分區的請求多餘時間資訊;根據該請求多餘時間資訊,更新該對應副本分區的分區回應速度資訊。
- 一種用於在分散式計算中處理重發請求的設備,其中,該設備包括:第一裝置,用於獲取分散式計算中待處理的重發請求,其中,該分散式計算涉及至少一個資料副本,每個資料副本包括一個或多個副本分區;第二裝置,用於基於該副本分區的分區回應時間資訊確定該重發請求所對應的目標副本分區;第三裝置,用於將該重發請求發送至該目標副本分區。
- 根據申請專利範圍第11項的設備,其中,該第 三裝置包括:第一單元,用於檢測該重發請求是否滿足請求重發條件;第二單元,用於當該重發請求滿足該請求重發條件,將該重發請求發送至該目標副本分區。
- 根據申請專利範圍第12項的設備,其中,該第一單元用於:根據該目標副本分區的分區回應時間資訊及該重發請求所對應的最大超時時間,確定該重發請求是否滿足請求重發條件。
- 根據申請專利範圍第11至13項中任一項的設備,其中,該設備還包括:第四裝置,用於根據該副本分區的歷史分區回應時間資訊和/或當前分區回應時間資訊,確定該副本分區的分區回應速度資訊;其中,該第二裝置用於:基於該副本分區的分區回應速度資訊確定該重發請求所對應的目標副本分區。
- 根據申請專利範圍第14項的設備,其中,該第二裝置包括:第三單元,用於根據該重發請求確定一個或多個候選副本分區;第四單元,用於基於該候選副本分區的分區回應速度資訊,確定該重發請求所對應的目標副本分區。
- 根據申請專利範圍第15項的設備,其中,該第四單元用於:累加前i個該候選副本分區的分區回應速度資訊,直至所得累加和與所有該候選副本分區的分區回應速度資訊之和的比值超過區間(0,1)內的一亂數;將該第i個該候選副本分區作為該重發請求所對應的目標副本分區。
- 根據申請專利範圍第16項的設備,其中,該亂數為即時產生的。
- 根據申請專利範圍第14項的設備,其中,該設備還包括:第五裝置,用於獲取分散式計算中待處理的首發請求;第六裝置,用於基於該副本分區的分區回應速度資訊確定該首發請求所對應的副本分區,並將該首發請求發送至該首發請求所對應的副本分區。
- 根據申請專利範圍第14項的設備,其中,該設備還包括:第七裝置,用於接收對應的請求回應結果;第八裝置,用於根據該請求回應結果的回應時間,更新對應副本分區的分區回應速度資訊。
- 根據申請專利範圍第19項的設備,其中,該第八裝置用於:根據該請求回應結果的回應時間,以及對應副本分區的請求最大超時時間,確定該對應副本分區的請求多餘時 間資訊;根據該請求多餘時間資訊,更新該對應副本分區的分區回應速度資訊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510032434.4A CN105868002B (zh) | 2015-01-22 | 2015-01-22 | 一种用于在分布式计算中处理重发请求的方法与设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201627873A true TW201627873A (zh) | 2016-08-01 |
Family
ID=56417760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104128416A TW201627873A (zh) | 2015-01-22 | 2015-08-28 | 用於在分散式計算中處理重發請求的方法與設備 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10536514B2 (zh) |
CN (1) | CN105868002B (zh) |
TW (1) | TW201627873A (zh) |
WO (1) | WO2016118773A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239550A (zh) * | 2017-06-07 | 2017-10-10 | 中南大学 | 一种在键值存储数据库中高效简单的副本选择方法 |
CN111245559B (zh) * | 2018-11-29 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 信息确定方法、信息判断方法、装置及计算设备 |
CN110166185B (zh) * | 2019-05-15 | 2021-07-09 | 广州视源电子科技股份有限公司 | 音频数据的处理方法、装置、存储介质和处理器 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60035422D1 (de) | 1999-08-13 | 2007-08-16 | Sun Microsystems Inc | Elegante verteilung des lastausgleichs für anwendungs-server |
US7222148B2 (en) | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
US7493394B2 (en) | 2003-12-31 | 2009-02-17 | Cisco Technology, Inc. | Dynamic timeout in a client-server system |
US7359919B2 (en) | 2005-03-08 | 2008-04-15 | Microsoft Corporation | Reliable request-response messaging over a request-response transport |
US9009265B2 (en) * | 2005-09-28 | 2015-04-14 | Photobucket Corporation | System and method for automatic transfer of data from one device to another |
JP4906317B2 (ja) * | 2005-11-10 | 2012-03-28 | キヤノン株式会社 | 情報処理装置及び方法 |
US20070168861A1 (en) * | 2006-01-17 | 2007-07-19 | Bell Denise A | Method for indicating completion status of user initiated and system created tasks |
CN101009535B (zh) * | 2007-01-26 | 2010-05-19 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
US8260956B2 (en) * | 2008-03-14 | 2012-09-04 | Microsoft Corporation | Data transmission queuing using fault prediction |
US7937619B2 (en) | 2008-05-30 | 2011-05-03 | Red Hat, Inc. | Fine grained failure detection in distributed computing |
WO2011058640A1 (ja) * | 2009-11-12 | 2011-05-19 | 富士通株式会社 | 並列計算用の通信方法、情報処理装置およびプログラム |
US20120124431A1 (en) | 2010-11-17 | 2012-05-17 | Alcatel-Lucent Usa Inc. | Method and system for client recovery strategy in a redundant server configuration |
US9317334B2 (en) | 2011-02-12 | 2016-04-19 | Microsoft Technology Licensing Llc | Multilevel multipath widely distributed computational node scenarios |
US8832372B2 (en) * | 2012-05-24 | 2014-09-09 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
JP2014044553A (ja) * | 2012-08-27 | 2014-03-13 | Fujitsu Ltd | プログラム、情報処理装置および情報処理システム |
US20140089619A1 (en) * | 2012-09-27 | 2014-03-27 | Infinera Corporation | Object replication framework for a distributed computing environment |
CN103036717B (zh) * | 2012-12-12 | 2015-11-04 | 北京邮电大学 | 分布式数据的一致性维护系统和方法 |
US9628344B2 (en) * | 2012-12-13 | 2017-04-18 | Level 3 Communications, Llc | Framework supporting content delivery with reducer services network |
US9430280B1 (en) * | 2013-02-11 | 2016-08-30 | Amazon Technologies, Inc. | Task timeouts based on input data characteristics |
US9720732B1 (en) * | 2013-02-11 | 2017-08-01 | Amazon Technologies, Inc. | Parameter selection for optimization of task execution based on execution history for prior tasks |
US8904389B2 (en) * | 2013-04-30 | 2014-12-02 | Splunk Inc. | Determining performance states of components in a virtual machine environment based on performance states of related subcomponents |
US9495187B2 (en) * | 2013-04-30 | 2016-11-15 | Splunk, Inc. | Interactive, top-down presentation of the architecture and performance of a hypervisor environment |
US9164786B2 (en) * | 2013-04-30 | 2015-10-20 | Splunk Inc. | Determining performance states of parent components in a virtual-machine environment based on performance states of related child components during a time period |
US8683467B2 (en) * | 2013-04-30 | 2014-03-25 | Splunk Inc. | Determining performance states of parent components in a virtual-machine environment based on performance states of related child components |
US20140379846A1 (en) * | 2013-06-20 | 2014-12-25 | Nvidia Corporation | Technique for coordinating memory access requests from clients in a mobile device |
US9348709B2 (en) | 2013-12-27 | 2016-05-24 | Sybase, Inc. | Managing nodes in a distributed computing environment |
US10362434B2 (en) * | 2014-10-31 | 2019-07-23 | Comcast Cable Communications Management, Llc | Methods and systems for communication management |
-
2015
- 2015-01-22 CN CN201510032434.4A patent/CN105868002B/zh active Active
- 2015-08-28 TW TW104128416A patent/TW201627873A/zh unknown
-
2016
- 2016-01-21 US US15/003,684 patent/US10536514B2/en active Active
- 2016-01-21 WO PCT/US2016/014364 patent/WO2016118773A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN105868002A (zh) | 2016-08-17 |
US10536514B2 (en) | 2020-01-14 |
WO2016118773A1 (en) | 2016-07-28 |
CN105868002B (zh) | 2020-02-21 |
US20160219100A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11316792B2 (en) | Method and system of limiting traffic | |
US8713125B2 (en) | Method and system for scaling usage of a social based application on an online social network | |
US8701107B2 (en) | Decentralized management of virtualized hosts | |
WO2018000991A1 (zh) | 一种数据均衡方法和装置 | |
US20160266832A1 (en) | Optimization of in-memory data grid placement | |
WO2018113522A1 (en) | Cross–Data Center Hierarchical Consensus Scheme with Geo-Aware Leader Election | |
CN108810115B (zh) | 一种适用于分布式数据库的负载均衡方法、装置及服务器 | |
WO2023050901A1 (zh) | 一种负载均衡方法、装置、设备、计算机存储介质和程序 | |
WO2012173641A1 (en) | Decentralized management of virtualized hosts | |
JP2018525743A (ja) | 負荷平衡方法及び装置 | |
WO2018120810A1 (zh) | 一种解决数据冲突的方法和系统 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
CN108089918B (zh) | 一种面向异构服务器结构的图计算负载均衡方法 | |
CN115328579B (zh) | 神经网络训练的调度方法、系统及计算机可读存储介质 | |
TW201627873A (zh) | 用於在分散式計算中處理重發請求的方法與設備 | |
US8316375B2 (en) | Load-balancing of processes based on inertia | |
US11314559B2 (en) | Method for balanced scale out of resources in distributed and collaborative container platform environment | |
US20200210231A1 (en) | High availability cluster management of computing nodes | |
US10511656B1 (en) | Log information transmission integrity | |
CN111611068A (zh) | 分布式系统中的数据写方法、服务器及客户端 | |
CN113377866A (zh) | 一种虚拟化数据库代理服务的负载均衡方法及装置 | |
CN117033004B (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
CN106970824B (zh) | 一种基于带宽感知的虚拟机迁移压缩方法及系统 | |
EP3188531B1 (en) | Cluster system self-organizing method, device, and cluster system | |
US20140122722A1 (en) | Allocation of resources in a networked computing environment |