欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)流處理的方法和裝置與流程

文檔序號(hào):11156834閱讀:411來源:國知局
數(shù)據(jù)流處理的方法和裝置與制造工藝

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



背景技術(shù):

目前,數(shù)據(jù)流可以應(yīng)用到很多場(chǎng)景中,例如,數(shù)據(jù)流可以應(yīng)用到欺詐監(jiān)測(cè)、精準(zhǔn)營銷推薦、罪案災(zāi)情預(yù)測(cè)中等。由于數(shù)據(jù)流對(duì)數(shù)據(jù)處理的及時(shí)性要求非常高,因此,接收到數(shù)據(jù)流時(shí),應(yīng)立刻通過數(shù)據(jù)處理任務(wù)對(duì)數(shù)據(jù)流進(jìn)行處理,也即流計(jì)算。

在通過數(shù)據(jù)處理任務(wù)對(duì)數(shù)據(jù)流進(jìn)行處理之前,為數(shù)據(jù)處理任務(wù)分配內(nèi)存空間和窗口計(jì)算算子邏輯,內(nèi)存空間用于存儲(chǔ)該數(shù)據(jù)處理任務(wù)處理的數(shù)據(jù)流,窗口計(jì)算算子邏輯用于對(duì)內(nèi)存空間中的數(shù)據(jù)流進(jìn)行處理。例如,數(shù)據(jù)處理任務(wù)為求和運(yùn)算時(shí),窗口計(jì)算算子邏輯就是對(duì)內(nèi)存空間中的數(shù)據(jù)流進(jìn)行求和運(yùn)算。當(dāng)接收到該數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的數(shù)據(jù)流時(shí),管理設(shè)備將該數(shù)據(jù)流存儲(chǔ)在該數(shù)據(jù)處理任務(wù)的內(nèi)存空間中,當(dāng)執(zhí)行該數(shù)據(jù)處理任務(wù)時(shí),管理設(shè)備從該內(nèi)存空間讀取該數(shù)據(jù)流,通過窗口計(jì)算算子邏輯對(duì)該數(shù)據(jù)流進(jìn)行處理。

在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:

由于多個(gè)數(shù)據(jù)處理任務(wù)可能對(duì)同一個(gè)數(shù)據(jù)流進(jìn)行處理,然而在上述技術(shù)中會(huì)在每個(gè)數(shù)據(jù)處理任務(wù)的內(nèi)存空間都存儲(chǔ)該數(shù)據(jù)流,浪費(fèi)內(nèi)存空間,導(dǎo)致空間利用率低。



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

為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)流處理的方法和裝置。技術(shù)方案如下:

第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)流處理的方法,所述方法包括:

接收第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流,以及,接收第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流;

如果所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流相同,在共享內(nèi)存空間中存儲(chǔ)所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流中的任一數(shù)據(jù)流,將所述任一數(shù)據(jù)流在所述共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,所述第一內(nèi)存空間為所述第一數(shù)據(jù)處理任務(wù)的內(nèi)存空間,所述第二內(nèi)存空間為所述第二數(shù)據(jù)處理任務(wù)的內(nèi)存空間;

當(dāng)執(zhí)行所述第一數(shù)據(jù)處理任務(wù)或所述第二數(shù)據(jù)處理任務(wù)時(shí),根據(jù)所述位置索引,從所述共享內(nèi)存空間中讀取所述任一數(shù)據(jù)流,根據(jù)所述任一數(shù)據(jù)流執(zhí)行所述第一數(shù)據(jù)處理任務(wù)或所述第二數(shù)據(jù)處理任務(wù)。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,并將該任一數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,當(dāng)執(zhí)行第一數(shù)據(jù)處理任務(wù)或第二數(shù)據(jù)處理任務(wù)時(shí),根據(jù)該位置索引,從該共享內(nèi)存空間中讀取第一數(shù)據(jù)流或者第二數(shù)據(jù)流。由于共享內(nèi)存空間中只存儲(chǔ)了第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,避免了相同數(shù)據(jù)流的重復(fù)存儲(chǔ),從而節(jié)省了內(nèi)存空間,提高了內(nèi)存空間的利用率。

在一種可能的設(shè)計(jì)中,所述在共享內(nèi)存空間中存儲(chǔ)所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流中的任一數(shù)據(jù)流之前,所述方法還包括:

當(dāng)檢測(cè)到所述第一數(shù)據(jù)處理任務(wù)或者所述第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)時(shí),創(chuàng)建所述共享內(nèi)存空間。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備檢測(cè)到第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)時(shí),才創(chuàng)建共享內(nèi)存空間,使得該當(dāng)前任務(wù)隊(duì)列的多個(gè)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)一個(gè)共享內(nèi)存空間,節(jié)省了內(nèi)存空間。

在一種可能的設(shè)計(jì)中,所述根據(jù)所述任一數(shù)據(jù)流執(zhí)行所述第一數(shù)據(jù)處理任務(wù)或所述第二數(shù)據(jù)處理任務(wù)之后,所述方法還包括:

當(dāng)檢測(cè)到所述第一數(shù)據(jù)處理任務(wù)或者所述第二數(shù)據(jù)處理任務(wù)是所述當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù),銷毀所述共享內(nèi)存空間。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備檢測(cè)到第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù)時(shí),便銷毀該共享內(nèi)存空間,提高了共享內(nèi)存空間的使用率。

在一種可能的設(shè)計(jì)中,所述在共享內(nèi)存空間中存儲(chǔ)所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流中的任一數(shù)據(jù)流之前,所述方法還包括:

獲取所述第一數(shù)據(jù)流的第一數(shù)據(jù)屬性和所述第二數(shù)據(jù)流的第二數(shù)據(jù)屬性;

根據(jù)所述第一數(shù)據(jù)屬性,確定所述第一數(shù)據(jù)屬性對(duì)應(yīng)的所述共享內(nèi)存空間,以及,根據(jù)所述第二數(shù)據(jù)屬性,確定所述第二數(shù)據(jù)屬性對(duì)應(yīng)的所述共享內(nèi)存空間。

本發(fā)明實(shí)施例所示的方案中,根據(jù)第一數(shù)據(jù)流的第一數(shù)據(jù)屬性,確定第一數(shù)據(jù)屬性對(duì)應(yīng)的共享內(nèi)存空間,以及,根據(jù)第二數(shù)據(jù)流的第二數(shù)據(jù)屬性,確定第二數(shù)據(jù)屬性對(duì)應(yīng)的共享內(nèi)存空間,提高了數(shù)據(jù)屬性相同的數(shù)據(jù)流中相同數(shù)據(jù)流合并的可能性,進(jìn)一步提高了共享內(nèi)存空間的利用率。

在一種可能的設(shè)計(jì)中,所述如果所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流相同,在共享內(nèi)存空間中存儲(chǔ)所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流中的任一數(shù)據(jù)流,包括:

將所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流存儲(chǔ)到所述共享內(nèi)存空間中;

當(dāng)檢測(cè)到所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流相同時(shí),刪除所述第一數(shù)據(jù)流或者所述第二數(shù)據(jù)流。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備先將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中,然后判斷第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同,保證了第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)的實(shí)時(shí)性;如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備刪除第一數(shù)據(jù)流或者第二數(shù)據(jù)流,節(jié)省了共享內(nèi)存空間占用的空間的同時(shí),提高了管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)的效率。

在一種可能的設(shè)計(jì)中,所述方法還包括:

