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

一種可靠連接的通信方法及裝置與流程

文檔序號:12809874閱讀:427來源:國知局
一種可靠連接的通信方法及裝置與流程

本發(fā)明涉及存儲系統(tǒng)技術(shù)領(lǐng)域,更具體地說,涉及一種可靠連接的通信方法及裝置。



背景技術(shù):

infiniband是一種支持多并發(fā)連接的“轉(zhuǎn)換線纜”技術(shù),它具有高帶寬、低延遲等特點,自問世以來一直被應(yīng)用于高性能計算領(lǐng)域。infiniband支持多種通信服務(wù)和通信語義,通信服務(wù)包括:可靠連接(reliableconnection,rc)、不可靠連接(unreliableconnection,uc)以及不可靠數(shù)據(jù)報(unreliabledatagram,ud)等,通信語義包括通道語義和內(nèi)存語義,通道語義就是發(fā)送/接收模型,通信雙方都必須參加,內(nèi)存語義是基于單邊操作的通信模型。無論是哪種通信模型,通信雙方都必須先在本地創(chuàng)建隊列對(queuepair,qp),qp包括發(fā)送隊列和接收隊列。同時,通信雙方都必須在本地注冊一塊內(nèi)存區(qū)域來作為消息緩沖區(qū)。

rc是存儲系統(tǒng)中使用最多的通信服務(wù),它是一種面向連接的通信模式,一個qp只能與一個遠端的qp建立連接并通信。在這種情況下,如果一個進程需要和n個遠端進程通信,就需要創(chuàng)建n個qp,對于發(fā)送/接收操作來說,接收方的每個qp都需要預先投遞多個接收請求,即需要申請多塊接收緩沖區(qū)。假設(shè)每個qp預先投遞n個接收請求,每個請求接收緩沖區(qū)大小為s1,每個qp發(fā)送隊列深度為sd(隊列深度即為隊列可包含的最大消息個數(shù)),接收隊列深度為rd(此處rd必須大于n),工作請求大小為s2,當所有進程之間全部建立連接時,每個進程需要創(chuàng)建(n-1)個qp,則所需的空間為(n*s1)*(n-1)+(sd+rd)*s2*(n-1)。假設(shè)上述n=5,s1為8kb,s2為64字節(jié),sd和rd都為16,當規(guī)模是10k時,每個進程全連接需要420mb的空間,如果是多節(jié)點,還需要乘以節(jié)點數(shù)量,因此,隨著通信規(guī)模的變大,內(nèi)存的開銷會急劇增大,嚴重影響規(guī)模的可擴展性。

綜上所述,如何提供一種在可靠連接中降低內(nèi)存開銷的技術(shù)方案,是目前本領(lǐng)域技術(shù)人員亟待解決的問題。



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

本發(fā)明的目的是提供一種可靠連接的通信方法及裝置,以在可靠連接中降低內(nèi)存開銷,避免對規(guī)模可擴展性產(chǎn)生的影響。

為了實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:

一種可靠連接的通信方法,包括:

設(shè)置共享接收隊列,所述共享接收隊列與本地多個進程相對應(yīng);

為所述共享接收隊列申請共享緩沖區(qū);

如果需要接收遠端節(jié)點發(fā)送的消息,則利用所述共享接收隊列接收消息并將該消息放置到所述共享緩沖區(qū)中供對應(yīng)進程獲取。

優(yōu)選的,利用所述共享接收隊列接收消息之前,還包括:

將本地多個進程與各進程創(chuàng)建的隊列對號的對應(yīng)關(guān)系存儲至所述共享接收隊列中;

利用所述共享接收隊列接收消息并將該消息放置到共享緩沖區(qū)中供對應(yīng)進程獲取,包括:

利用所述共享接收隊列接收消息并獲取該消息中攜帶的隊列對號,將所述消息及對應(yīng)隊列對號放置到共享緩沖區(qū)中供與該隊列對號對應(yīng)的進程獲取。

優(yōu)選的,所述消息被對應(yīng)進程獲取之后,還包括:

