專利名稱:分布式文件系統(tǒng)中通信的處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體地,涉及一種分布式文件系統(tǒng)中通信的處理方法和
裝直。
背景技術(shù):
分布式文件系統(tǒng)中通信系統(tǒng)作為系統(tǒng)各節(jié)點(diǎn)之間的通信基礎(chǔ),具有重要的意義。由于分布式文件系統(tǒng)只能通過通信系統(tǒng)實(shí)現(xiàn)節(jié)點(diǎn)間的控制命令和數(shù)據(jù)傳輸,因此,節(jié)點(diǎn)之間的通信性能直接決定了分布式文件系統(tǒng)的整體性能。分布式文件系統(tǒng)的通信操作分為通信發(fā)起方和通信接收方,通信發(fā)起方發(fā)起通信操作,通過網(wǎng)絡(luò)發(fā)送到通信接收方。通信接收方接收消息,將消息的相關(guān)信息(如源地址信息等)和消息內(nèi)容提交給用戶處理,等待用戶處理完成后發(fā)送處理完成的消息給通信發(fā)起方,完成一次通信過程。在傳統(tǒng)的分布式文件系統(tǒng)實(shí)現(xiàn)中,通信發(fā)起方一旦存在通信請(qǐng)求,將通信請(qǐng)求交由通信系統(tǒng)進(jìn)行消息收發(fā),通信接收方處理所有來自網(wǎng)絡(luò)的通信請(qǐng)求,接收數(shù)據(jù),并提交給用戶處理。而對(duì)于分布式文件系統(tǒng)來說,一般分為兩個(gè)部分客戶端和服務(wù)節(jié)點(diǎn)??蛻舳讼蚍?wù)節(jié)點(diǎn)以通信消息的方式 發(fā)出服務(wù)請(qǐng)求,服務(wù)節(jié)點(diǎn)內(nèi)部協(xié)同完成服務(wù)請(qǐng)求,并返回給客戶端。如果分布式文件系統(tǒng)的通信負(fù)載調(diào)度不均,就會(huì)導(dǎo)致客戶端不能夠充分利用服務(wù)節(jié)點(diǎn)的服務(wù)能力,導(dǎo)致整體分布式文件系統(tǒng)的性能下降。為了解決通信系統(tǒng)負(fù)載均衡的問題,現(xiàn)有系統(tǒng)存在如下幾種方法現(xiàn)有的負(fù)載均衡系統(tǒng)指的是客戶端在需要處理業(yè)務(wù)的時(shí)候,根據(jù)監(jiān)測(cè)到的服務(wù)器的負(fù)載情況,選擇向負(fù)載較輕的服務(wù)器發(fā)送服務(wù)請(qǐng)求,由服務(wù)器完成服務(wù)請(qǐng)求,并向客戶端返回結(jié)果。這種負(fù)載均衡系統(tǒng)能夠均衡的將客戶端的負(fù)載分發(fā)到多個(gè)不同的服務(wù)器端,從而使服務(wù)器的負(fù)載均衡。在通信系統(tǒng)的實(shí)現(xiàn)中,為了充分利用分布式文件系統(tǒng)的多網(wǎng)絡(luò)的性能,在發(fā)送消息時(shí),根據(jù)網(wǎng)絡(luò)的負(fù)載,在多個(gè)網(wǎng)卡對(duì)應(yīng)的鏈路中間選擇負(fù)載最輕的一條鏈路,進(jìn)行數(shù)據(jù)發(fā)送。該方式能夠充分利用多鏈路的通信帶寬,提高系統(tǒng)的整體通信能力。對(duì)于分布式文件系統(tǒng)中的通信來說,需要滿足以下需求—方面,分布式文件系統(tǒng)傳輸消息的優(yōu)先級(jí)和響應(yīng)時(shí)間需求是不同的,其中,存在優(yōu)先級(jí)為高,需要實(shí)時(shí)響應(yīng)的消息,如系統(tǒng)控制消息;也存在優(yōu)先級(jí)較低的消息,如數(shù)據(jù)傳輸消息、統(tǒng)計(jì)數(shù)據(jù)、監(jiān)控消息等。不同類型的消息對(duì)網(wǎng)絡(luò)的需求不同,需要網(wǎng)絡(luò)根據(jù)消息的優(yōu)先級(jí)調(diào)度,保證消息級(jí)別的服務(wù)質(zhì)量(Quality of Service,簡(jiǎn)稱QoS)。傳統(tǒng)的QoS保證一般都在硬件級(jí)別的通信消息單元級(jí)別實(shí)現(xiàn),考慮通信消息請(qǐng)求級(jí)別的較少。另一方面,點(diǎn)對(duì)點(diǎn)通信并不考慮整體的系統(tǒng)狀態(tài),可能會(huì)導(dǎo)致通信的不公平性,導(dǎo)致通信擁塞。例如N個(gè)節(jié)點(diǎn)同時(shí)向一個(gè)節(jié)點(diǎn)發(fā)送消息,其中某一個(gè)節(jié)點(diǎn)的數(shù)據(jù)量大,如果不進(jìn)行通信負(fù)載調(diào)度或者調(diào)度方法存在問題,就會(huì)使得接收方頻繁處理該節(jié)點(diǎn)請(qǐng)求,而無法處理其他節(jié)點(diǎn)的請(qǐng)求,出現(xiàn)公平性和隊(duì)頭阻塞等問題。
對(duì)于現(xiàn)有負(fù)載均衡系統(tǒng)來說,無法解決上述需求(1)當(dāng)客戶端非常多的時(shí)候,每一個(gè)服務(wù)器需要服務(wù)大量的客戶端請(qǐng)求,當(dāng)其中某一個(gè)客戶端的請(qǐng)求時(shí)間過長的時(shí)候,仍然會(huì)出現(xiàn)某些服務(wù)器負(fù)載不均衡的情況;(2)該負(fù)載均衡方法只適用于服務(wù)器端存在多個(gè)相同角色的節(jié)點(diǎn),而沒有考慮到服務(wù)器內(nèi)部之間的通信負(fù)載均衡問題。同時(shí)該方法只能以節(jié)點(diǎn)為單位,將客戶端的請(qǐng)求分配到不同節(jié)點(diǎn),沒有考慮到分布式系統(tǒng)中存在多套網(wǎng)絡(luò)負(fù)載均衡問題。同樣,網(wǎng)絡(luò)多鏈路選擇算法能夠解決發(fā)起方鏈路選擇的問題,充分利用網(wǎng)絡(luò)帶寬。但是由于只在發(fā)送端進(jìn)行消息控制,并不能保證系統(tǒng)中通信負(fù)載能夠均衡的分布到不同的節(jié)點(diǎn)上。針對(duì)相關(guān)技術(shù)中分布式文件系統(tǒng)消息傳輸和處理的效率低、處理過程負(fù)載均衡性差的問題,目前尚未提出有效的解決方案。
發(fā)明內(nèi)容
針對(duì)相關(guān)技術(shù)中分布式文件系統(tǒng)消息傳輸和處理的效率低、處理過程負(fù)載均衡性差的問題,本發(fā)明提出一種分布式文件系統(tǒng)中通信的處理方法和裝置,能夠提高傳輸?shù)男?,并且能夠?qū)ο⒌?接收和處理實(shí)現(xiàn)負(fù)載均衡。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式文件系統(tǒng)中通信的處理方法,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方,該處理方法包括接收方接收來自發(fā)起方的連接;接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類;對(duì)于分類后的每個(gè)類別的連接,接收方將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中;接收方從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的消息進(jìn)行處理。其中,該處理方法進(jìn)一步包括預(yù)先在發(fā)起方和接收方之間建立多個(gè)虛擬連路,并對(duì)每個(gè)虛擬連路設(shè)置優(yōu)先級(jí),其中,多個(gè)虛擬連路與連接一一對(duì)應(yīng)。并且,該處理方法進(jìn)一步包括發(fā)起方和接收方在各自本地進(jìn)行流量控制計(jì)數(shù),接收方根據(jù)流量控制計(jì)數(shù)的結(jié)果調(diào)整發(fā)起方的發(fā)送消息的速度。而且,在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例大于第一比例閾值的情況下,接收方通知發(fā)送方降低發(fā)送消息的速率;在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例小于第二比例閾值的情況下,接收方通知發(fā)送方增大發(fā)送消息的速率,第一比例閾值大于第二比例閾值;其中,消息收發(fā)總量等于發(fā)起方的流量控制計(jì)數(shù)與接收方的流量控制計(jì)數(shù)之和,并且,在發(fā)起方通過發(fā)送連接發(fā)送一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)減少一步長;在接收方通過接收到一條消息的情況下,接收方的流量控制計(jì)數(shù)增大一步長;在接收方處理一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)增加一步長,接收方的流量控制計(jì)數(shù)減小一步長。此外,接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類包括以下至少之根據(jù)發(fā)起方的地址進(jìn)行分類;根據(jù)接收連接隊(duì)列的優(yōu)先級(jí)進(jìn)行分類;根據(jù)接收連接隊(duì)列接收到消息的數(shù)量進(jìn)行分類。并且,接收方從接收連接隊(duì)列獲取連接包括接收方根據(jù)預(yù)先配置的調(diào)度方法從接收連接隊(duì)列獲取連接。而且,預(yù)先配置的調(diào)度方法包括以下任意之一以循環(huán)的方式從各個(gè)接收連接隊(duì)列上獲取連接;根據(jù)預(yù)先對(duì)連接設(shè)置的優(yōu)先級(jí)順序,以此從接收連接隊(duì)列上獲取連接;根據(jù)各個(gè)連接的消息數(shù)量,從各個(gè)接收連接隊(duì)列上獲取連接。其中,在從獲取的連接中提取的消息之后,處理方法還包括將該連接從所在的接收連接隊(duì)列中刪除。此外,在從獲取的連接中提取的消息之后,處理方法進(jìn)一步包括將該連接重新配置給分布式文件系統(tǒng)。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種分布式文件系統(tǒng)中通信的處理裝置,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方,其特征在于,處理裝置包括接收模塊,用于接收 來自發(fā)起方的連接;分類模塊,用于根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類;配置模塊,用于對(duì)于分類后的每個(gè)類別的連接,將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中;處理模塊,用于從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的消息進(jìn)行處理。本發(fā)明通過接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收到的來自發(fā)起方的連接進(jìn)行分類,將分類后的每個(gè)類別的連接放入相應(yīng)連接隊(duì)列,并根據(jù)隊(duì)列提取消息并完成處理,能夠有效提高傳輸?shù)男?,并且能夠?qū)ο⒌慕邮蘸吞幚韺?shí)現(xiàn)負(fù)載的均衡。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法的流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中建立虛擬連接的流程圖;圖3是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中的主動(dòng)流量控制反饋方式的流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中的接收方連接調(diào)度方式的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理裝置的框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種分布式文件系統(tǒng)中通信的處理方法,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方。如圖1所示,根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法包括步驟S101,接收方接收來自發(fā)起方的連接;步驟S103,接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類;步驟S105,對(duì)于分類后的每個(gè)類別的連接,接收方將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中;步驟S107,接收方從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的消息進(jìn)行處理。其中,該處理方法進(jìn)一步包括預(yù)先在發(fā)起方和接收方之間建立多個(gè)虛擬連路,并對(duì)每個(gè)虛擬連路設(shè)置優(yōu)先級(jí),其中,多個(gè)虛擬連路與連接一一對(duì)應(yīng)。如圖2所示,為根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中建立虛擬連接的流程圖。通信傳輸開始之前,應(yīng)用層發(fā)起方先將消息發(fā)送給通信層發(fā)起方,通信傳輸完成之后,通信層接收方再將消息發(fā)送給應(yīng)用層接收方。并且在點(diǎn)到點(diǎn)(發(fā)起方到接收方)之間建立多條虛擬傳輸?shù)耐ǖ溃瑢⒉煌愋偷南⒂成涞讲煌奶摂M連路上進(jìn)行傳輸,同時(shí)在接收方,按照優(yōu)先級(jí)的高低處理不同虛擬連路上的通信請(qǐng)求,具體方法為步驟SI,在點(diǎn)到點(diǎn)(發(fā)起方到接收方)之間建立連接的時(shí)候,根據(jù)虛擬鏈路的配置,在一對(duì)點(diǎn)(發(fā)起方和接收方)之間,建立多個(gè)不同優(yōu)先級(jí)的虛擬連路,每一個(gè)虛擬連路存在一個(gè)虛擬連路號(hào)VL,圖2中為編號(hào)VLl至編號(hào)VL5。步驟S2,發(fā)起方根據(jù)發(fā)送消息的優(yōu)先級(jí),根據(jù)映射規(guī)則,計(jì)算出發(fā)送消息對(duì)應(yīng)的虛擬連路號(hào)VL,并進(jìn)行相應(yīng)的消息發(fā)送。步驟S3,接收方在接收到虛擬連路的消息接收請(qǐng)求時(shí),按照虛擬連路的優(yōu)先級(jí)高低逐級(jí)接收消息,首先接收優(yōu)先級(jí)高的虛擬連路上的消息,然后再接收優(yōu)先級(jí)低的連接上的消息。這樣就保證了高優(yōu)先級(jí)的虛擬連路上的消息優(yōu)先被處理。圖2中,虛擬連路的優(yōu)先級(jí)從高到低的排序?yàn)閂L1、VL2、VL3、VL4、VL5,因此,接收方首先接收VLl上的消息,其次接收VL2上的消息,第三接收VL3上的消息,第四接收VL4上的消息,最后接收VL5上的消息。并且,該處理方法進(jìn)一步包括
發(fā)起方和接收方在各自本地進(jìn)行流量控制計(jì)數(shù),接收方根據(jù)流量控制計(jì)數(shù)的結(jié)果調(diào)整發(fā)起方的發(fā)送消息的速度。
而且,在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例大于第一比例閾值,則接收方通知發(fā)送方降低發(fā)送消息的速率;在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例小于第二比例閾值,則接收方通知發(fā)送方增大發(fā)送消息的速率;其中,消息收發(fā)總量等于發(fā)起方的流量控制計(jì)數(shù)與接收方的流量控制計(jì)數(shù)之和,并且,在發(fā)起方通過發(fā)送連接發(fā)送一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)減少一步長;在接收方通過接收到一條消息的情況下,接收方的流量控制計(jì)數(shù)增大一步長;在接收方處理一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)增加一步長,接收方的流量控制計(jì)數(shù)減小一步長。此外,接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類包括以下至少之根據(jù)發(fā)起方的地址進(jìn)行分類;根據(jù)接收連接隊(duì)列的優(yōu)先級(jí)進(jìn)行分類;根據(jù)接收連接隊(duì)列接收到消息的數(shù)量進(jìn)行分類。并且,接收方從接收連接隊(duì)列獲取連接包括接收方根據(jù)預(yù)先配置的調(diào)度方法從接收連接隊(duì)列獲取連接。而且,預(yù)先配置的調(diào)度方法包括以下任意之一以循環(huán)的方式從各個(gè)接收連接隊(duì)列上獲取連接;根據(jù)預(yù)先對(duì)連接設(shè)置的優(yōu)先級(jí)順序,以此從接收連接隊(duì)列上獲取連接;根據(jù)各個(gè)連接的消息數(shù)量,從各個(gè)接收連接隊(duì)列上獲取連接。其中,在從獲取的連接中提取的消息之后,處理方法還包括將該連接從所在的接收連接隊(duì)列中刪除。此外,在從獲取的連接中提取的消息之后,處理方法進(jìn)一步包括將該連接重新配置給分布式文件系統(tǒng)。在本發(fā)明中,主要運(yùn)用通信消息調(diào)度的方法,該方法分為主動(dòng)流量控制反饋方式和接收方調(diào)度方式兩部分,保證系統(tǒng)整體既能高效通信,又不出現(xiàn)通信負(fù)載不均的情況。圖3示出了根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中的主動(dòng)流量控制反饋方式的信令流程,具體過程如下在發(fā)起方的通路中設(shè)置發(fā)送流量控制計(jì)數(shù)值,在接收方的通路中設(shè)置接收流量控制計(jì)數(shù)值,用于表征發(fā)起方發(fā)送的消息請(qǐng)求個(gè)數(shù)和接收方已接收到的請(qǐng)求個(gè)數(shù)。初始化時(shí)發(fā)起方的控制計(jì)數(shù)值send_flow_nr為一個(gè)通路能夠發(fā)送的最大值f low_max,接收方的控制計(jì)數(shù)值recv_flow_nr為0。對(duì)于每一個(gè)發(fā)起方發(fā)送的消息,發(fā)起方首先查看發(fā)送流量控制計(jì)數(shù)值send_flow_nr是否為0,如果為0,表示通路上存在大量未應(yīng)答的通信消息,則將該發(fā)送消息排隊(duì),等待能夠發(fā)送時(shí)(發(fā)送流控send_flow_nr > 0)繼續(xù)發(fā)送。發(fā)起方成功發(fā)送一個(gè)通信請(qǐng)求,減少發(fā)起方的發(fā)送流量控制計(jì)數(shù)值send_flow_nr。發(fā)起方在接收到接收方的處理應(yīng)答之后,增加發(fā)送流控計(jì)數(shù)值send_flow_nr,并檢查消息發(fā)送隊(duì)列是否存在未發(fā)送消息,如果存在未發(fā)送消息,則將隊(duì)列中的消息按照本步驟進(jìn)行消息發(fā)送。消息收發(fā)總量等于發(fā)起方的流量控制計(jì)數(shù)與接收方的流量控制計(jì)數(shù)之和,并且,在發(fā)起方通過發(fā)送連接發(fā)送一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)send_flow_nr減少一步長;在接收方通過接收到一條消息的情況下,接收方的流量控制計(jì)數(shù)recv_flow_nr增大一步長;在接收方處理一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)send_flow_nr增加一步長,接收方的流量控制計(jì)數(shù)recv_flow_nr減小一步長。例如,接收方在成功的接收到一個(gè)發(fā)起方的通信請(qǐng)求,則將接收流量值recv_flow_nr+l,當(dāng)接收方處理完成該消息之后,應(yīng)答完成的時(shí)候,將接收流量值recv_flow_nr-l。當(dāng)接收方在接收通信請(qǐng)求時(shí),檢查接收流量控制計(jì)數(shù)值recv_flow_nr,例如,如果流量計(jì)數(shù)超過第一比例閾值(2*flow_max/3),則向發(fā)起方發(fā)送流量控制消息MSG_FL0WCTRL_D0WN,通知可以增加發(fā)送速度。如果流量控制計(jì)數(shù)值小于第二比例閾值flow_max/2,則向發(fā)起方發(fā)出流量控制消息MSG_FLOWCTRL_UP,攜帶當(dāng)前的接收方的流量控制計(jì)數(shù)recv_f low_nr,告知發(fā)起方需要提高發(fā)送速度;發(fā)起方在收到MSG_FL0WCTRL_D0WN之后,主動(dòng)降低發(fā)送速度;收到MSG_FLOWCTRL_UP,主動(dòng)增加發(fā)送速度。發(fā)送流量控制消息可以攜帶到待發(fā)送的消息中,降低流控消息帶來的消息收發(fā)開銷。同時(shí)發(fā)送方還可以存在一個(gè)發(fā)送消息鏈表,如果發(fā)起方不能發(fā)送,則將消息放置到發(fā)送消息鏈表,當(dāng)發(fā)送方接收到接收方的應(yīng)答,能夠繼續(xù)發(fā)送消息時(shí),從發(fā)送消息鏈表中獲取消息,繼續(xù)發(fā)送。通過這種消息流量的判斷機(jī)制并根據(jù)流量的檢測(cè)結(jié)果調(diào)整消息發(fā)送速度,能夠避免消息的擁塞,使得負(fù)載進(jìn)一步得到均衡,并且能夠提高消息傳輸和處理的效率。并且上述的流量判斷僅僅是具體的實(shí)例,在實(shí)際應(yīng)用中,可以設(shè)置其他的閾值用于流量的判斷。圖4示出了根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理方法中的接收方連接調(diào)度原理,其具體過程如下 在接收方設(shè)置多個(gè)不同類型的等待接收數(shù)據(jù)連接隊(duì)列,供連接調(diào)度算法使用。接收方在使用操作系統(tǒng)提供的多路復(fù)用等方法(如Linux中字符設(shè)備驅(qū)動(dòng)中的函數(shù)Poll和Select,或者Linux系統(tǒng)提供的Epoll接口)檢測(cè)到連接上存在需要接收的消息時(shí),將可接收的連接依據(jù)分類方法放置到不同的多連接隊(duì)列中,可以根據(jù)發(fā)起方的地址(例如圖4中的隊(duì)列1,包括連接1、連接4、連接5),接收連接隊(duì)列的優(yōu)先級(jí)(例如圖4中隊(duì)列2,包括連接2、連接3),接收連接隊(duì)列接收到消息的數(shù)量(例如圖4中隊(duì)列3,包括連接6)等進(jìn)行分類。接收方從多個(gè)等待接收數(shù)據(jù)連接的隊(duì)列中依照連接調(diào)度規(guī)則逐一獲取連接,從連接隊(duì)列上刪除,接收消息并進(jìn)行處理。調(diào)度規(guī)則(方法)包括以下任意之一(I)輪轉(zhuǎn)調(diào)度算法以循環(huán)的方式從各個(gè)接收連接隊(duì)列上獲取連接,例如,按照?qǐng)D4中的隊(duì)列分布,可以依次進(jìn)行如下獲取步驟從隊(duì)列I中獲取連接1,從隊(duì)列2中獲取連接2,從隊(duì)列3中獲取連接6,從隊(duì)列I中獲取連接4,從隊(duì)列2中獲取連接3,從隊(duì)列I中獲取連接5。(2)優(yōu)先級(jí)調(diào)度算法根據(jù)預(yù)先對(duì)連接設(shè)置的優(yōu)先級(jí)順序,以此從接收連接隊(duì)列上獲取連接,當(dāng)所有高優(yōu)先級(jí)的連接隊(duì)列上的連接都接收消息完成之后,才能處理低優(yōu)先級(jí)的連接隊(duì)列上的連接,例如,按照?qǐng)D4中的隊(duì)列分布,隊(duì)列I的優(yōu)先級(jí)最高,其次是隊(duì)列2,隊(duì)列3的優(yōu)先級(jí)最低,因此,首先從隊(duì)列I獲取連接,其次從隊(duì)列2獲取連接,最后從隊(duì)列3獲取連接。(3)帶寬平衡調(diào)度算法根據(jù)各個(gè)連接的消息數(shù)量,從各個(gè)接收連接隊(duì)列上獲取連接,對(duì)各個(gè)連接隊(duì)列上的數(shù)據(jù)接收請(qǐng)求,記錄該連接隊(duì)列上的消息長度或者消息數(shù)量,保證各個(gè)連接隊(duì)列接收的消息大小均衡,例如,按照?qǐng)D4中的隊(duì)列分布,隊(duì)列I中的消息長度最大,其次是隊(duì)列2,隊(duì)列3中的消息長度最小,因此,首先從隊(duì)列I獲取連接,其次從隊(duì)列2獲取連接,最后從隊(duì)列3獲取連接。接收方根據(jù)上一步驟中的調(diào)度規(guī)則對(duì)選擇(獲取)到的可接收連接進(jìn)行消息接收操作,并將該連接從所述接收連接隊(duì)列上刪除。接收方完成選中的連接上的消息接收后,將連接重新配置給所述分布式文件系統(tǒng),等待操作系統(tǒng)提供的多路復(fù)用通知下次接收操作。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種分布式文件系統(tǒng)中通信的處理裝置,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方。如圖5所示,根據(jù)本發(fā)明實(shí)施例的分布式文件系統(tǒng)中通信的處理裝置包括接收模塊51,用于接收來自發(fā)起方的連接;分類模塊52,用于根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類;配置模塊53,用于對(duì)于分類后的每個(gè)類別的連接,將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中;處理模塊54,用于從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的消息進(jìn)行處理。該處理裝置可以進(jìn)一步包括流量計(jì)數(shù)模塊,用于在本地進(jìn)行流量控制計(jì)數(shù);
該裝置還可以包括通知模塊,用于根據(jù)流量控制計(jì)數(shù)的結(jié)果通知發(fā)起方增大發(fā)送速度、和/或減小發(fā)送速度、和/或保持發(fā)送速度。而且,在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例大于第一比例閾值的情況下,則通知模塊通知發(fā)送方降低發(fā)送消息的速率;在接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例小于第二比例閾值,則通知模塊通知發(fā)送方增大發(fā)送消息的速率;其中,消息收發(fā)總量等于發(fā)起方的流量控制計(jì)數(shù)與接收方的流量控制計(jì)數(shù)之和,并且,在發(fā)起方通過發(fā)送連接發(fā)送一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)減少一步長;在接收方通過接收到一條消息的情況下,接收方的流量控制計(jì)數(shù)增大一步長;在接收方處理一條消息的情況下,發(fā)起方的流量控制計(jì)數(shù)增加一步長,接收方的流量控制計(jì)數(shù)減小一步長。此外,分類模塊根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類包括以下至少之根據(jù)發(fā)起方的地址進(jìn)行分類;根據(jù)接收連接隊(duì)列的優(yōu)先級(jí)進(jìn)行分類;根據(jù)接收連接隊(duì)列接收到消息的數(shù)量進(jìn)行分類。并且,接收方從接收連接隊(duì)列獲取連接包括處理模塊根據(jù)預(yù)先配置的調(diào)度方法從接收連接隊(duì)列獲取連接。而且,預(yù)先配置的調(diào)度方法包括以下任意之一以循環(huán)的方式從各個(gè)接收連接隊(duì)列上獲取連接;根據(jù)預(yù)先對(duì)連接設(shè)置的優(yōu)先級(jí)順序,以此從接收連接隊(duì)列上獲取連接;
根據(jù)各個(gè)連接的消息數(shù)量,從各個(gè)接收連接隊(duì)列上獲取連接。其中,在從獲取的連接中提取的消息之后,處理方法還包括處理模塊會(huì)將該連接從所在的接收連接隊(duì)列中刪除。根據(jù)本發(fā)明的上述裝置同樣能夠按照之前實(shí)施例中參照?qǐng)D2至4所描述的方法進(jìn)行工作,并達(dá)到相同的效果,具體過程和細(xì)節(jié)之前已經(jīng)描述,這里不再重復(fù)。綜上所述,借助于本發(fā)明的上述技術(shù)方案,本發(fā)明通過接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收到的來自發(fā)起方的連接進(jìn)行分類,將分類后的每個(gè)類別的連接放入相應(yīng)連接隊(duì)列,并根據(jù)隊(duì)列提取消息并完成處理,能夠有效提高傳輸?shù)男?,并且能夠?qū)ο⒌慕邮蘸吞幚韺?shí)現(xiàn)負(fù)載的均衡。此外,本發(fā)明還提出了分布式文件系統(tǒng)中的通信消息調(diào)度方案,能夠基于軟件的虛擬連接,主動(dòng)反饋的連接流量控制方法,能夠進(jìn)一步根據(jù)發(fā)送的消息量和接收并處理的消息量,對(duì)消息的接收和處理進(jìn)行優(yōu)化,實(shí)時(shí)調(diào)節(jié)消息的發(fā)送速率,有助于優(yōu)化利用網(wǎng)絡(luò)資源。以上所述僅 為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種分布式文件系統(tǒng)中通信的處理方法,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方,其特征在于,所述處理方法包括 所述接收方接收來自所述發(fā)起方的連接; 所述接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類; 對(duì)于分類后的每個(gè)類別的連接,所述接收方將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中; 所述接收方從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的所述消息進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述處理方法進(jìn)一步包括 預(yù)先在所述發(fā)起方和所述接收方之間建立多個(gè)虛擬連路,并對(duì)每個(gè)虛擬連路設(shè)置優(yōu)先級(jí),其中,所述多個(gè)虛擬連路與所述連接一一對(duì)應(yīng)。
3.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述處理方法進(jìn)一步包括 所述發(fā)起方和所述接收方在各自本地進(jìn)行流量控制計(jì)數(shù),所述接收方根據(jù)流量控制計(jì)數(shù)的結(jié)果調(diào)整所述發(fā)起方的發(fā)送消息的速度。
4.根據(jù)權(quán)利要求3所述的處理方法,其特征在于,在所述接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例大于第一比例閾值的情況下,所述接收方通知所述發(fā)送方降低發(fā)送消息的速率; 在所述接收方接收而未處理的消息量在消息收發(fā)總量中所占的比例小于第二比例閾值的情況下,所述接收方通知所述發(fā)送方增大發(fā)送消息的速率;其中,所述第一比例閾值大于所述第二比例閾值; 其中,所述消息收發(fā)總量等于所述發(fā)起方的流量控制計(jì)數(shù)與所述接收方的流量控制計(jì)數(shù)之和,并且,在所述發(fā)起方通過發(fā)送連接發(fā)送一條消息的情況下,所述發(fā)起方的流量控制計(jì)數(shù)減少一步長;在所述接收方通過接收到一條消息的情況下,所述接收方的流量控制計(jì)數(shù)增大一步長;在所述接收方處理一條消息的情況下,所述發(fā)起方的流量控制計(jì)數(shù)增加一步長,所述接收方的流量控制計(jì)數(shù)減小一步長。
5.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類包括以下至少之一 根據(jù)所述發(fā)起方的地址進(jìn)行分類; 根據(jù)所述接收連接隊(duì)列的優(yōu)先級(jí)進(jìn)行分類; 根據(jù)所述接收連接隊(duì)列接收到消息的數(shù)量進(jìn)行分類。
6.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述接收方從接收連接隊(duì)列獲取連接包括 所述接收方根據(jù)預(yù)先配置的調(diào)度方法從接收連接隊(duì)列獲取連接。
7.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,所述預(yù)先配置的調(diào)度方法包括以下任意之一 以循環(huán)的方式從各個(gè)接收連接隊(duì)列上獲取連接; 根據(jù)預(yù)先對(duì)連接設(shè)置的優(yōu)先級(jí)順序,以此從接收連接隊(duì)列上獲取連接; 根據(jù)各個(gè)連接的消息數(shù)量,從各個(gè)接收連接隊(duì)列上獲取連接。
8.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,在從獲取的連接中提取的消息之后,所述處理方法還包括 將該連接從所在的接收連接隊(duì)列中刪除。
9.根據(jù)權(quán)利要求1所述的處理方法,其特征在于,在從獲取的連接中提取的消息之后,所述處理方法進(jìn)一步包括 將該連接重新配置給所述分布式文件系統(tǒng)。
10.一種分布式文件系統(tǒng)中通信的處理裝置,該分布式文件系統(tǒng)中的通信操作包括通信的發(fā)起方和接收方,其特征在于,所述處理裝置包括 接收模塊,用于接收來自所述發(fā)起方的連接; 分類模塊,用于根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類; 配置模塊,用于對(duì)于分類后的每個(gè)類別的連接,將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中; 處理模塊,用于從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的所述消息進(jìn)行處理。
全文摘要
本發(fā)明公開了一種分布式文件系統(tǒng)中通信的處理方法和裝置,該處理方法包括接收方接收來自發(fā)起方的連接;接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收的連接進(jìn)行分類;對(duì)于分類后的每個(gè)類別的連接,接收方將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中;接收方從接收連接隊(duì)列獲取連接,從獲取的連接中提取的消息,并對(duì)提取的消息進(jìn)行處理。本發(fā)明通過接收方根據(jù)預(yù)先設(shè)置的分類方法對(duì)接收到的來自發(fā)起方的連接進(jìn)行分類,對(duì)于分類后的每個(gè)類別的連接,接收方將該類別的連接放入與該類別對(duì)應(yīng)的接收連接隊(duì)列中,接收方從接收連接隊(duì)列獲取的連接中提取消息并進(jìn)行處理,能夠使分布式文件系統(tǒng)中通信負(fù)載的傳輸效率提高并且均衡。
文檔編號(hào)H04L29/08GK103067474SQ201210564509
公開日2013年4月24日 申請(qǐng)日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者張攀勇, 苗艷超, 趙力 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司