獲取所述第一數(shù)據(jù)流的第一標(biāo)識(shí)和所述第二數(shù)據(jù)流的第二標(biāo)識(shí);

如果所述第一標(biāo)識(shí)和所述第二標(biāo)識(shí)相同,確定所述第一數(shù)據(jù)流和所述第二數(shù)據(jù)流相同。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備根據(jù)第一數(shù)據(jù)流的第一標(biāo)識(shí)和第二數(shù)據(jù)流的第二標(biāo)識(shí),確定第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同,提高了確定第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同的準(zhǔn)確性。

在一種可能的設(shè)計(jì)中,所述將所述任一數(shù)據(jù)流在所述共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,包括:

如果刪除所述第一數(shù)據(jù)流,將所述第二數(shù)據(jù)流在所述共享內(nèi)存空間中的位置索引存儲(chǔ)到所述第一內(nèi)存空間和所述第二內(nèi)存空間中;或者,

如果刪除所述第二數(shù)據(jù)流,將所述第一數(shù)據(jù)流在所述共享內(nèi)存空間中的位置索引存儲(chǔ)到所述第一內(nèi)存空間和所述第二內(nèi)存空間中。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備將未被刪除的第二數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,或者,將未被刪除的第一數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,使得管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)時(shí),仍能夠根據(jù)該位置索引讀取該第一數(shù)據(jù)流或者第二數(shù)據(jù)流,提高了管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)的準(zhǔn)確性。

在一種可能的設(shè)計(jì)中,所述將所述任一數(shù)據(jù)流在所述共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中之后,所述方法還包括:

將所述位置索引的當(dāng)前引用狀態(tài)修改為被所述第一數(shù)據(jù)處理任務(wù)和所述第二數(shù)據(jù)處理任務(wù)引用;

當(dāng)所述當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),刪除所述任一數(shù)據(jù)流。

本發(fā)明實(shí)施例所示的方案中,第一數(shù)據(jù)流或者第二數(shù)據(jù)流的位置索引的當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),刪除該位置索引對(duì)應(yīng)的第一數(shù)據(jù)流或者第二數(shù)據(jù)流,進(jìn)一步節(jié)省了共享內(nèi)存空間占用的內(nèi)存空間,提高了共享內(nèi)存空間的利用率。

在一種可能的設(shè)計(jì)中,所述方法還包括:

獲取所述共享內(nèi)存空間的總?cè)萘亢退龉蚕韮?nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量;

根據(jù)所述總?cè)萘亢退鰯?shù)據(jù)量,調(diào)整所述共享內(nèi)存空間的總?cè)萘看笮 ?/p>

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備可以根據(jù)共享內(nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量和該共享內(nèi)存空間的總?cè)萘?,調(diào)整該共享內(nèi)存空間的總?cè)萘看笮?,使得管理設(shè)備能夠靈活調(diào)整該共享內(nèi)存空間總?cè)萘看笮?,進(jìn)一步提高了該共享內(nèi)存空間的利用率。

第二方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)流處理裝置,該數(shù)據(jù)流處理裝置包括至少一個(gè)單元,至少一個(gè)單元用于實(shí)現(xiàn)上述第一方面或第一方面中任意一種可能的實(shí)現(xiàn)方式所提供的數(shù)據(jù)流處理方法。

第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)流處理設(shè)備,該數(shù)據(jù)流處理設(shè)備包括:處理器和存儲(chǔ)器,用于執(zhí)行上述第一方面或第一方面中任意一種可能的實(shí)現(xiàn)方式所提供的數(shù)據(jù)流處理方法。

第四方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于存儲(chǔ)上述數(shù)據(jù)流處理所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面為管理設(shè)備所涉及的程序。

上述本發(fā)明實(shí)施例第二到第四方面所獲得的技術(shù)效果與第一方面中對(duì)應(yīng)的技術(shù)手段獲得的技術(shù)效果近似,在這里不再贅述。

綜上所述,本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,并將該任一數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,當(dāng)執(zhí)行第一數(shù)據(jù)處理任務(wù)或第二數(shù)據(jù)處理任務(wù)時(shí),根據(jù)該位置索引,從該共享內(nèi)存空間中讀取第一數(shù)據(jù)流或者第二數(shù)據(jù)流。由于共享內(nèi)存空間中只存儲(chǔ)了第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,避免了相同數(shù)據(jù)流的重復(fù)存儲(chǔ),從而節(jié)省了內(nèi)存空間,提高了內(nèi)存空間的利用率。

附圖說明

圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的實(shí)施環(huán)境圖;

圖2是本發(fā)明實(shí)施例提供的一種管理設(shè)備的結(jié)構(gòu)方框圖;

圖3是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的方法流程圖;

圖4是本發(fā)明實(shí)施例提供的一種共享內(nèi)存空間結(jié)構(gòu)圖;

圖5是本發(fā)明實(shí)施例提供的一種確定共享內(nèi)存空間的示例圖;

圖6是本發(fā)明實(shí)施例提供的一種共享內(nèi)存空間示意圖;

圖7是本發(fā)明實(shí)施例提供的一種共享內(nèi)存空間示意圖;

圖8是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖;

圖9是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖;

圖10是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖;

圖11是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖;

圖12是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖;

圖13是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置方框圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。

圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的實(shí)施環(huán)境圖。實(shí)施環(huán)境包括管理設(shè)備、共享內(nèi)存空間、第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)。該管理設(shè)備用于接收第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流和第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流,并根據(jù)該第一數(shù)據(jù)流執(zhí)行第一數(shù)據(jù)處理任務(wù),根據(jù)該第二數(shù)據(jù)流執(zhí)行第二數(shù)據(jù)處理任務(wù)。該共享內(nèi)存空間用于存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,將該第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)在共享內(nèi)存空間中;第一數(shù)據(jù)流為管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)時(shí)引用的數(shù)據(jù)流,第二數(shù)據(jù)流為管理設(shè)備執(zhí)行第二數(shù)據(jù)處理任務(wù)時(shí)引用的數(shù)據(jù)流。其中,第一數(shù)據(jù)處理任務(wù)可以為一個(gè)或多個(gè)數(shù)據(jù)處理任務(wù),第二數(shù)據(jù)處理任務(wù)也可以為一個(gè)或多個(gè)數(shù)據(jù)處理任務(wù)。

管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)之前,如果第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù),管理設(shè)備創(chuàng)建一個(gè)共享存儲(chǔ)空間,該當(dāng)前任務(wù)隊(duì)列為第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)所在的任務(wù)隊(duì)列,該共享內(nèi)存空間用于存儲(chǔ)當(dāng)前任務(wù)隊(duì)列中第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流和第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流。

如圖1所示,管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)時(shí),將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)在共享內(nèi)存空間中,并為第一數(shù)據(jù)處理任務(wù)分配一個(gè)第一內(nèi)存空間和第一窗口計(jì)算算子邏輯,為第二數(shù)據(jù)處理任務(wù)分配一個(gè)第二內(nèi)存空間和第二窗口計(jì)算算子邏輯。其中,該第一內(nèi)存空間用于存儲(chǔ)該第一數(shù)據(jù)流在共享內(nèi)存空間中的第一位置索引;該第二內(nèi)存空間用于存儲(chǔ)該第二數(shù)據(jù)流在共享內(nèi)存空間中的第二位置索引(為了區(qū)分第一數(shù)據(jù)流對(duì)應(yīng)的位置索引和第二數(shù)據(jù)流對(duì)應(yīng)的位置索引,將第一數(shù)據(jù)流對(duì)應(yīng)的位置索引稱為第一位置索引,將第二數(shù)據(jù)流對(duì)應(yīng)的位置索引稱為第二位置索引);第一窗口計(jì)算算子邏輯用于管理設(shè)備根據(jù)該第一窗口計(jì)算算子邏輯對(duì)第一數(shù)據(jù)流進(jìn)行處理,第二窗口計(jì)算算子邏輯用于管理設(shè)備根據(jù)該第二窗口計(jì)算算子邏輯對(duì)第二數(shù)據(jù)流進(jìn)行處理。