刪除所述共享緩沖區(qū)中緩存的所述消息。

優(yōu)選的,為所述共享接收隊列申請共享緩沖區(qū),包括:

為所述共享接收隊列申請共享緩沖區(qū),所述共享緩沖區(qū)包括多個子緩沖區(qū),每個子緩沖區(qū)包含的緩沖塊的大小不同;

利用所述共享接收隊列將消息放置到所述共享緩沖區(qū)中,包括:

利用所述共享接收隊列將消息放置到與該消息大小對應(yīng)的子緩沖區(qū)中。

一種可靠連接的通信裝置,包括:

設(shè)置模塊,用于:設(shè)置共享接收隊列,所述共享接收隊列與本地多個進程相對應(yīng);

申請模塊,用于:為所述共享接收隊列申請共享緩沖區(qū);

接收模塊,用于:如果需要接收遠端節(jié)點發(fā)送的消息,則利用所述共享接收隊列接收消息并將該消息放置到所述共享緩沖區(qū)中供對應(yīng)進程獲取。

優(yōu)選的,還包括:

存儲模塊,用于:利用所述共享接收隊列接收消息之前,將本地多個進程與各進程創(chuàng)建的隊列對號的對應(yīng)關(guān)系存儲至所述共享接收隊列中;

接收模塊包括:

第一接收單元,用于:利用所述共享接收隊列接收消息并獲取該消息中攜帶的隊列對號,將所述消息及對應(yīng)隊列對號放置到共享緩沖區(qū)中供與該隊列對號對應(yīng)的進程獲取。

優(yōu)選的,還包括:

刪除模塊,用于:所述消息被對應(yīng)進程獲取之后,刪除所述共享緩沖區(qū)中緩存的所述消息。

優(yōu)選的,所述申請模塊包括:

申請單元,用于:為所述共享接收隊列申請共享緩沖區(qū),所述共享緩沖區(qū)包括多個子緩沖區(qū),每個子緩沖區(qū)包含的緩沖塊的大小不同;

所述接收模塊包括:

第二接收單元,用于:利用所述共享接收隊列將消息放置到與該消息大小對應(yīng)的子緩沖區(qū)中。

本發(fā)明提供了一種可靠連接的通信方法及裝置,其中該方法包括:設(shè)置共享接收隊列,所述共享接收隊列與本地多個進程相對應(yīng);為所述共享接收隊列申請共享緩沖區(qū);如果需要接收遠端節(jié)點發(fā)送的消息,則利用所述共享接收隊列接收消息并將該消息放置到所述共享緩沖區(qū)中供對應(yīng)進程獲取。本發(fā)明實施例提供的技術(shù)方案中,為本地的多個進程設(shè)置對應(yīng)的共享接收隊列及共享緩沖區(qū),以由其代替背景技術(shù)中每個進程均對應(yīng)一個接收隊列的方案,從而減少了需要申請的緩沖區(qū)的數(shù)目,避免了申請緩沖區(qū)時造成的浪費,大大降低了內(nèi)存開銷,避免了對規(guī)??蓴U展性產(chǎn)生的影響。

附圖說明

為了更清楚地說明本發(fā)明實施例或背景技術(shù)中的技術(shù)方案,下面將對實施例或背景技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明實施例提供的一種可靠連接的通信方法的流程圖;

圖2為本發(fā)明實施例提供的背景技術(shù)的可靠連接中隊列設(shè)置的示意圖;

圖3為本發(fā)明實施例提供的一種可靠連接的通信方法的可靠連接中隊列設(shè)置的示意圖;

圖4為本發(fā)明實施例提供的背景技術(shù)的可靠連接中節(jié)點連接的示意圖;

圖5為本發(fā)明實施例提供的一種可靠連接的通信方法的可靠連接中節(jié)點連接的示意圖;

圖6為本發(fā)明實施例提供的一種可靠連接的通信裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

請參閱圖1,其示出了本發(fā)明實施例提供的一種可靠連接的通信方法,可以包括以下步驟:

s11:設(shè)置共享接收隊列,共享接收隊列與本地多個進程相對應(yīng)。

