本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種共享緩存空間的管理方法及裝置。
背景技術(shù):
共享緩存是一種網(wǎng)絡(luò)通信領(lǐng)域常見的資源配置策略,多個(gè)隊(duì)列共享緩存空間,此種共享緩存方法在隊(duì)列較多時(shí)能夠較好的節(jié)省存儲(chǔ)需要的空間。然而,共享緩存空間存在隊(duì)列搶占的問題,流量較大的隊(duì)列會(huì)非常頻繁地訪問共享緩存,從而大量擠占共享緩存空間,這會(huì)導(dǎo)致其它隊(duì)列無空間存儲(chǔ)而出現(xiàn)丟包的現(xiàn)象。
綜上所述,提供一種共享緩存空間的管理方案,能夠合理的進(jìn)行共享緩存空間的分配,提高共享緩存空間的利用率,已成為亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種共享緩存空間的管理方法及裝置,至少解決了現(xiàn)有技術(shù)中存在的問題,能夠合理的進(jìn)行共享緩存空間的分配,提高共享緩存空間的利用率。
本發(fā)明實(shí)施例的技術(shù)方案是這樣實(shí)現(xiàn)的:
本發(fā)明實(shí)施例提供了一種共享緩存空間的管理方法,所述方法包括:
基于報(bào)文的入隊(duì)請(qǐng)求確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列;
獲取所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況;
基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷所述報(bào)文是否符合第一緩存條件;
當(dāng)所述報(bào)文符合第一緩存條件時(shí),獲取所述隊(duì)列的共享緩存空間占用估算值;
基于所述隊(duì)列的共享緩存空間占用估算值判斷所述報(bào)文是否符合第二緩存 條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間。
上述方案中,所述獲取所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,包括:
獲取所述隊(duì)列的優(yōu)先級(jí)信息,并基于所述隊(duì)列的優(yōu)先級(jí)獲取與所述隊(duì)列的優(yōu)先級(jí)對(duì)應(yīng)的共享緩存空間閾值水線。
上述方案中,所述基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷所述報(bào)文是否符合第一緩存條件,包括:
基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷當(dāng)前共享緩存空間的空間占用值是否小于共享緩存空間的最大值,且當(dāng)前共享緩存空間的空間占用值小于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第一緩存條件;否則,確定所述報(bào)文不符合第一緩存條件。
上述方案中,所述獲取所述隊(duì)列的共享緩存空間占用估算值,包括:
獲取當(dāng)前第一激活隊(duì)列的數(shù)目及所述隊(duì)列當(dāng)前的共享緩存空間占用值,并基于所述隊(duì)列當(dāng)前的共享緩存空間占用值得到所述報(bào)文入隊(duì)后所述隊(duì)列的預(yù)期共享緩存空間占用值;
基于所述隊(duì)列當(dāng)前的共享緩存空間占用值、所述隊(duì)列的預(yù)期共享緩存空間占用值、當(dāng)前第一激活隊(duì)列的數(shù)目以及當(dāng)前共享緩存空間的空間占用值,確定所述隊(duì)列的共享緩存空間占用估算值。
上述方案中,所述基于所述隊(duì)列的共享緩存空間占用估算值判斷所述報(bào)文是否符合第二緩存條件,包括:
判斷所述隊(duì)列的共享緩存空間占用估算值是否不大于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第二緩存條件;否則,確定所述報(bào)文不符合第二緩存條件。
本發(fā)明實(shí)施例還提供了一種共享緩存空間的管理裝置,所述裝置包括:確定模塊、第一獲取模塊、第一判斷模塊、第二獲取模塊及第二判斷模塊;其中,
所述確定模塊,用于基于報(bào)文的入隊(duì)請(qǐng)求確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列;
所述第一獲取模塊,用于獲取所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況;
所述第一判斷模塊,用于基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng) 前共享緩存空間的空間占用情況,判斷所述報(bào)文是否符合第一緩存條件,并在所述報(bào)文符合第一緩存條件時(shí)觸發(fā)第二獲取模塊;
所述第二獲取模塊,用于當(dāng)所述報(bào)文符合第一緩存條件時(shí),獲取所述隊(duì)列的共享緩存空間占用估算值;
所述第二判斷模塊,用于基于所述隊(duì)列的共享緩存空間占用估算值判斷所述報(bào)文是否符合第二緩存條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間。
上述方案中,所述第一獲取模塊,還用于獲取所述隊(duì)列的優(yōu)先級(jí)信息,并基于所述隊(duì)列的優(yōu)先級(jí)獲取與所述隊(duì)列的優(yōu)先級(jí)對(duì)應(yīng)的共享緩存空間閾值水線。
上述方案中,所述第一判斷模塊,還用于基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷當(dāng)前共享緩存空間的空間占用值是否小于共享緩存空間的最大值,且當(dāng)前共享緩存空間的空間占用值小于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第一緩存條件;否則,確定所述報(bào)文不符合第一緩存條件。
上述方案中,所述第二獲取模塊,還用于獲取當(dāng)前第一激活隊(duì)列的數(shù)目及所述隊(duì)列當(dāng)前的共享緩存空間占用值,并基于所述隊(duì)列當(dāng)前的共享緩存空間占用值得到所述報(bào)文入隊(duì)后所述隊(duì)列的預(yù)期共享緩存空間占用值;
基于所述隊(duì)列當(dāng)前的共享緩存空間占用值、所述隊(duì)列的預(yù)期共享緩存空間占用值、當(dāng)前第一激活隊(duì)列的數(shù)目以及當(dāng)前共享緩存空間的空間占用值,確定所述隊(duì)列的共享緩存空間占用估算值。
上述方案中,所述第二判斷模塊,還用于判斷所述隊(duì)列的共享緩存空間占用估算值是否不大于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第二緩存條件;否則,確定所述報(bào)文不符合第二緩存條件。
應(yīng)用本發(fā)明上述共享緩存空間的管理方法及裝置,設(shè)置第一、第二緩存條件,通過獲取隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況確定入隊(duì)報(bào)文符合第一緩存條件的情況下,進(jìn)一步計(jì)算所述隊(duì)列的共享緩存空間占用估算值,進(jìn)而判斷所述報(bào)文是否符合第二緩存條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間;如此,基于入隊(duì)隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線、當(dāng)前共享緩存空間的空間占用情況、計(jì)算得到的所述 隊(duì)列的共享緩存空間占用估算值等信息確定是否緩存所述報(bào)文至共享緩存空間,實(shí)現(xiàn)了對(duì)共享緩存空間的合理分配,提高了共享緩存空間的利用率。
附圖說明
圖1為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖一;
圖2為本發(fā)明實(shí)施例中共享緩存空間的管理裝置框圖;
圖3為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖二;
圖4為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖三;
圖5為本發(fā)明實(shí)施例中共享緩存空間的管理裝置組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
實(shí)施例一
圖1為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖,如圖1所示,本發(fā)明實(shí)施例中共享緩存空間的管理方法包括:
步驟101:基于報(bào)文的入隊(duì)請(qǐng)求確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列。
這里,接收?qǐng)?bào)文的入隊(duì)請(qǐng)求,并通過解析報(bào)文的入隊(duì)請(qǐng)求可以獲得該報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列的隊(duì)列號(hào)信息。
步驟102:獲取所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況。
這里,在實(shí)際實(shí)施時(shí),本步驟之前,所述方法還可以包括:設(shè)置每個(gè)隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,也即每個(gè)隊(duì)列可占用的共享緩存空間閾值水線;所述設(shè)置可依據(jù)實(shí)際需要進(jìn)行設(shè)置,因此通過讀取所述隊(duì)列的隊(duì)列配置信息可得到預(yù)先設(shè)置的該隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線。
通過讀取記錄的每個(gè)隊(duì)列占用的共享緩存空間的實(shí)際值,可得到當(dāng)前共享緩存空間的實(shí)際占用值。
基于本發(fā)明所述實(shí)施例,本發(fā)明實(shí)施例中共享緩存空間的管理方案的裝置框圖可設(shè)置為圖2所示,包括:202第一配置模塊,用于配置每個(gè)隊(duì)列可以占用的緩存空間,讀取每個(gè)隊(duì)列當(dāng)前已經(jīng)占用的緩存空間;203記錄模塊(cnt_ram, 即統(tǒng)計(jì)ram),用于記錄每個(gè)隊(duì)列實(shí)際占用的緩存空間;204第二配置模塊(cfg_ram,即配置ram),用于配置每個(gè)隊(duì)列可以占用的共享空間閥值水線和獨(dú)享空間;205控制模塊,用于處理報(bào)文的入隊(duì)申請(qǐng)。
步驟103:基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷所述報(bào)文是否符合第一緩存條件。
在實(shí)際實(shí)施時(shí),預(yù)先設(shè)置第一緩存條件,用于判斷當(dāng)前的共享緩存占用情況是否允許新的報(bào)文進(jìn)入,如:設(shè)置第一緩存條件為:當(dāng)前共享緩存空間的空間占用值小于共享緩存空間的最大值,且當(dāng)前共享緩存空間的空間占用值小于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線;若所述第一緩存條件不滿足,即當(dāng)前的共享緩存占用不允許新的報(bào)文進(jìn)入,即丟棄該報(bào)文;若上述第一緩存條件得到滿足時(shí),進(jìn)行后續(xù)流程。
步驟104:當(dāng)所述報(bào)文符合第一緩存條件時(shí),獲取所述隊(duì)列的共享緩存空間占用估算值。
這里,隊(duì)列的共享緩存空間占用估算值,表征在相同優(yōu)先級(jí)的隊(duì)列公平占用共享緩存空間的情況下,該隊(duì)列可占用的共享緩存空間的估算值;也即,如果當(dāng)前某個(gè)優(yōu)先級(jí)有兩個(gè)或兩個(gè)以上的隊(duì)列存在共享緩存占用,則所有該優(yōu)先級(jí)的隊(duì)列平分該優(yōu)先級(jí)可占用的共享緩存空間。
在實(shí)際實(shí)施時(shí),可基于所述隊(duì)列當(dāng)前的共享緩存空間占用值、所述隊(duì)列的預(yù)期共享緩存空間占用值、當(dāng)前第一激活隊(duì)列的數(shù)目以及當(dāng)前共享緩存空間的空間占用值,確定所述隊(duì)列的共享緩存空間占用估算值;其中,所述第一激活隊(duì)列指與所述隊(duì)列優(yōu)先級(jí)相同的激活隊(duì)列。
步驟105:基于所述隊(duì)列的共享緩存空間占用估算值判斷所述報(bào)文是否符合第二緩存條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間。
這里,可以預(yù)先設(shè)置第二緩存條件,以進(jìn)一步判斷是否允許所述報(bào)文入隊(duì),進(jìn)入所述共享緩存空間,如:設(shè)置第二緩存條件為所述隊(duì)列的共享緩存空間占用估算值不大于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線;若通過判斷,上述第二緩存條件未得到滿足,可判定不允許所述報(bào)文入隊(duì),即不允許所述報(bào)文進(jìn)入共享緩存空間,而若所述第二緩存條件得到滿足,即可緩存所述報(bào)文進(jìn)入共享緩存空間。
應(yīng)用本發(fā)明上述實(shí)施例,通過獲取隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng) 前共享緩存空間的空間占用情況確定入隊(duì)報(bào)文符合第一緩存條件的情況下,進(jìn)一步計(jì)算所述隊(duì)列的共享緩存空間占用估算值,進(jìn)而判斷所述報(bào)文是否符合第二緩存條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間;如此,基于入隊(duì)隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線、當(dāng)前共享緩存空間的空間占用情況、計(jì)算得到的所述隊(duì)列的共享緩存空間占用估算值等信息確定是否緩存所述報(bào)文至共享緩存空間,實(shí)現(xiàn)了對(duì)共享緩存空間的合理分配,提高了共享緩存空間的利用率。
實(shí)施例二
圖3為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖,如圖3所示,本發(fā)明實(shí)施例中共享緩存空間的管理方法包括:
步驟301:接收?qǐng)?bào)文的入隊(duì)請(qǐng)求,并基于所述入隊(duì)請(qǐng)求確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列。
這里,通過解析報(bào)文的入隊(duì)請(qǐng)求可以獲得該報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列的隊(duì)列號(hào)信息,即確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列。
步驟302:獲取所述隊(duì)列可占用的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用值。
在實(shí)際實(shí)施時(shí),可預(yù)先設(shè)置每個(gè)隊(duì)列可占用的共享緩存空間閾值水線,具體設(shè)置時(shí)可依據(jù)每個(gè)隊(duì)列的優(yōu)先級(jí)進(jìn)行設(shè)置,通常高優(yōu)先級(jí)的隊(duì)列可占用的共享緩存空間閾值水線不低于低優(yōu)先級(jí)的隊(duì)列可占用的共享緩存空間閾值水線,如此,本優(yōu)先級(jí)隊(duì)列的數(shù)據(jù)報(bào)文,可以占用優(yōu)先級(jí)低于自己的隊(duì)列閥值水線區(qū)的共享緩存空間,但是不可以占用優(yōu)先級(jí)高于自己的隊(duì)列閥值水線區(qū)的共享緩存空間,實(shí)現(xiàn)共享空間占用區(qū)分優(yōu)先級(jí);如:設(shè)置一個(gè)隊(duì)列對(duì)應(yīng)優(yōu)先級(jí)可以占用的共享空間閥值水線為cfg_share_thr_prix;
相應(yīng)的,本步驟具體包括:獲取預(yù)先設(shè)置的所述隊(duì)列的優(yōu)先級(jí)信息,并基于所述隊(duì)列的優(yōu)先級(jí)獲取與所述隊(duì)列的優(yōu)先級(jí)對(duì)應(yīng)的共享緩存空間閾值水線;
而通過讀取記錄的每個(gè)隊(duì)列占用的共享緩存空間的實(shí)際值,可得到當(dāng)前共享緩存空間的實(shí)際占用值。
步驟303:判斷當(dāng)前共享緩存空間的空間占用值是否小于共享緩存空間的最大值,且當(dāng)前共享緩存空間的空間占用值小于所述隊(duì)列可占用的共享緩存空 間閾值水線,如果是,執(zhí)行步驟304;否則,執(zhí)行步驟307。
這里,共享緩存空間的最大值指的是當(dāng)前共享緩存無占用時(shí),共享緩存空間值;在實(shí)際應(yīng)用中,該共享緩存空間的最大值可用max_share_size表示,當(dāng)前共享緩存空間的空間占用值可用all_ocp_share_size表示;
也即,本步驟操作實(shí)際為判斷all_ocp_share_size<max_share_size,且all_ocp_share_size<cfg_share_thr_prix是否成立。
步驟304:獲取所述隊(duì)列的共享緩存空間占用估算值。
這里,隊(duì)列的共享緩存空間占用估算值,表征在相同優(yōu)先級(jí)的隊(duì)列公平占用共享緩存空間的情況下,該隊(duì)列可占用的共享緩存空間的估算值;也即,如果當(dāng)前某個(gè)優(yōu)先級(jí)有兩個(gè)或兩個(gè)以上的隊(duì)列存在共享緩存占用,則所有該優(yōu)先級(jí)的隊(duì)列平分該優(yōu)先級(jí)可占用的共享緩存空間。
在實(shí)際實(shí)施時(shí),可獲取所述報(bào)文入隊(duì)后所述隊(duì)列的預(yù)期共享緩存空間占用值,并基于所述隊(duì)列當(dāng)前的共享緩存空間占用值、所述隊(duì)列的預(yù)期共享緩存空間占用值、當(dāng)前第一激活隊(duì)列的數(shù)目以及當(dāng)前共享緩存空間的空間占用值,確定所述隊(duì)列的共享緩存空間占用估算值;其中,所述第一激活隊(duì)列指與所述隊(duì)列優(yōu)先級(jí)相同的激活隊(duì)列,即優(yōu)先級(jí)和當(dāng)前所述隊(duì)列相同,且在共享緩存中存在占用的隊(duì)列;當(dāng)前第一激活隊(duì)列的數(shù)目可采用active_share_que_num_prix表示,如:除存在和所述隊(duì)列優(yōu)先級(jí)的隊(duì)列兩個(gè),則active_share_que_num_prix=3,所述隊(duì)列的預(yù)期共享緩存空間占用值采用new_ocp_share_size_tmp表示,所述隊(duì)列當(dāng)前的共享緩存空間占用值可采用ocp_share_size_quex表示,所述隊(duì)列的共享緩存空間占用估算值可采用req_estimate_tmp表示;
具體的,可設(shè)置所述隊(duì)列的共享緩存空間占用估算值=所述隊(duì)列的預(yù)期共享緩存空間占用值*當(dāng)前第一激活隊(duì)列的數(shù)目+(當(dāng)前共享緩存空間的空間占用值-所述隊(duì)列當(dāng)前的共享緩存空間占用值);即:
req_estimate_tmp=new_ocp_share_size_tmp*active_share_que_num_prix+(all_ocp_share_size-ocp_share_size_quex);
在實(shí)際實(shí)施時(shí),所述報(bào)文入隊(duì)后所述隊(duì)列的預(yù)期共享緩存空間占用值可由所述報(bào)文的長(zhǎng)度及所述隊(duì)列當(dāng)前的共享緩存空間占用值得到,令所述報(bào)文的長(zhǎng)度用pkt_len表示,則new_ocp_share_size_tmp=pkt_len+ocp_share_size_quex。
步驟305:判斷所述隊(duì)列的共享緩存空間占用估算值是否不大于所述隊(duì)列可占用的共享緩存空間閾值水線,如果是,執(zhí)行步驟306;否則,執(zhí)行步驟307。
這里,由于不同優(yōu)先級(jí)的隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線不同,通常高優(yōu)先級(jí)的隊(duì)列可占用的共享緩存空間閾值水線較高,因此,本優(yōu)先級(jí)隊(duì)列的新進(jìn)數(shù)據(jù)包,可以占用優(yōu)先級(jí)低于自己的隊(duì)列閥值水線區(qū)的共享空間,但是不可以占用優(yōu)先級(jí)高于自己的隊(duì)列閥值水線區(qū)的共享空間,應(yīng)用本實(shí)施例,實(shí)現(xiàn)了共享緩存空間占用區(qū)分優(yōu)先級(jí),通常優(yōu)先級(jí)高的隊(duì)列共享空間可占用閥值水線大于優(yōu)先級(jí)低的隊(duì)列共享空間可占用閥值水線,可以根據(jù)需要,靈活配置,提高了共享緩存的利用率。
步驟306:緩存所述報(bào)文至所述共享緩存空間,并更新所述隊(duì)列的共享緩存占用,執(zhí)行步驟308。
這里,更新后的所述隊(duì)列的共享緩存占用等于所述隊(duì)列的預(yù)期共享緩存空間占用值,即:pkt_len+ocp_share_size_quex;
相應(yīng)的,還可以更新當(dāng)前所述共享緩存空間的空間占用值,即:all_ocp_share_size+pkt_len。
步驟307:丟棄所述報(bào)文。
步驟308:結(jié)束本次處理流程。
實(shí)施例三
圖4為本發(fā)明實(shí)施例中共享緩存空間的管理方法流程示意圖,如圖4所示,本發(fā)明實(shí)施例中共享緩存空間的管理方法包括:
步驟401:獲取一個(gè)隊(duì)列當(dāng)前的共享緩存占用ocp_share_size_quex。
步驟402:接收到所述隊(duì)列的報(bào)文進(jìn)入申請(qǐng),且所述報(bào)文長(zhǎng)度為pkt_len。
步驟403:讀取當(dāng)前的隊(duì)列配置信息cfg_ram及隊(duì)列的共享緩存占用信息cnt_ram。
這里,隊(duì)列配置信息cfg_ram包括每個(gè)隊(duì)列可以占用的共享空間閥值水線和獨(dú)享空間信息,隊(duì)列的共享緩存占用信息cnt_ram包括每個(gè)隊(duì)列的實(shí)際共享緩存占用值。
步驟404:得到cfg_share_thr_prix、ocp_share_size_quex及max_share_size。
這里,cfg_share_thr_prix表示所述隊(duì)列對(duì)應(yīng)優(yōu)先級(jí)可以占用的共享空間閥 值水線,ocp_share_size_quex表示所述隊(duì)列當(dāng)前的共享緩存空間占用值,max_share_size表示共享緩存空間的最大值。
步驟405:判斷是否
all_ocp_share_size<max_share_size且all_ocp_share_size<cfg_share_thr_prix,如果是,執(zhí)行步驟406;否則,執(zhí)行步驟410。
步驟406:獲取new_ocp_share_size_tmp=pkt_len+ocp_share_size_quex。
這里,new_ocp_share_size_tmp表示所述隊(duì)列的預(yù)期共享緩存空間占用值。
步驟407:獲取
req_estimate_tmp=new_ocp_share_size_tmp*active_share_que_num_prix+(all_ocp_share_size-ocp_share_size_quex)。
這里,req_estimate_tmp表示所述隊(duì)列的共享緩存空間占用估算值,active_share_que_num_prix表示與所述隊(duì)列優(yōu)先級(jí)相同的激活隊(duì)列的數(shù)目,all_ocp_share_size表示當(dāng)前共享緩存空間的空間占用值。
步驟408:判斷是否req_estimate_tmp≤cfg_share_thr_prix,如果是,執(zhí)行步驟409;否則執(zhí)行410。
步驟409:將所述報(bào)文緩存至共享緩存空間,并更新所述隊(duì)列的共享緩存占用。
步驟410:丟棄所述報(bào)文。
實(shí)施例四
圖5為本發(fā)明實(shí)施例中共享緩存空間的管理裝置組成結(jié)構(gòu)示意圖,如圖5所示,本發(fā)明實(shí)施例中共享緩存空間的管理裝置組成包括:確定模塊51、第一獲取模塊52、第一判斷模塊53、第二獲取模塊54及第二判斷模塊55;其中,
所述確定模塊51,用于基于報(bào)文的入隊(duì)請(qǐng)求確定所述報(bào)文對(duì)應(yīng)的入隊(duì)隊(duì)列;
所述第一獲取模塊52,用于獲取所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況;
所述第一判斷模塊53,用于基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷所述報(bào)文是否符合第一緩存條件,并 在所述報(bào)文符合第一緩存條件時(shí)觸發(fā)第二獲取模塊54;
所述第二獲取模塊54,用于當(dāng)所述報(bào)文符合第一緩存條件時(shí),獲取所述隊(duì)列的共享緩存空間占用估算值;
所述第二判斷模塊55,用于基于所述隊(duì)列的共享緩存空間占用估算值判斷所述報(bào)文是否符合第二緩存條件,并依據(jù)判斷結(jié)果確定是否緩存所述報(bào)文至所述共享緩存空間。
在一實(shí)施例中,所述第一獲取模塊52,還用于獲取所述隊(duì)列的優(yōu)先級(jí)信息,并基于所述隊(duì)列的優(yōu)先級(jí)獲取與所述隊(duì)列的優(yōu)先級(jí)對(duì)應(yīng)的共享緩存空間閾值水線。
在一實(shí)施例中,所述第一判斷模塊53,還用于基于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線及當(dāng)前共享緩存空間的空間占用情況,判斷當(dāng)前共享緩存空間的空間占用值是否小于共享緩存空間的最大值,且當(dāng)前共享緩存空間的空間占用值小于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第一緩存條件;否則,確定所述報(bào)文不符合第一緩存條件。
在一實(shí)施例中,所述第二獲取模塊54,還用于獲取當(dāng)前第一激活隊(duì)列的數(shù)目及所述隊(duì)列當(dāng)前的共享緩存空間占用值,并基于所述隊(duì)列當(dāng)前的共享緩存空間占用值得到所述報(bào)文入隊(duì)后所述隊(duì)列的預(yù)期共享緩存空間占用值;
基于所述隊(duì)列當(dāng)前的共享緩存空間占用值、所述隊(duì)列的預(yù)期共享緩存空間占用值、當(dāng)前第一激活隊(duì)列的數(shù)目以及當(dāng)前共享緩存空間的空間占用值,確定所述隊(duì)列的共享緩存空間占用估算值。
在一實(shí)施例中,所述第二判斷模塊55,還用于判斷所述隊(duì)列的共享緩存空間占用估算值是否不大于所述隊(duì)列對(duì)應(yīng)的共享緩存空間閾值水線,如果是,確定所述報(bào)文符合第二緩存條件;否則,確定所述報(bào)文不符合第二緩存條件。
在一實(shí)施例中,所述裝置還可以包括:設(shè)置模塊56,用于基于每個(gè)隊(duì)列的優(yōu)先級(jí)設(shè)置每個(gè)隊(duì)列可占用的共享緩存空間閾值水線等信息。
在本發(fā)明實(shí)施例中,所述共享緩存空間的管理裝置中的確定模塊51、第一獲取模塊52、第一判斷模塊53、第二獲取模塊54、第二判斷模塊55及設(shè)置模塊56,均可由終端中的中央處理器(cpu,centralprocessingunit)或數(shù)字信號(hào)處理器(dsp,digitalsignalprocessor)、或現(xiàn)場(chǎng)可編程門陣列(fpga,field programmablegatearray)、或集成電路(asic,applicationspecificintegratedcircuit)實(shí)現(xiàn)。
這里需要指出的是:以上涉及裝置的描述,與上述方法描述是類似的,同方法的有益效果描述,不做贅述。對(duì)于本發(fā)明所述裝置實(shí)施例中未披露的技術(shù)細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例的描述。
本領(lǐng)域的技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、只讀存儲(chǔ)器(rom,read-onlymemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說對(duì)相關(guān)技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、ram、rom、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。