為了節(jié)省內(nèi)存空間,提高空間利用率,如果共享存儲(chǔ)空間中存儲(chǔ)的第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中刪除第一數(shù)據(jù)流或者第二數(shù)據(jù)流;同時(shí),管理設(shè)備將未刪除的第一數(shù)據(jù)流的第一位置索引的當(dāng)前引用狀態(tài)修改為被第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)引用,或者,將未刪除的第二數(shù)據(jù)流的第二位置索引的當(dāng)前引用狀態(tài)修改為被第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)引用。

當(dāng)?shù)谝晃恢盟饕漠?dāng)前引用狀態(tài)或者第二位置索引的當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),刪除第一數(shù)據(jù)流或者第二數(shù)據(jù)流。管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)結(jié)束時(shí),如果第一數(shù)據(jù)處理任務(wù)或者該第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù),管理設(shè)備銷毀該共享內(nèi)存空間。

其中,該管理設(shè)備可以為具備數(shù)據(jù)流處理功能的處理器、控制器等,也可以為集成在計(jì)算機(jī)或其它設(shè)備上的具備數(shù)據(jù)流處理功能的處理模塊、控制模塊等。

參見圖2,其示出了本發(fā)明實(shí)施例提供的一種管理設(shè)備1,該管理設(shè)備1包括收發(fā)器11和存儲(chǔ)器12,該管理設(shè)備1還可以包括處理器13和網(wǎng)絡(luò)接口14。其中,存儲(chǔ)器12和網(wǎng)絡(luò)接口14分別與處理器13連接;存儲(chǔ)器12用于存儲(chǔ)程序代碼,程序代碼包括計(jì)算機(jī)操作指令,處理器13和收發(fā)器11用于執(zhí)行存儲(chǔ)器12中存儲(chǔ)的程序代碼,用于實(shí)現(xiàn)數(shù)據(jù)流的相關(guān)處理,并可以通過網(wǎng)絡(luò)接口14與基站或其他管理設(shè)備進(jìn)行交互。

處理器13包括一個(gè)或者一個(gè)以上處理核心。處理器13通過運(yùn)行軟件程序以及單元,從而執(zhí)行下述數(shù)據(jù)流處理的方法。

在一個(gè)可能的設(shè)計(jì)中,該管理設(shè)備1還可以包括總線15等部件。其中,存儲(chǔ)器12與網(wǎng)絡(luò)接口14分別通過總線15與處理器13和收發(fā)器11相連。

存儲(chǔ)器12可用于存儲(chǔ)軟件程序以及單元。具體的,存儲(chǔ)器12可存儲(chǔ)操作系統(tǒng)121、至少一個(gè)功能所需的應(yīng)用程序單元122。操作系統(tǒng)121可以是實(shí)時(shí)操作系統(tǒng)(Real Time eXecutive,RTX)、LINUX、UNIX、WINDOWS或OS X之類的操作系統(tǒng)。

本發(fā)明實(shí)施例提供了一種數(shù)據(jù)流處理的方法,該方法的執(zhí)行主體為管理設(shè)備。參見圖3,該方法包括:

步驟301:管理設(shè)備接收第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流,以及,接收第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流。

本步驟中,由于管理設(shè)備在窗口中執(zhí)行第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù),因此,本步驟中管理設(shè)備接收第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流,以及,接收第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流的步驟可以為:管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流是否進(jìn)入第一數(shù)據(jù)處理任務(wù)的窗口,以及,管理設(shè)備檢測(cè)第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流是否進(jìn)入第二數(shù)據(jù)處理任務(wù)的窗口;當(dāng)檢測(cè)到第一數(shù)據(jù)流進(jìn)入第一數(shù)據(jù)處理任務(wù)的窗口時(shí),管理設(shè)備接收第一數(shù)據(jù)流,以及,當(dāng)檢測(cè)到第二數(shù)據(jù)流進(jìn)入第二數(shù)據(jù)處理任務(wù)的窗口時(shí),管理設(shè)備接收第二數(shù)據(jù)流。

管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,通過以下步驟302,將第一數(shù)據(jù)流和/或第二數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中。

步驟302:如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,管理設(shè)備將該任一數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,該第一內(nèi)存空間為該第一數(shù)據(jù)處理任務(wù)的內(nèi)存空間,該第二內(nèi)存空間為該第二數(shù)據(jù)處理任務(wù)的內(nèi)存空間。

管理設(shè)備接收到第一數(shù)據(jù)流和第二數(shù)據(jù)流時(shí),管理設(shè)備可以先將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中,即刻開始執(zhí)行第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù),并在后臺(tái)檢測(cè)第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同,從而進(jìn)行數(shù)據(jù)流合并,也即以下第一種實(shí)現(xiàn)方式。管理設(shè)備還可以先只將第一數(shù)據(jù)流和第二數(shù)據(jù)流中的一個(gè)數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中,檢測(cè)另一個(gè)數(shù)據(jù)流和共享內(nèi)存空間中已存儲(chǔ)的數(shù)據(jù)流是否相同,從而確定是否存儲(chǔ)另一個(gè)數(shù)據(jù)流,也即以下第二種實(shí)現(xiàn)方式。

對(duì)于第一種實(shí)現(xiàn)方式,如圖4所示,本發(fā)明實(shí)施例中,為了提高第一內(nèi)存空間和第二內(nèi)存空間的利用率,管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到共享存儲(chǔ)空間,將該第一數(shù)據(jù)流的第一位置索引存儲(chǔ)到該第一內(nèi)存空間,將該第二數(shù)據(jù)流的第二位置索引存儲(chǔ)到該第二內(nèi)存空間。

本發(fā)明實(shí)施例中,由于管理設(shè)備分別將第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流和第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流存儲(chǔ)在共享內(nèi)存空間中,而當(dāng)前任務(wù)隊(duì)列中第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)可能引用同一數(shù)據(jù)流,導(dǎo)致共享內(nèi)存空間中重復(fù)存儲(chǔ)數(shù)據(jù)流,為了提高共享存儲(chǔ)空間的空間利用率,管理設(shè)備檢測(cè)第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同,如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在將第一數(shù)據(jù)流和第二數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流時(shí),為了保證第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)的實(shí)時(shí)性,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,先將該第一數(shù)據(jù)流和該第二數(shù)據(jù)流存儲(chǔ)到共享存儲(chǔ)空間中,即刻開始執(zhí)行第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù),并在后臺(tái)檢測(cè)第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同,如果相同,管理設(shè)備刪除第一數(shù)據(jù)流或者第二數(shù)據(jù)流,進(jìn)而將共享存儲(chǔ)空間中重復(fù)存儲(chǔ)的多個(gè)數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流,提高了共享存儲(chǔ)空間的空間利用率。

因此,本步驟中,如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流的步驟可以通過以下步驟3021-3024實(shí)現(xiàn)。

步驟3021:管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到該共享內(nèi)存空間中。