需要說明的是,本發(fā)明實施例提供的一種可靠連接的通信方法可以應(yīng)用于任一節(jié)點,對應(yīng)的,本發(fā)明實施例提供的一種可靠連接的通信裝置可以集成在任一節(jié)點中。在任一節(jié)點中,每個進程均設(shè)置有一個用于通信的隊列對,該隊列對包括發(fā)送隊列及接收隊列,本申請中設(shè)置共享接收隊列(srq),也即將每個進程的隊列對共享一個接收隊列,由該共享接收隊列替代每個進程對應(yīng)的接收隊列。

s12:為共享接收隊列申請共享緩沖區(qū)。

設(shè)置共享接收隊列后,消息的接收及共享緩沖區(qū)的管理都集中通過共享接收隊列來實現(xiàn),而共享接收隊列與共享緩沖區(qū)是對應(yīng)存在的,從而共享接收隊列可以將接收到的消息放置到共享緩沖區(qū)的對應(yīng)位置處進行緩存。

s13:如果需要接收遠端節(jié)點發(fā)送的消息,則利用共享接收隊列接收消息并將該消息放置到共享緩沖區(qū)中供對應(yīng)進程獲取。

完成步驟s11及步驟s12的設(shè)置后,每當接收到遠端節(jié)點發(fā)送的消息時,則由共享接收隊列對該消息進行接收并放置到共享緩沖區(qū)中,而遠端節(jié)點發(fā)送消息所使用的連接可以與背景技術(shù)中對應(yīng)的連接一致,由此將消息放置到共享緩沖區(qū)后與該連接對應(yīng)的進程即會獲取該消息;當然也可以進行其他設(shè)置,均在本發(fā)明的保護范圍之內(nèi)。

具體來說,圖2為背景技術(shù)的可靠連接中隊列設(shè)置的示意圖,圖3為本發(fā)明實施例提供的一種可靠連接的通信方法的可靠連接中隊列設(shè)置的示意圖。由圖2中可以看出每個連接都需要申請一塊緩沖區(qū),內(nèi)存開銷比較大,并且由于申請的緩沖區(qū)大小都是預估的,容易申請過大造成浪費;由圖3中可以看出所有的接收隊列共用一個srq,只需要申請一個預投遞緩沖區(qū)(即共享緩沖區(qū)),大大減小了內(nèi)存開銷。假設(shè)srq隊列深度等于進程個數(shù),那么單個進程所需的空間為:s1*(n-1)+(sd+0)*s2*(n-1)+1*s2*(n-1),當通信規(guī)模為10k,s1大小為8kb,發(fā)送隊列深度為16時,單個進程所需的空間約為90.88mb,遠小于背景技術(shù)中同樣情況下,不使用srq時消耗的420mb空間。

本發(fā)明實施例提供的技術(shù)方案中,為本地的多個進程設(shè)置對應(yīng)的共享接收隊列及共享緩沖區(qū),以由其代替背景技術(shù)中每個進程均對應(yīng)一個接收隊列的方案,從而減少了需要申請的緩沖區(qū)的數(shù)目,避免了申請緩沖區(qū)時造成的浪費,大大降低了內(nèi)存開銷,避免了對規(guī)模可擴展性產(chǎn)生的影響。

本發(fā)明實施例提供的一種可靠連接的通信方法,利用共享接收隊列接收消息之前,還可以包括:

將本地多個進程與各進程創(chuàng)建的隊列對號的對應(yīng)關(guān)系存儲至共享接收隊列中。

利用共享接收隊列接收消息并將該消息放置到共享緩沖區(qū)中供對應(yīng)進程獲取,可以包括:

利用共享接收隊列接收消息并獲取該消息中攜帶的隊列對號,將消息及對應(yīng)隊列對號放置到共享緩沖區(qū)中供與該隊列對號對應(yīng)的進程獲取。

