亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法與流程

文檔序號:12134389閱讀:438來源:國知局
一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法與流程

本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法。



背景技術(shù):

云數(shù)據(jù)中心的數(shù)據(jù)處理問題是其需解決的主要問題之一。云數(shù)據(jù)中心的數(shù)據(jù)處理過程中,數(shù)據(jù)到達數(shù)據(jù)中心,首先進入任務(wù)隊列,新到達的任務(wù)數(shù)據(jù)作為生產(chǎn)者不停的放入任務(wù)隊列,處理任務(wù)的虛擬機作為消費者從任務(wù)隊列中取出數(shù)據(jù)包進行處理。該過程可以看作一個生產(chǎn)者消費者問題。

生產(chǎn)者消費者問題描述了兩個共享固定大小緩沖區(qū)的線程——即所謂的“生產(chǎn)者”和“消費者”——在實際運行時會發(fā)生的問題。生產(chǎn)者的主要作用是生成一定量的數(shù)據(jù)放到緩沖區(qū)中,然后重復此過程。與此同時,消費者也在緩沖區(qū)消耗這些數(shù)據(jù)。但仍存在這樣的問題:生產(chǎn)者會在緩沖區(qū)滿時加入數(shù)據(jù),消費者會在緩沖區(qū)中空時消耗數(shù)據(jù)。

目前的解決方法,在處理數(shù)據(jù)包的過程中,會出現(xiàn)消費者對數(shù)據(jù)包的重復處理,造成資源和能耗的浪費。



技術(shù)實現(xiàn)要素:

本發(fā)明所要解決的技術(shù)問題是克服現(xiàn)有技術(shù)的不足而提供一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法,本發(fā)明能加快消費者對數(shù)據(jù)包的處理。

本發(fā)明為解決上述技術(shù)問題采用以下技術(shù)方案:

根據(jù)本發(fā)明提出的一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法,包括以下步驟:

步驟一、確定生產(chǎn)者消費者模型,該模型為環(huán)形隊列;

步驟二、生產(chǎn)者按順序從環(huán)形隊列的初始位置逐個放入數(shù)據(jù)包,同時將數(shù)據(jù)包的信息賦值到數(shù)據(jù)單元packet_unit中,數(shù)據(jù)單元packet_unit是用來保存每個數(shù)據(jù)包的包號、長度和在環(huán)形內(nèi)存隊列中的位置信息;

步驟三、判斷策略執(zhí)行條件并執(zhí)行相應的策略;具體如下:

若當前要處理的數(shù)據(jù)包的位置小于隊列長度且當前隊尾收到的數(shù)據(jù)包號已經(jīng)大于當前需要處理的數(shù)據(jù)包號,此時處理從g_current+M 到queue_size-1的數(shù)據(jù)包;其中,共享元素g_current用來表示當前生產(chǎn)者生產(chǎn)數(shù)據(jù)包在隊列中的位置,queue_size表示環(huán)形隊列長度,M為數(shù)據(jù)處理的間隔步數(shù);

若當前要處理的數(shù)據(jù)包的位置小于隊列長度且當前收到的數(shù)據(jù)包號已經(jīng)大于當前需要處理的數(shù)據(jù)包號,此時處理從0 到g_current的數(shù)據(jù)包;

若當前要處理的數(shù)據(jù)包的位置已經(jīng)大于或等于隊列長度,此時數(shù)據(jù)包的位置取(g_current+ M) % queue_size;若當前需要處理的數(shù)據(jù)包號已經(jīng)大于當前已經(jīng)處理的數(shù)據(jù)包號,所以此時處理從(g_current+ M) % queue_size 到g_current的數(shù)據(jù)包。

作為本發(fā)明所述的一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法進一步優(yōu)化方案,M=1。

作為本發(fā)明所述的一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法進一步優(yōu)化方案,M=1是表明生產(chǎn)者和消費的處理速度相同。

作為本發(fā)明所述的一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法進一步優(yōu)化方案,M=2。

作為本發(fā)明所述的一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法進一步優(yōu)化方案,M=3。

本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:

(1)根據(jù)消費者的三種處理策略,在單生產(chǎn)者和雙消費者的實驗環(huán)境下,消費者可以迅速找到當前沒有處理過的數(shù)據(jù)包,進而加快數(shù)據(jù)包的處理速度;

(2)實際情況中,通過queue_size和M值的設(shè)定,可以盡可能的減少消費者對數(shù)據(jù)包的重復處理,用最小的消耗達到高速處理數(shù)據(jù)的目的;

(3)本發(fā)明的關(guān)鍵點是:多個消費者根據(jù)不同情況選擇對應策略處理環(huán)形隊列中的數(shù)據(jù),以最小的重復處理消耗達到高速處理數(shù)據(jù)包的目的;

(4)本發(fā)明提出了基于環(huán)形隊列的多消費者數(shù)據(jù)處理策略,分三種情況對多消費者的數(shù)據(jù)處理問題,進行了分析,并提出相應的數(shù)據(jù)處理策略;本發(fā)明所提出的數(shù)據(jù)處理方法能降低重復數(shù)據(jù)包的處理次數(shù),提高多消費者數(shù)據(jù)處理的效率。

附圖說明

圖1為本發(fā)明環(huán)形隊列示意圖;

圖2為本發(fā)明策略方法的消費者處理流程圖;

圖3為本發(fā)明策略方法的情況A示意圖;

圖4為本發(fā)明策略方法的情況B示意圖;

圖5為本發(fā)明策略方法的情況C示意圖;

圖6是本方法的流程圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明的技術(shù)方案做進一步的詳細說明:

目前解決本發(fā)明背景技術(shù)中提出的問題,就必須讓生產(chǎn)者在緩沖區(qū)滿時休眠(要么干脆就放棄數(shù)據(jù)),等到下次消費者消耗緩沖區(qū)中的數(shù)據(jù)的時候,生產(chǎn)者才能被喚醒,開始往緩沖區(qū)添加數(shù)據(jù)。同樣,也可以讓消費者在緩沖區(qū)空時進入休眠,等到生產(chǎn)者往緩沖區(qū)添加數(shù)據(jù)之后,再喚醒消費者。通常采用進程間通信的方法解決該問題,常用的方法有信號燈法等。如果解決方法不夠完善,則容易出現(xiàn)死鎖的情況。出現(xiàn)死鎖時,兩個線程都會陷入休眠,等待對方喚醒自己。該問題也能被推廣到多個生產(chǎn)者和消費者的情形。

圖6是本方法的流程圖,一種云數(shù)據(jù)中心的數(shù)據(jù)處理方法,所述方法包括如下步驟:

I、確定生產(chǎn)者消費者模型;

II、判斷策略執(zhí)行條件;

III、執(zhí)行相應的策略;

IV、執(zhí)行完畢;

優(yōu)選的,所述步驟I包括采用了基于環(huán)形的隊列。

首先介紹本發(fā)明中涉及的幾個基礎(chǔ)定義和問題。

1)定義環(huán)形數(shù)據(jù)隊列,隊列長度為queue_size。此數(shù)值由實際需要和系統(tǒng)性能決定。

2)定義共享元素g_current,用來表示當前生產(chǎn)者生產(chǎn)數(shù)據(jù)包在隊列中的位置。

3)無鎖性,即是為了保證生產(chǎn)者和消費者不同時處理同一塊內(nèi)存區(qū)域。所以消費者每次處理環(huán)形隊列的g_current+M位置來實現(xiàn)無鎖性。M值的大小受生產(chǎn)者和消費者的處理影響。本發(fā)明采取理想情況M=1,表明生產(chǎn)者和消費的處理速度相同。

4)定義數(shù)據(jù)單元packet_unit,用來保存每個數(shù)據(jù)包的包號counter、長度len和在環(huán)形內(nèi)存隊列中的位置信息x。

5)定義當前需處理數(shù)據(jù)包的編號為g_next_pkt

生產(chǎn)者按順序從環(huán)形隊列的初始位置逐個放入數(shù)據(jù)包,同時把數(shù)據(jù)包的信息賦值到數(shù)據(jù)單元packet_unit中,如下圖1。

優(yōu)選的,所述步驟II中的策略執(zhí)行條件包括兩種類型,三種情況;

本發(fā)明把消費者處理數(shù)據(jù)的模式分為兩類,共三種情況,根據(jù)不同情況處理環(huán)形隊列中不同位置的數(shù)據(jù),以達到加速處理數(shù)據(jù)的目的。圖2為消費者處理流程圖。

一類:g_current+1 < queue_size

此類情況即當前要處理的數(shù)據(jù)包的位置小于隊列長度。然后分別判斷情況A和B進行數(shù)據(jù)處理。

情況A(packet_unit[queue_size-1].counter > g_next_pkt)

這表示當前隊尾收到的數(shù)據(jù)包號已經(jīng)大于當前需要處理的數(shù)據(jù)包號,此情況說明當前最小的包號(即當前需要處理的包號)在隊列的后半段。所以此時處理從g_current+1 到queue_size-1的數(shù)據(jù)包,如下圖3。

情況B(packet_unit[g_current].counter > g_next_pkt)

這表示當前收到的數(shù)據(jù)包號已經(jīng)大于當前需要處理的數(shù)據(jù)包號,此情況說明當前最小的包號(即當前需要處理的包號)在隊列的前半段。所以此時處理從0 到g_current的數(shù)據(jù)包,如下圖4。

二類:g_current+1 >= queue_size

此類情況表明當前要處理的數(shù)據(jù)包的位置已經(jīng)大于等于隊列長度,此時包的位置取(g_current+1) % queue_size。

情況C(packet_unit[(g_current+1) % queue_size].counter > g_next_pkt)

這表示當前需要處理的數(shù)據(jù)包號已經(jīng)大于當前已經(jīng)處理的數(shù)據(jù)包號,此情況說明當前最小的包號(即當前需要處理的包號)在(g_current+1) % queue_size和g_current之間。所以此時處理從(g_current+1) % queue_size 到g_current的數(shù)據(jù)包。本文M=1,此情況即是處理整個環(huán)形隊列,如下圖5。

根據(jù)消費者的三種處理策略,在單生產(chǎn)者和雙消費者的實驗環(huán)境下,消費者可以迅速找到當前沒有處理過的數(shù)據(jù)包,進而加快數(shù)據(jù)包的處理速度。

實際情況中,通過queue_size和M值的設(shè)定,可以盡可能的減少消費者對數(shù)據(jù)包的重復處理,用最小的消耗達到高速處理數(shù)據(jù)的目的。

本發(fā)明的關(guān)鍵點是:多個消費者根據(jù)不同情況選擇對應策略處理環(huán)形隊列中的數(shù)據(jù),以最小的重復處理消耗達到高速處理數(shù)據(jù)包的目的。

本發(fā)明提出了基于環(huán)形隊列的多消費者數(shù)據(jù)處理策略,分三種情況對多消費者的數(shù)據(jù)處理問題,進行了分析,并提出相應的數(shù)據(jù)處理策略。本發(fā)明所提出的數(shù)據(jù)處理方法能降低重復數(shù)據(jù)包的處理次數(shù),提高多消費者數(shù)據(jù)處理的效率。

顯然,以上所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1