本步驟中,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,直接將該第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中,同時(shí),管理設(shè)備將該第一數(shù)據(jù)流的第一位置索引存儲(chǔ)到該第一內(nèi)存空間,將該第二數(shù)據(jù)流的第二位置索引存儲(chǔ)到該第二內(nèi)存空間,第一位置索引用于管理設(shè)備根據(jù)該第一位置索引,從共享內(nèi)存空間中讀取該第一位置索引對(duì)應(yīng)的第一數(shù)據(jù)流;第二位置索引用于管理設(shè)備根據(jù)該第二位置索引,從共享內(nèi)存空間中讀取該第二位置索引對(duì)應(yīng)的第二數(shù)據(jù)流。

需要說明的是,數(shù)據(jù)流的位置索引可以為該數(shù)據(jù)流在共享內(nèi)存空間的存儲(chǔ)路徑,管理設(shè)備存儲(chǔ)了每個(gè)數(shù)據(jù)流的位置索引和該數(shù)據(jù)流的第三標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,便于管理設(shè)備根據(jù)該數(shù)據(jù)流的第三標(biāo)識(shí),從第三標(biāo)識(shí)和位置索引的對(duì)應(yīng)關(guān)系中,獲取該數(shù)據(jù)流的位置索引,進(jìn)而根據(jù)該位置索引,從共享內(nèi)存空間中讀取該數(shù)據(jù)流。其中,該第三標(biāo)識(shí)可以根據(jù)用戶需要設(shè)置并更改,本發(fā)明實(shí)施例對(duì)此不做具體限定,例如,該第三標(biāo)識(shí)可以為數(shù)據(jù)流的編號(hào)、名稱等。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,如圖4所示,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一位置索引的當(dāng)前引用狀態(tài),該當(dāng)前引用狀態(tài)用于記錄共享存儲(chǔ)空間中的該第一數(shù)據(jù)流被當(dāng)前任務(wù)隊(duì)列引用的狀態(tài);管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第二位置索引的當(dāng)前引用狀態(tài),該當(dāng)前引用狀態(tài)用于記錄共享存儲(chǔ)空間中的該第二數(shù)據(jù)流被當(dāng)前任務(wù)隊(duì)列引用的狀態(tài)。

因此,管理設(shè)備將第一數(shù)據(jù)流的第一位置索引存儲(chǔ)到第一內(nèi)存空間的步驟可以為:管理設(shè)備將第一數(shù)據(jù)流的第一位置索引存儲(chǔ)到第一內(nèi)存空間,將該第一位置索引的當(dāng)前引用狀態(tài)存儲(chǔ)到共享內(nèi)存空間。

需要說明的是,位置索引的當(dāng)前引用狀態(tài)可以用引用計(jì)數(shù)表示,管理設(shè)備讀取該數(shù)據(jù)流之前,該數(shù)據(jù)流的位置索引的當(dāng)前引用狀態(tài)為初始狀態(tài),該數(shù)據(jù)流的位置索引的當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用。對(duì)應(yīng)的,管理設(shè)備將該數(shù)據(jù)流的引用計(jì)數(shù)記為初始數(shù)值。

當(dāng)該位置索引對(duì)應(yīng)的數(shù)據(jù)流被數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備將該位置索引的引用計(jì)數(shù)增加第一預(yù)設(shè)數(shù)值。因此,管理設(shè)備將該第一位置索引的當(dāng)前引用狀態(tài)存儲(chǔ)到共享內(nèi)存空間的步驟可以為:管理設(shè)備將該第一位置索引的引用計(jì)數(shù)增加第一預(yù)設(shè)數(shù)值,在共享內(nèi)存空間中存儲(chǔ)該第一位置索引的引用計(jì)數(shù)。

當(dāng)該位置索引對(duì)應(yīng)的數(shù)據(jù)流被數(shù)據(jù)處理任務(wù)引用結(jié)束時(shí),管理設(shè)備將位置索引的引用計(jì)數(shù)減少第一預(yù)設(shè)數(shù)值。

其中,引用計(jì)數(shù)的初始數(shù)值、第一預(yù)設(shè)數(shù)值可以根據(jù)用戶需要設(shè)置并更改,本發(fā)明實(shí)施例對(duì)此不作具體限定。

例如,初始數(shù)值可以為0,第一預(yù)設(shè)數(shù)值可以為1,管理設(shè)備讀取第一數(shù)據(jù)流之前,第一位置索引的引用計(jì)數(shù)為0,第一數(shù)據(jù)流被數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備將該第一位置索引的引用計(jì)數(shù)增加1,此時(shí),該第一位置索引的引用計(jì)數(shù)為1。

再如,如果第一位置索引的引用計(jì)數(shù)為3,即第一數(shù)據(jù)流當(dāng)前被當(dāng)前任務(wù)隊(duì)列中的3個(gè)數(shù)據(jù)處理任務(wù)引用,當(dāng)?shù)谝粩?shù)據(jù)流出被3個(gè)數(shù)據(jù)處理任務(wù)中其中一個(gè)數(shù)據(jù)處理任務(wù)引用結(jié)束時(shí),管理設(shè)備將第一位置索引的引用計(jì)數(shù)減1,此時(shí),第一位置索引的引用計(jì)數(shù)變?yōu)?。

步驟3022:管理設(shè)備獲取第一數(shù)據(jù)流的第一標(biāo)識(shí)和第二數(shù)據(jù)流的第二標(biāo)識(shí),如果該第一標(biāo)識(shí)和該第二標(biāo)識(shí)相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流相同。

本步驟中,第一數(shù)據(jù)流的第一標(biāo)識(shí)可以為該第一數(shù)據(jù)流的ID(Identity,身份標(biāo)識(shí)號(hào)碼),第二數(shù)據(jù)流的第二標(biāo)識(shí)可以為該第二數(shù)據(jù)流的ID。管理設(shè)備可以通過標(biāo)識(shí)算法計(jì)算出第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID,通過該第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID確定第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同。

因此,本步驟可以為:管理設(shè)備根據(jù)標(biāo)識(shí)算法,計(jì)算得到第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID,判斷第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID是否相同,如果第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流相同;如果第一數(shù)據(jù)流的ID和第二數(shù)據(jù)流的ID不相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流不相同。

其中,該標(biāo)識(shí)算法可以根據(jù)用戶需要設(shè)置并更改,本發(fā)明實(shí)施例對(duì)該標(biāo)識(shí)算法不作具體限定。例如,該標(biāo)識(shí)算法可以為哈希算法,還可以為CRUSH(Controlled Replication Under Scalable Hashing,可擴(kuò)展的偽隨機(jī)數(shù)據(jù)分布)算法。

例如,以哈希算法為例進(jìn)行說,數(shù)據(jù)流的ID可以為該數(shù)據(jù)流的哈希值,此時(shí),管理設(shè)備獲取第一數(shù)據(jù)流的第一標(biāo)識(shí)和第二數(shù)據(jù)流的第二標(biāo)識(shí),如果該第一標(biāo)識(shí)和該第二標(biāo)識(shí)相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流相同的步驟可以為:管理設(shè)備通過該哈希算法,分別計(jì)算出第一數(shù)據(jù)流的哈希值和第二數(shù)據(jù)流的哈希值,管理設(shè)備判斷第一數(shù)據(jù)流的哈希值和第二數(shù)據(jù)流的哈希值是否相同,如果第一數(shù)據(jù)流的哈希值和第二數(shù)據(jù)流的哈希值相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流相同;如果第一數(shù)據(jù)流的哈希值和第二數(shù)據(jù)流的哈希值不相同,確定第一數(shù)據(jù)流和第二數(shù)據(jù)流不相同。