雖然本地的各進程均共享一個共享接收隊列,但是每個進程均為自己的消息隊列,即包含有發(fā)送隊列及共享接收隊列的隊列對設(shè)置有對應(yīng)的隊列對號;可以將各進程與進程創(chuàng)建的隊列對號的對應(yīng)關(guān)系發(fā)送至發(fā)送方,由此當發(fā)送方需要向任一進程發(fā)送消息時可以在消息中攜帶有隊列對號進行發(fā)送,由此共享接收隊列將消息放入到共享緩沖區(qū)后供與消息中攜帶的隊列對號對應(yīng)進程獲取,從而能夠準確將消息發(fā)送到其需要發(fā)送至的進程。圖4為背景技術(shù)的可靠連接中節(jié)點連接的示意圖;圖5為本發(fā)明實施例提供的一種可靠連接的通信方法的可靠連接中節(jié)點連接的示意圖,其中節(jié)點1表示發(fā)送方,節(jié)點2表示接收方,p0至p7分別表示對應(yīng)的進程。由圖4可以看出,如果想要按照不同進程間的連接實現(xiàn)消息的發(fā)送則需要節(jié)點1的每一個進程都與節(jié)點2的所有進程一一建立連接,當規(guī)模擴大的情況下,連接數(shù)會成倍增加,從而造成很大的開銷。而圖5對應(yīng)技術(shù)方案只需將節(jié)點1的每個進程與節(jié)點2的任一進程連接(圖5僅為示例中的一種連接方式),并在初始化時將進程創(chuàng)建的隊列對號與進程的對應(yīng)關(guān)系告訴節(jié)點1即可;由此節(jié)點1發(fā)送消息時只需在消息中攜帶需要發(fā)送至的隊列對號就能夠?qū)⑾l(fā)送至需要發(fā)送至的進程,如p0需要發(fā)送消息給p5,只需要在發(fā)送消息時指定接收消息的進程創(chuàng)建的隊列對號為p5對應(yīng)的隊列對號(也即接收消息的隊列對為進程p5創(chuàng)建)即可,盡管消息傳遞使用的是p0到p4的通道,但是實際上消息到達節(jié)點2后的接收者是p5進程,從而大大減小了可連接數(shù)。

本申請中這種技術(shù)方案可以稱為擴展可靠連接(extendedreliableconnection,xrc),將xrc引入到infiniband中,xrc除了具有rc類似的傳輸功能外,還允許發(fā)送方在發(fā)送消息時指定接收消息的進程;結(jié)合srq,xrc相當于支持一個本地qp可以和多個遠端的qp連接,即通過xrc,一個進程只需要一條連接就可以向遠端節(jié)點上的所有進程發(fā)送消息。由此,通過引入共享接收隊列和擴展可靠連接技術(shù)到infiniband服務(wù)中,接收方的qp共享一個srq,大大減少了申請的緩沖區(qū)的數(shù)目,xrc技術(shù)減少了節(jié)點間進程的連接數(shù)目,通過srq和xrc相結(jié)合的方法,顯著降低了內(nèi)存的開銷,提高了系統(tǒng)性能。

本發(fā)明實施例提供的一種可靠連接的通信方法,消息被對應(yīng)進程獲取之后,還可以包括:

刪除共享緩沖區(qū)中緩存的消息。

通過上述刪除操作能夠避免已經(jīng)過期的消息仍然占用共享緩沖區(qū)的情況出現(xiàn),保證了共享緩沖區(qū)中具有足夠的緩沖空間來實現(xiàn)緩存功能。

本發(fā)明實施例提供的一種可靠連接的通信方法,為共享接收隊列申請共享緩沖區(qū),可以包括:

為共享接收隊列申請共享緩沖區(qū),共享緩沖區(qū)包括多個子緩沖區(qū),每個子緩沖區(qū)包含的緩沖塊的大小不同;

利用共享接收隊列將消息放置到共享緩沖區(qū)中,可以包括:

利用共享接收隊列將消息放置到與該消息大小對應(yīng)的子緩沖區(qū)中。

