一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法
【專利摘要】本發(fā)明提供一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法,屬于分布式集群存儲(chǔ)系統(tǒng)領(lǐng)域領(lǐng)域,該方法主要是在集群文件系統(tǒng)節(jié)點(diǎn)的消息隊(duì)列處理消息中,根據(jù)該消息的優(yōu)先級(jí)和其使用的配額,計(jì)算其他優(yōu)先級(jí)消息隊(duì)列對(duì)應(yīng)的配額,然后將計(jì)算后的配額反饋到其他優(yōu)先級(jí)隊(duì)列中,從而實(shí)現(xiàn)不同優(yōu)先級(jí)消息隊(duì)列的調(diào)度。
【專利說(shuō)明】一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法
[0001]【技術(shù)領(lǐng)域】
本發(fā)明涉及分布式集群存儲(chǔ)系統(tǒng)領(lǐng)域,具體地說(shuō)是一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法?!颈尘凹夹g(shù)】
[0002]集群文件系統(tǒng)中,所有節(jié)點(diǎn)間通過(guò)消息進(jìn)行通信,消息隊(duì)列的調(diào)度策略對(duì)整個(gè)集群的運(yùn)行有至關(guān)重要的作用。若消息隊(duì)列的調(diào)度策略設(shè)計(jì)不合理,那么高優(yōu)先級(jí)消息可能調(diào)度不及時(shí),然后得不到迅速處理,會(huì)導(dǎo)致集群文件系統(tǒng)認(rèn)為該節(jié)點(diǎn)狀態(tài)異常,然后集群文件系統(tǒng)會(huì)踢出該節(jié)點(diǎn),影響整個(gè)集群文件系統(tǒng)的運(yùn)行效率。
【發(fā)明內(nèi)容】
[0003]本發(fā)明是一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法,適用于分布式集群存儲(chǔ)系統(tǒng),能夠有效的優(yōu)化集群文件系統(tǒng)中不同優(yōu)先級(jí)消息的調(diào)度策略,提高不同優(yōu)先級(jí)消息隊(duì)列的調(diào)度效率,提升集群文件系統(tǒng)的消息處理速度。
[0004]一種消息隊(duì)列的設(shè)計(jì)和實(shí)現(xiàn)方法,通過(guò)對(duì)消息隊(duì)列中不同優(yōu)先級(jí)消息的調(diào)度機(jī)制進(jìn)行優(yōu)化,通過(guò)在消息隊(duì)列的設(shè)計(jì)中引入配額反饋機(jī)制,從而實(shí)現(xiàn)了消息隊(duì)列調(diào)度的自我
管理和自我調(diào)度。
[0005]該方法主要是在集群文件系統(tǒng)節(jié)點(diǎn)的消息隊(duì)列處理消息中,根據(jù)該消息的優(yōu)先級(jí)和其使用的配額,計(jì)算其他優(yōu)先級(jí)消息隊(duì)列對(duì)應(yīng)的配額,然后將計(jì)算后的配額反饋到其他優(yōu)先級(jí)隊(duì)列中,從而實(shí)現(xiàn)不同優(yōu)先級(jí)消息隊(duì)列的調(diào)度。
[0006]該方法包含如下部分:
1.配額。用于表示可以進(jìn)行消息調(diào)度的大小,一般是消息的長(zhǎng)度。
[0007]2.子消息隊(duì)列。該數(shù)據(jù)結(jié)構(gòu)用于保存消息隊(duì)列中同一優(yōu)先級(jí)的消息,同時(shí)保存該子消息隊(duì)列剩余的配額。當(dāng)消息隊(duì)列的剩余配額不足以處理下一個(gè)消息時(shí),該消息隊(duì)列將讓出調(diào)度。
[0008]3.消息隊(duì)列。該數(shù)據(jù)結(jié)構(gòu)用于保存所有的子消息隊(duì)列,同時(shí)保存所有子消息隊(duì)列的優(yōu)先級(jí)之和。消息隊(duì)列定義了消息的入隊(duì)方法和出隊(duì)方法。
[0009]a)入隊(duì)方法。當(dāng)有一個(gè)消息進(jìn)入隊(duì)列時(shí),首先消息隊(duì)列會(huì)查看有沒(méi)有該消息優(yōu)先級(jí)的子消息隊(duì)列。若沒(méi)有,創(chuàng)建該子消息隊(duì)列,將該優(yōu)先級(jí)加入原有的優(yōu)先級(jí)之和中。然后將消息放到子消息隊(duì)列的尾部。
[0010]b)出隊(duì)方法。當(dāng)處理一個(gè)消息時(shí),需要出隊(duì)一個(gè)消息。首先按照優(yōu)先級(jí)從低到高,遍歷所有的子消息隊(duì)列,查看子消息隊(duì)列是否有足夠的配額出隊(duì)消息。若有,按照遍歷順序,出隊(duì)消息,并在該子消息隊(duì)列的配額中減掉出隊(duì)消息的配額,然后根據(jù)該消息的配額,計(jì)算其他所有子消息隊(duì)列應(yīng)該得到的配額,公式為(子消息隊(duì)列優(yōu)先級(jí)*該消息使用配額/所有子隊(duì)列消息優(yōu)先級(jí)之和)+ 1,若出隊(duì)后,子消息隊(duì)列沒(méi)有消息,則刪除該子消息隊(duì)列;若所有的子消息隊(duì)列都沒(méi)有足夠的配額出隊(duì)消息,則按照優(yōu)先級(jí)從高到低,出隊(duì)消息,同樣根據(jù)該消息的配額,計(jì)算其他所有子消息隊(duì)列應(yīng)該得到的配額。[0011]本發(fā)明的有益效果是:
能夠有效的優(yōu)化集群文件系統(tǒng)中不同優(yōu)先級(jí)消息的調(diào)度策略,提高不同優(yōu)先級(jí)消息隊(duì)列的調(diào)度效率,提升集群文件系統(tǒng)的消息處理速度。
[0012]該方法通過(guò)對(duì)消息隊(duì)列中的消息增加配額反饋機(jī)制,實(shí)現(xiàn)消息隊(duì)列調(diào)度的自我管理,提高了消息隊(duì)列調(diào)度的靈活性,優(yōu)化了消息隊(duì)列的調(diào)度策略,保證了集群文件系統(tǒng)的運(yùn)行效率。
【專利附圖】
【附圖說(shuō)明】
[0013]附圖1為本發(fā)明的消息入隊(duì)示意圖;
附圖2為本發(fā)明的消息出隊(duì)示意圖。
【具體實(shí)施方式】
[0014]一、消息入隊(duì)
當(dāng)有消息進(jìn)入消息隊(duì)列時(shí),該消息需要帶有對(duì)應(yīng)的優(yōu)先級(jí)和使用的配額(一般使用消息的長(zhǎng)度)。根據(jù)消息的優(yōu)先級(jí),首先查找對(duì)應(yīng)優(yōu)先級(jí)的子消息隊(duì)列,若沒(méi)有對(duì)應(yīng)優(yōu)先級(jí)的子消息隊(duì)列,則創(chuàng)建子消息隊(duì)列,并計(jì)算所有子消息隊(duì)列之和。然后將消息放入對(duì)應(yīng)優(yōu)先級(jí)的子消息隊(duì)列。
[0015]二、消息出隊(duì)
當(dāng)需要調(diào)度一個(gè)消息出隊(duì)時(shí),首先遍歷所有的子消息隊(duì)列
(1)若有子消息隊(duì)列有足夠的配額可以用于出隊(duì)消息,則直接出隊(duì)消息,并消耗該子消息隊(duì)列的配額,并根據(jù)該消息的配額計(jì)算其他子消息對(duì)列應(yīng)該補(bǔ)償?shù)呐漕~,計(jì)算公式為(子消息隊(duì)列優(yōu)先級(jí)*該消息使用配額/所有子隊(duì)列消息優(yōu)先級(jí)之和)+ I。
[0016]消息出隊(duì)之后,若該子消息隊(duì)列已經(jīng)為空,則刪除該子消息隊(duì)列;
(2)若所有子消息隊(duì)列都沒(méi)有足夠的配額用于出隊(duì)消息,按照優(yōu)先級(jí)從高到低,出隊(duì)消息。出隊(duì)消息之后,同樣需要根據(jù)該消息的配額計(jì)算其他子消息對(duì)列應(yīng)該補(bǔ)償?shù)呐漕~。
[0017]根據(jù)以上對(duì)消息的出隊(duì)和入隊(duì)方式的描述,完成對(duì)一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)。
【權(quán)利要求】
1.一種消息隊(duì)列的設(shè)計(jì)與實(shí)現(xiàn)方法,其特征在于通過(guò)對(duì)消息隊(duì)列中不同優(yōu)先級(jí)消息的調(diào)度策略進(jìn)行優(yōu)化,通過(guò)在消息隊(duì)列的設(shè)計(jì)中引入配額反饋機(jī)制,從而實(shí)現(xiàn)了消息隊(duì)列調(diào)度的靈活調(diào)度和自我管理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法主要是在集群文件系統(tǒng)節(jié)點(diǎn)的消息隊(duì)列處理消息中,根據(jù)該消息的優(yōu)先級(jí)和其使用的配額,計(jì)算其他優(yōu)先級(jí)消息隊(duì)列對(duì)應(yīng)的配額,然后將計(jì)算后的配額反饋到其他優(yōu)先級(jí)隊(duì)列中,從而實(shí)現(xiàn)不同優(yōu)先級(jí)消息隊(duì)列的調(diào)度。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于該方法包含如下部分: 1)、配額,用于表示可以進(jìn)行消息調(diào)度的大小,一般是消息的長(zhǎng)度; 2)、子消息隊(duì)列,該數(shù)據(jù)結(jié)構(gòu)用于保存消息隊(duì)列中同一優(yōu)先級(jí)的消息,同時(shí)保存該子消息隊(duì)列剩余的配額;當(dāng)消息隊(duì)列的剩余配額不足以處理下一個(gè)消息時(shí),該消息隊(duì)列將讓出調(diào)度; 3)、消息隊(duì)列,該數(shù)據(jù)結(jié)構(gòu)用于保存所有的子消息隊(duì)列,同時(shí)保存所有子消息隊(duì)列的優(yōu)先級(jí)之和;消息隊(duì)列定義了消息的入隊(duì)方法和出隊(duì)方法; a)入隊(duì)方法,當(dāng)有一個(gè)消息進(jìn)入隊(duì)列時(shí),首先消息隊(duì)列會(huì)查看有沒(méi)有該消息優(yōu)先級(jí)的子消息隊(duì)列;若沒(méi)有,創(chuàng)建該子消息隊(duì)列,將該優(yōu)先級(jí)加入原有的優(yōu)先級(jí)之和中,然后將消息放到子消息隊(duì)列的尾部; b)出隊(duì)方法,當(dāng)處理一個(gè)消息時(shí),需要出隊(duì)一個(gè)消息;首先按照優(yōu)先級(jí)從低到高,遍歷所有的子消息隊(duì)列,查看子消息隊(duì)列是否有足夠的配額出隊(duì)消息;若有,按照遍歷順序,出隊(duì)消息,并在該子消息隊(duì)列的配 額中減掉出隊(duì)消息的配額,然后根據(jù)該消息的配額,計(jì)算其他所有子消息隊(duì)列應(yīng)該得到的配額,公式為(子消息隊(duì)列優(yōu)先級(jí)*該消息使用配額/所有子隊(duì)列消息優(yōu)先級(jí)之和)+ 1,若出隊(duì)后,子消息隊(duì)列沒(méi)有消息,則刪除該子消息隊(duì)列;若所有的子消息隊(duì)列都沒(méi)有足夠的配額出隊(duì)消息,則按照優(yōu)先級(jí)從高到低,出隊(duì)消息,同樣根據(jù)該消息的配額,計(jì)算其他所有子消息隊(duì)列應(yīng)該得到的配額。
【文檔編號(hào)】G06F9/48GK103902370SQ201410092389
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2014年3月14日 優(yōu)先權(quán)日:2014年3月14日
【發(fā)明者】侯斌 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司