步驟3023:當(dāng)檢測(cè)到第一數(shù)據(jù)流和第二數(shù)據(jù)流相同時(shí),管理設(shè)備刪除第一數(shù)據(jù)流或者第二數(shù)據(jù)流。

本步驟中,為了避免因重復(fù)存儲(chǔ)導(dǎo)致共享內(nèi)存空間存儲(chǔ)的數(shù)據(jù)流冗余,提高共享內(nèi)存空間的利用率,管理設(shè)備可以刪除第一數(shù)據(jù)流,只存儲(chǔ)第二數(shù)據(jù)流,或者,刪除第二數(shù)據(jù)流,只存儲(chǔ)第一數(shù)據(jù)流。

步驟3024:如果刪除該第一數(shù)據(jù)流,管理設(shè)備將該第二數(shù)據(jù)流在該共享內(nèi)存空間中的位置索引存儲(chǔ)到該第一內(nèi)存空間和該第二內(nèi)存空間中,或者,如果刪除該第二數(shù)據(jù)流,管理設(shè)備將該第一數(shù)據(jù)流在該共享內(nèi)存空間中的位置索引存儲(chǔ)到該第一內(nèi)存空間和該第二內(nèi)存空間中。

本步驟中,由于管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流,因此,管理設(shè)備需要更新第一數(shù)據(jù)流和第二數(shù)據(jù)流中被刪除的第一數(shù)據(jù)流的第一位置索引,或者被刪除的第二數(shù)據(jù)流的第二位置索引。

如果管理設(shè)備刪除第一數(shù)據(jù)流,本步驟可以為:管理設(shè)備刪除第一內(nèi)存空間中的第一位置索引,將第二位置索引作為第一數(shù)據(jù)流的位置索引存儲(chǔ)在第一內(nèi)存空間中。

如果管理設(shè)備刪除第二數(shù)據(jù)流,本步驟可以為:管理設(shè)備刪除第二內(nèi)存空間中的第二位置索引,將第一位置索引作為第二數(shù)據(jù)流的位置索引存儲(chǔ)在第二內(nèi)存空間中。

這樣,即使在共享內(nèi)存空間中刪除了第一數(shù)據(jù)流(或者第二數(shù)據(jù)流),管理設(shè)備仍能根據(jù)第一內(nèi)存空間(或者第二內(nèi)存空間)中的更新后的位置索引從共享內(nèi)存空間中讀取第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))需要引用的數(shù)據(jù)流。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,由于管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)了第一位置索引的當(dāng)前引用狀態(tài)和第二位置索引的當(dāng)前引用狀態(tài),因此,管理設(shè)備需要在第一位置索引和第二位置索引中,更新未被刪除的第一位置索引的當(dāng)前引用狀態(tài),或者更新未被刪除的第二位置索引的當(dāng)前引用狀態(tài)。本步驟可以為:管理設(shè)備將該第一位置索引的當(dāng)前引用狀態(tài)修改為被第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)引用,或者將該第二位置索引的當(dāng)前引用狀態(tài)修改為被第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)引用。

由于當(dāng)前引用狀態(tài)可以用引用計(jì)數(shù)表示,如果管理設(shè)備刪除第一數(shù)據(jù)流,本步驟可以為:管理設(shè)備將第二位置索引的引用計(jì)數(shù)增加第一預(yù)設(shè)數(shù)值。

如果管理設(shè)備刪除第二數(shù)據(jù)流,本步驟可以為:管理設(shè)備將第一位置索引的引用計(jì)數(shù)增加第一預(yù)設(shè)數(shù)值。

例如,以引用計(jì)數(shù)的初始數(shù)值為0、第一預(yù)設(shè)數(shù)值為1為例,第一位置索引和第二位置索引的當(dāng)前引用計(jì)數(shù)均為1,如果管理設(shè)備刪除第一數(shù)據(jù)流,則需將第二位置索引的引用計(jì)數(shù)更新為2。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,為了提高共享內(nèi)存空間的利用率,管理設(shè)備清理共享內(nèi)存空間中的無數(shù)據(jù)處理任務(wù)引用的第一數(shù)據(jù)流(或者第二數(shù)據(jù)流)。本步驟可以為:當(dāng)?shù)谝晃恢盟饕漠?dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備刪除第一數(shù)據(jù)流,或者,當(dāng)?shù)诙恢盟饕漠?dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備刪除第二數(shù)據(jù)流。

本步驟中,為了提高管理設(shè)備對(duì)無數(shù)據(jù)處理任務(wù)引用的第一數(shù)據(jù)流(或者第二數(shù)據(jù)流)的清理效率,管理設(shè)備無需實(shí)時(shí)檢測(cè)共享內(nèi)存空間中每個(gè)數(shù)據(jù)流對(duì)應(yīng)的位置索引的當(dāng)前引用狀態(tài),僅需通過檢測(cè)被第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)引用結(jié)束的第一數(shù)據(jù)流(或者第二數(shù)據(jù)流),獲取該第一位置索引(或者第二位置索引)的當(dāng)前引用狀態(tài),進(jìn)而確定是否刪除第一數(shù)據(jù)流(或者第二數(shù)據(jù)流)。

因此,當(dāng)?shù)谝晃恢盟饕?dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備刪除第一數(shù)據(jù)流的步驟可以為:當(dāng)檢測(cè)到第一數(shù)據(jù)流被第一數(shù)據(jù)處理任務(wù)引用結(jié)束,即檢測(cè)到第一數(shù)據(jù)流出第一數(shù)據(jù)處理任務(wù)的窗口時(shí),管理設(shè)備獲取第一位置索引的當(dāng)前引用狀態(tài),根據(jù)該第一位置索引的當(dāng)前引用狀態(tài),確定是否刪除第一數(shù)據(jù)流:如果該第一位置索引的當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用,管理設(shè)備刪除該第一數(shù)據(jù)流;如果該第一位置索引的當(dāng)前引用狀態(tài)為仍被數(shù)據(jù)處理任務(wù)引用,管理設(shè)備不刪除該第一數(shù)據(jù)流。

當(dāng)?shù)诙恢盟饕?dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用時(shí),管理設(shè)備刪除第二數(shù)據(jù)流的步驟同上述步驟的實(shí)現(xiàn)方式一致,此處不再一一贅述。

其中,用引用計(jì)數(shù)表示該第一位置索引的當(dāng)前引用狀態(tài)時(shí),本步驟中,管理設(shè)備根據(jù)該第一位置索引的當(dāng)前引用狀態(tài),確定是否刪除第一數(shù)據(jù)流的步驟可以為:管理設(shè)備檢測(cè)第一位置索引的引用計(jì)數(shù)是否與初始數(shù)值相同,如果該第一位置索引的引用計(jì)數(shù)與初始數(shù)值相同,說明該第一位置索引的當(dāng)前引用狀態(tài)為無數(shù)據(jù)處理任務(wù)引用,管理設(shè)備刪除第一數(shù)據(jù)流;如果該第一位置索引的引用計(jì)數(shù)與初始數(shù)值不相同,說明該第一位置索引的當(dāng)前引用狀態(tài)為仍被數(shù)據(jù)處理任務(wù)引用,管理設(shè)備不刪除第一數(shù)據(jù)流。