需要說明的是,由于無法事先獲知發(fā)送方發(fā)送的消息的長度,因為一般都將緩沖區(qū)中包含的每個緩沖塊設(shè)置的較大,從而保證每個緩沖塊均可以正常實現(xiàn)消息的緩沖,本申請中將共享緩沖區(qū)分為多個子緩沖區(qū),且每個子緩沖區(qū)的緩沖塊大小不同,從而在接收到消息時,將該消息放置到能夠正常實現(xiàn)該消息的放置且大小與消息的大小最接近的子緩沖區(qū)的緩沖塊中,從而能夠大大減少空間浪費。舉例說明,如果共享緩沖區(qū)公有十個緩沖塊,并為了正常接收消息將每個緩沖塊設(shè)置為8k,則共需要80k的空間;而利用上述方式,可以包含2個子緩沖區(qū),第一個子緩沖區(qū)中包括5個2k的緩沖塊,而第二個子緩沖區(qū)中包括5個8k的緩沖塊,則共需要50k的空間,可見明顯減少了空間的浪費;且此時如果接收到1.9k的消息則可以將其放入第一個子緩沖區(qū)中,如果接收到7.9的消息則可以將其放入第二個子緩沖區(qū)中,以此類推。

本發(fā)明實施例還提供了一種可靠連接的通信裝置,如圖6所示,可以包括:

設(shè)置模塊11,用于:設(shè)置共享接收隊列,共享接收隊列與本地多個進程相對應(yīng);

申請模塊12,用于:為共享接收隊列申請共享緩沖區(qū);

接收模塊13,用于:如果需要接收遠端節(jié)點發(fā)送的消息,則利用共享接收隊列接收消息并將該消息放置到共享緩沖區(qū)中供對應(yīng)進程獲取。

本發(fā)明實施例提供的一種可靠連接的通信裝置,還可以包括:

存儲模塊,用于:利用共享接收隊列接收消息之前,將本地多個進程與各進程創(chuàng)建的隊列對號的對應(yīng)關(guān)系存儲至共享接收隊列中;

接收模塊包括:

第一接收單元,用于:利用共享接收隊列接收消息并獲取該消息中攜帶的隊列對號,將消息及對應(yīng)隊列對號放置到共享緩沖區(qū)中供與該隊列對號對應(yīng)的進程獲取。

本發(fā)明實施例提供的一種可靠連接的通信裝置,還可以包括:

刪除模塊,用于:消息被對應(yīng)進程獲取之后,刪除共享緩沖區(qū)中緩存的消息。

本發(fā)明實施例提供的一種可靠連接的通信裝置,申請模塊可以包括:

申請單元,用于:為共享接收隊列申請共享緩沖區(qū),共享緩沖區(qū)包括多個子緩沖區(qū),每個子緩沖區(qū)包含的緩沖塊的大小不同;

接收模塊包括:

第二接收單元,用于:利用共享接收隊列將消息放置到與該消息大小對應(yīng)的子緩沖區(qū)中。

本發(fā)明實施例提供的一種可靠連接的通信裝置中相關(guān)部分的說明請參見本發(fā)明實施例提供的一種可靠連接的通信方法中對應(yīng)部分的詳細說明,在此不再贅述。另外本發(fā)明實施例提供的一種可靠連接的通信裝置中各模塊及單元均可以根據(jù)實際需要進行合并或拆分等操作,如可以將第一接收單元及第二接收單元進行合并從而將兩個單元的功能合并等,均在本發(fā)明的保護范圍之內(nèi)。

對所公開的實施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
青海省| 乌苏市| 临澧县| 南郑县| 长白| 土默特右旗| 礼泉县| 珲春市| 大关县| 光泽县| 郧西县| 磴口县| 灵台县| 蒙山县| 洱源县| 康平县| 石河子市| 仪陇县| 阜南县| 曲松县| 新巴尔虎左旗| 从江县| 温宿县| 务川| 新闻| 邢台市| 淮滨县| 正阳县| 竹溪县| 博野县| 蕉岭县| 尤溪县| 榆中县| 安乡县| 凤翔县| 柯坪县| 成安县| 休宁县| 昌黎县| 靖边县| 克东县|