例如,以引用計(jì)數(shù)的初始數(shù)值為0、第一預(yù)設(shè)數(shù)值為1為例,管理設(shè)備檢測(cè)到第一數(shù)據(jù)流出第一數(shù)據(jù)處理任務(wù)的窗口時(shí),管理設(shè)備獲取第一位置索引的引用計(jì)數(shù),如果第一位置索引的引用計(jì)數(shù)為0,管理設(shè)備刪除該第一數(shù)據(jù)流;如果第一位置索引的引用計(jì)數(shù)為1,說明該第一數(shù)據(jù)流仍被當(dāng)前任務(wù)隊(duì)列中的其它數(shù)據(jù)處理任務(wù)引用,管理設(shè)備不刪除該第一數(shù)據(jù)流。

對(duì)于第二種實(shí)現(xiàn)方式,本步驟可以為:管理設(shè)備將第一數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中;檢測(cè)第二數(shù)據(jù)流和共享內(nèi)存空間中已存儲(chǔ)的第一數(shù)據(jù)流是否相同,如果相同,丟棄第二數(shù)據(jù)流,將第一數(shù)據(jù)流在共享內(nèi)存空間中的第一位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中。如果不相同,將第二數(shù)據(jù)流也存儲(chǔ)到共享內(nèi)存空間中,將第一數(shù)據(jù)流在共享內(nèi)存空間中的第一位置索引存儲(chǔ)到第一內(nèi)存空間中,將第二數(shù)據(jù)流在共享內(nèi)存空間中的第二位置索引存儲(chǔ)到第二內(nèi)存空間中;或者,

管理設(shè)備將第二數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間中;檢測(cè)第一數(shù)據(jù)流和共享內(nèi)存空間中已存儲(chǔ)的第二數(shù)據(jù)流是否相同;如果相同,丟棄第一數(shù)據(jù)流,將第二數(shù)據(jù)流在共享內(nèi)存空間中的第二位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中。如果不相同,將第二數(shù)據(jù)流也存儲(chǔ)到共享內(nèi)存空間中,將第一數(shù)據(jù)流在共享內(nèi)存空間中的第一位置索引存儲(chǔ)到第一內(nèi)存空間中,將第二數(shù)據(jù)流在共享內(nèi)存空間中的第二位置索引存儲(chǔ)到第二內(nèi)存空間中。

其中,管理設(shè)備確定第一數(shù)據(jù)流和第二數(shù)據(jù)流是否相同的步驟與步驟3022實(shí)現(xiàn)方式一致,此處不再一一贅述。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,為了進(jìn)一步提高共享內(nèi)存空間的利用率,管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流存儲(chǔ)到共享內(nèi)存空間后,還可以繼續(xù)將該任一數(shù)據(jù)流中的相同數(shù)據(jù)合并為一個(gè)數(shù)據(jù)。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,為了提高數(shù)據(jù)流處理的可靠性,防止數(shù)據(jù)丟失造成數(shù)據(jù)流處理中斷,管理設(shè)備接收到第一數(shù)據(jù)流和第二數(shù)據(jù)流時(shí),還可以將該第一數(shù)據(jù)流和第二數(shù)據(jù)流持久化存儲(chǔ)到第三內(nèi)存空間中。當(dāng)共享內(nèi)存空間中存儲(chǔ)的第一數(shù)據(jù)流或者第二數(shù)據(jù)流丟失時(shí),管理設(shè)備從該第三內(nèi)存空間中獲取該第一數(shù)據(jù)流或者第二數(shù)據(jù)流。

在本步驟之前,管理設(shè)備需要確定一個(gè)共享內(nèi)存空間,在確定共享內(nèi)存空間時(shí),管理設(shè)備可以根據(jù)第一數(shù)據(jù)流的數(shù)據(jù)屬性和第二數(shù)據(jù)流的數(shù)據(jù)屬性選擇一個(gè)共享內(nèi)存空間。管理設(shè)備還可以為每個(gè)任務(wù)隊(duì)列創(chuàng)建一個(gè)共享內(nèi)存空間。

管理設(shè)備根據(jù)第一數(shù)據(jù)流的數(shù)據(jù)屬性和第二數(shù)據(jù)流的數(shù)據(jù)屬性選擇一個(gè)共享內(nèi)存空間的步驟可以為:管理設(shè)備獲取第一數(shù)據(jù)流的第一數(shù)據(jù)屬性和第二數(shù)據(jù)流的第二數(shù)據(jù)屬性,根據(jù)該第一數(shù)據(jù)屬性,確定該第一數(shù)據(jù)屬性對(duì)應(yīng)的共享內(nèi)存空間,以及,根據(jù)該第二數(shù)據(jù)屬性,確定該第二數(shù)據(jù)屬性對(duì)應(yīng)的共享內(nèi)存空間。

其中,第一數(shù)據(jù)屬性可以為該第一數(shù)據(jù)流的某一數(shù)據(jù)特征,第二數(shù)據(jù)屬性可以為第二數(shù)據(jù)流的某一數(shù)據(jù)特征。例如,第一數(shù)據(jù)流和第二數(shù)據(jù)流均為交易產(chǎn)生的數(shù)據(jù)流,如圖5所示,該數(shù)據(jù)屬性可以為交易地,管理設(shè)備獲取第一數(shù)據(jù)流的第一數(shù)據(jù)屬性和第二數(shù)據(jù)流的第二數(shù)據(jù)屬性,將第一數(shù)據(jù)流和第二數(shù)據(jù)流中第一數(shù)據(jù)屬性第二數(shù)據(jù)屬性均為國外的數(shù)據(jù)存儲(chǔ)到第一共享內(nèi)存空間中,將第一數(shù)據(jù)流和第二數(shù)據(jù)流中第一數(shù)據(jù)屬性和第二數(shù)據(jù)屬性均為中國的數(shù)據(jù)流存儲(chǔ)到第二共享內(nèi)存空間中。這樣改進(jìn)后,第一共享內(nèi)存空間存儲(chǔ)的交易地為國外的多個(gè)數(shù)據(jù)流中,相同數(shù)據(jù)流可以合并為一個(gè)數(shù)據(jù)流。例如,管理設(shè)備將第一共享內(nèi)存空間中交易金額均為20000的兩個(gè)數(shù)據(jù)流合并為一個(gè)數(shù)據(jù)流,這樣,管理設(shè)備只需存儲(chǔ)相同數(shù)據(jù)中的一個(gè)數(shù)據(jù)流,提高了共享內(nèi)存空間的使用率。

本發(fā)明實(shí)施例提供的一種可能的設(shè)計(jì)中,管理設(shè)備為每個(gè)任務(wù)隊(duì)列創(chuàng)建一個(gè)共享內(nèi)存空間,管理設(shè)備將該當(dāng)前任務(wù)隊(duì)列中第一數(shù)據(jù)處理任務(wù)的第一數(shù)據(jù)流和第二數(shù)據(jù)處理任務(wù)的第二數(shù)據(jù)流存儲(chǔ)到該共享內(nèi)存空間中。

管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是否為當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù),如果第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)為當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù),管理設(shè)備創(chuàng)建共享內(nèi)存空間,后續(xù)步驟中,管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到該共享內(nèi)存空間中;如果第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)不是當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù),說明管理設(shè)備執(zhí)行當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)時(shí),已經(jīng)創(chuàng)建了共享內(nèi)存空間,后續(xù)步驟中,管理設(shè)備將第一數(shù)據(jù)流和第二數(shù)據(jù)流存儲(chǔ)到已經(jīng)創(chuàng)建的共享內(nèi)存空間中。

如圖6所示,該當(dāng)前任務(wù)隊(duì)列可以運(yùn)行在多個(gè)進(jìn)程間,一個(gè)進(jìn)程可以對(duì)應(yīng)運(yùn)行一個(gè)數(shù)據(jù)處理任務(wù),當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的進(jìn)程為多個(gè)進(jìn)程中的首個(gè)進(jìn)程。

如圖7所示,該當(dāng)前任務(wù)隊(duì)列也可以運(yùn)行在同一進(jìn)程的不同線程間,一個(gè)線程可以對(duì)應(yīng)運(yùn)行一個(gè)數(shù)據(jù)處理任務(wù),當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的線程為多個(gè)線程中的首個(gè)線程。

以該當(dāng)前任務(wù)隊(duì)列運(yùn)行在多個(gè)進(jìn)程間為例進(jìn)行說明,管理設(shè)備執(zhí)行第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)時(shí),啟動(dòng)該第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)所在的進(jìn)程。

因此,管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是否為當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)的步驟可以為:管理設(shè)備通過進(jìn)程間通信,檢測(cè)第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))所在進(jìn)程是否為首個(gè)進(jìn)程;當(dāng)檢測(cè)到該進(jìn)程不是多個(gè)進(jìn)程中的首個(gè)進(jìn)程時(shí),管理設(shè)備確定第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))不是當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù);當(dāng)檢測(cè)到該進(jìn)程為多個(gè)進(jìn)程中的首個(gè)進(jìn)程時(shí),管理設(shè)備確定第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))為當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)。

當(dāng)該多個(gè)數(shù)據(jù)處理任務(wù)運(yùn)行在一個(gè)進(jìn)程的多個(gè)線程間時(shí),管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是否為當(dāng)前任務(wù)隊(duì)列的第一個(gè)數(shù)據(jù)處理任務(wù)的步驟與該當(dāng)前任務(wù)隊(duì)列運(yùn)行在多個(gè)進(jìn)程間時(shí)的實(shí)現(xiàn)方式一致,此處不再一一贅述。

本步驟中,管理設(shè)備預(yù)先存儲(chǔ)了該共享內(nèi)存空間的預(yù)設(shè)容量,因此,管理設(shè)備創(chuàng)建共享內(nèi)存空間的步驟可以為:管理設(shè)備獲取該共享內(nèi)存空間的預(yù)設(shè)容量,根據(jù)該預(yù)設(shè)容量,創(chuàng)建總?cè)萘繛樵擃A(yù)設(shè)容量的共享內(nèi)存空間。

其中,該預(yù)設(shè)容量可以根據(jù)用戶需要設(shè)置并更改,本發(fā)明實(shí)施例對(duì)此不作具體限定,例如,該預(yù)設(shè)容量可以為500MB(MByte,兆字節(jié))、50GB(Gigabyte,吉字節(jié))、2TB(Terabyte,太字節(jié))等。

步驟303:當(dāng)執(zhí)行該第一數(shù)據(jù)處理任務(wù)或該第二數(shù)據(jù)處理任務(wù)時(shí),管理設(shè)備根據(jù)該位置索引,從該共享內(nèi)存空間中讀取該任一數(shù)據(jù)流,根據(jù)該任一數(shù)據(jù)流執(zhí)行該第一數(shù)據(jù)處理任務(wù)或該第二數(shù)據(jù)處理任務(wù)。

本步驟中,該位置索引為更新后的第一數(shù)據(jù)流的第一位置索引或第二數(shù)據(jù)流的第二位置索引;該任一數(shù)據(jù)流為第一數(shù)據(jù)流和第二數(shù)據(jù)流中未被刪除的數(shù)據(jù)流。

如果管理設(shè)備刪除第一數(shù)據(jù)流,管理設(shè)備根據(jù)第二數(shù)據(jù)流的第三標(biāo)識(shí),從第三標(biāo)識(shí)和位置索引的對(duì)應(yīng)關(guān)系中,獲取該第二數(shù)據(jù)流的第二位置索引,根據(jù)該第二位置索引,讀取第二數(shù)據(jù)流,進(jìn)而,管理設(shè)備根據(jù)第二數(shù)據(jù)處理任務(wù)的第二窗口計(jì)算算子邏輯,對(duì)該第二數(shù)據(jù)流進(jìn)行處理。

本發(fā)明實(shí)施例的一種可能實(shí)現(xiàn)方式中,為了提高該共享內(nèi)存空間的使用率,管理設(shè)備可以實(shí)時(shí)檢測(cè)該共享內(nèi)存空間中存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量,根據(jù)該數(shù)據(jù)量,實(shí)時(shí)調(diào)整該共享內(nèi)存空間的總?cè)萘看笮?。本步驟可以為:管理設(shè)備獲取該共享內(nèi)存空間的總?cè)萘亢驮摴蚕韮?nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量,管理設(shè)備根據(jù)該總?cè)萘亢驮摂?shù)據(jù)量,調(diào)整該共享內(nèi)存空間的總?cè)萘看笮 ?/p>

本步驟中,管理設(shè)備根據(jù)該總?cè)萘亢驮摂?shù)據(jù)量,調(diào)整該共享內(nèi)存空間的總?cè)萘看笮r(shí),管理設(shè)備可以通過計(jì)算當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量和共享內(nèi)存空間當(dāng)前的總?cè)萘康谋戎?,調(diào)整該共享內(nèi)存空間的總?cè)萘看笮?,使得該比值的大小在預(yù)設(shè)數(shù)值范圍內(nèi);其中比值為管理設(shè)備用該當(dāng)前存儲(chǔ)的數(shù)據(jù)量除以該總?cè)萘康玫皆摂?shù)據(jù)量和該總?cè)萘康谋戎怠?/p>

因此,管理設(shè)備根據(jù)該總?cè)萘亢驮摂?shù)據(jù)量,調(diào)整該共享內(nèi)存空間的總?cè)萘看笮〉牟襟E可以為:管理設(shè)備計(jì)算該數(shù)據(jù)量和該總?cè)萘康谋戎?,?dāng)該比值大于第二預(yù)設(shè)數(shù)值時(shí),增大該共享內(nèi)存空間當(dāng)前的總?cè)萘浚?dāng)該比值小于第三預(yù)設(shè)數(shù)值時(shí),減小該共享內(nèi)存空間當(dāng)前的總?cè)萘俊?/p>

其中,第二預(yù)設(shè)數(shù)值、第三預(yù)設(shè)數(shù)值可以根據(jù)需要設(shè)備并更改,本發(fā)明實(shí)施例對(duì)此不作具體限定。

例如,以第二預(yù)設(shè)數(shù)值為80%、第三預(yù)設(shè)數(shù)值為40%為例,該共享內(nèi)存空間當(dāng)前的總?cè)萘看笮?00GB,如果共享內(nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量為100GB,此時(shí),需減小該總?cè)萘康拇笮?,可以將該總?cè)萘繙p小至200GB;如果共享內(nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量為450GB,此時(shí),需增大該總?cè)萘康拇笮?,可以將該總?cè)萘吭龃笾?00GB。

本發(fā)明實(shí)施例中,管理設(shè)備可以每隔預(yù)設(shè)周期獲取該共享內(nèi)存空間當(dāng)前存儲(chǔ)的數(shù)據(jù)流的數(shù)據(jù)量和共享內(nèi)存空間的總?cè)萘?。該預(yù)設(shè)周期可以根據(jù)用戶需要設(shè)置并更改,本發(fā)明實(shí)施例對(duì)此不作具體限定。例如,該預(yù)設(shè)周期可以為2秒、10毫秒等。

本發(fā)明實(shí)施例中,為了減少共享內(nèi)存空間占用的內(nèi)存,管理設(shè)備執(zhí)行完第一數(shù)據(jù)處理任務(wù)和第二數(shù)據(jù)處理任務(wù)時(shí),可以通過以下步驟a和b,當(dāng)檢測(cè)到該第一數(shù)據(jù)處理任務(wù)或者該第二數(shù)據(jù)處理任務(wù)是該當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù),管理設(shè)備銷毀該共享內(nèi)存空間,包括:

步驟a:管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是否為當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù)。

由于該當(dāng)前任務(wù)隊(duì)列可以運(yùn)行在多個(gè)進(jìn)程間,也可以運(yùn)行在一個(gè)進(jìn)程的多個(gè)線程間。該當(dāng)前任務(wù)隊(duì)列運(yùn)行在多個(gè)進(jìn)程間時(shí),當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的進(jìn)程為多個(gè)進(jìn)程中的最后一個(gè)進(jìn)程;該當(dāng)前任務(wù)隊(duì)列運(yùn)行在一個(gè)進(jìn)程的多個(gè)線程間時(shí),當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的線程為多個(gè)線程中的最后一個(gè)線程。

因此,該當(dāng)前任務(wù)隊(duì)列運(yùn)行在多個(gè)進(jìn)程間時(shí),本步驟可以為:管理設(shè)備通過進(jìn)程間通信,檢測(cè)第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))所在進(jìn)程是否為最后一個(gè)進(jìn)程;當(dāng)檢測(cè)到該進(jìn)程不是多個(gè)進(jìn)程中的最后一個(gè)進(jìn)程時(shí),管理設(shè)備確定第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))不是當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù);當(dāng)檢測(cè)到該進(jìn)程為多個(gè)進(jìn)程中的最后一個(gè)進(jìn)程時(shí),管理設(shè)備確定第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))為當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù),進(jìn)而,通過以下步驟b,銷毀共享內(nèi)存空間。

當(dāng)該多個(gè)數(shù)據(jù)處理任務(wù)運(yùn)行在一個(gè)進(jìn)程的多個(gè)線程間時(shí),管理設(shè)備檢測(cè)第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是否為當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù)的步驟與該當(dāng)前任務(wù)隊(duì)列運(yùn)行在多個(gè)進(jìn)程間時(shí)的實(shí)現(xiàn)方式一致,此處不再一一贅述。

步驟b:如果第一數(shù)據(jù)處理任務(wù)或者第二數(shù)據(jù)處理任務(wù)是當(dāng)前任務(wù)隊(duì)列的最后一個(gè)數(shù)據(jù)處理任務(wù),管理設(shè)備銷毀共享內(nèi)存空間。

本步驟中,當(dāng)檢測(cè)到第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))所在進(jìn)程為最后一個(gè)進(jìn)程時(shí),管理設(shè)備銷毀該進(jìn)程的同時(shí),銷毀該進(jìn)程對(duì)應(yīng)的共享內(nèi)存空間,結(jié)束。

當(dāng)檢測(cè)到第一數(shù)據(jù)處理任務(wù)(或者第二數(shù)據(jù)處理任務(wù))所在進(jìn)程不是最后一個(gè)進(jìn)程時(shí),管理設(shè)備直接銷毀該進(jìn)程,不銷毀該進(jìn)程對(duì)應(yīng)的共享內(nèi)存空間,結(jié)束。

本發(fā)明實(shí)施例所示的方案中,管理設(shè)備接收第一數(shù)據(jù)流和第二數(shù)據(jù)流后,如果第一數(shù)據(jù)流和第二數(shù)據(jù)流相同,管理設(shè)備在共享內(nèi)存空間中存儲(chǔ)第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,并將該任一數(shù)據(jù)流在共享內(nèi)存空間中的位置索引存儲(chǔ)到第一內(nèi)存空間和第二內(nèi)存空間中,當(dāng)執(zhí)行第一數(shù)據(jù)處理任務(wù)或第二數(shù)據(jù)處理任務(wù)時(shí),根據(jù)該位置索引,從該共享內(nèi)存空間中讀取第一數(shù)據(jù)流或者第二數(shù)據(jù)流。由于共享內(nèi)存空間中只存儲(chǔ)了第一數(shù)據(jù)流和第二數(shù)據(jù)流中的任一數(shù)據(jù)流,避免了相同數(shù)據(jù)流的重復(fù)存儲(chǔ),從而節(jié)省了內(nèi)存空間,提高了內(nèi)存空間的利用率。

下述為本本發(fā)明實(shí)施例裝置實(shí)施例,可以用于執(zhí)行本發(fā)明實(shí)施例方法實(shí)施例。對(duì)于本發(fā)明實(shí)施例裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明實(shí)施例方法實(shí)施例。

圖8是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)流處理的裝置的結(jié)構(gòu)方框圖,該裝置可以通過軟件、硬件或者兩者的結(jié)合實(shí)現(xiàn)成為管理設(shè)備的部分或者全部。

該裝置包括接收單元401、存儲(chǔ)單元402、讀取單元403和執(zhí)行單元404;

接收單元401用于執(zhí)行上述實(shí)施例中的步驟301及其可選方案。

存儲(chǔ)單元402用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

讀取單元403用于執(zhí)行上述實(shí)施例中的步驟303及其可選方案。

執(zhí)行單元404用于執(zhí)行上述實(shí)施例中的步驟303及其可選方案。

參見圖9,該裝置還可以包括創(chuàng)建單元405、銷毀單元406;

創(chuàng)建單元405用于執(zhí)行上述實(shí)施例中的步驟301及其可選方案。

銷毀單元406用于執(zhí)行上述實(shí)施例中的步驟303及其可選方案。

參見圖10,該裝置還可以包括第一獲取單元407、第一確定單元408;

第一獲取單元407用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

第一確定單元408用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

參見圖11,該裝置還可以包括第二獲取單元409、第二確定單元410;

第二獲取單元409用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

第二確定單元410用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

參見圖12,該裝置還可以包括修改單元411、刪除單元412;

修改單元411用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

刪除單元412用于執(zhí)行上述實(shí)施例中的步驟302及其可選方案。

參見圖13,該裝置還可以包括第三獲取單元413、調(diào)整單元414;

第三獲取單元413用于執(zhí)行上述實(shí)施例中的步驟303及其可選方案。

調(diào)整單元414用于執(zhí)行上述實(shí)施例中的步驟303及其可選方案。

需要說明的是:上述實(shí)施例提供的數(shù)據(jù)流處理的裝置在數(shù)據(jù)流處理時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的數(shù)據(jù)流處理的裝置與數(shù)據(jù)流處理的方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兰考县| 海丰县| 棋牌| 广饶县| 海盐县| 汽车| 金湖县| 石门县| 新兴县| 辽宁省| 萨嘎县| 宣恩县| 拜泉县| 当涂县| 安丘市| 会宁县| 克拉玛依市| 利川市| 姚安县| 鱼台县| 边坝县| 麦盖提县| 神农架林区| 东丽区| 平湖市| 桦甸市| 耒阳市| 横峰县| 宜都市| 新安县| 洪泽县| 黄龙县| 衡阳县| 崇文区| 天水市| 安福县| 灌阳县| 台山市| 竹北市| 广南县| 铜梁县|