一種訪問(wèn)共享內(nèi)存的方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種訪問(wèn)共享內(nèi)存的方法和裝置,屬于計(jì)算機(jī)領(lǐng)域。該方法包括:獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),所述目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),所述共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口API;通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。該裝置包括:第一獲取模塊、調(diào)用模塊和訪問(wèn)模塊。本發(fā)明中訪問(wèn)節(jié)點(diǎn)可以直接從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
【專(zhuān)利說(shuō)明】一種訪問(wèn)共享內(nèi)存的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別涉及一種訪問(wèn)共享內(nèi)存的方法和裝置。
【背景技術(shù)】
[0002]在服務(wù)器集群中,共享內(nèi)存是指可以被服務(wù)器集群中的不同節(jié)點(diǎn)服務(wù)器訪問(wèn)的大容量?jī)?nèi)存,當(dāng)節(jié)點(diǎn)服務(wù)器本地內(nèi)存不足時(shí),節(jié)點(diǎn)服務(wù)器可以訪問(wèn)共享內(nèi)存,對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作。
[0003]現(xiàn)有技術(shù)中提供了一種訪問(wèn)共享內(nèi)存的方法,可以為:在計(jì)算機(jī)集群中,選取一個(gè)代理服務(wù)器,代理服務(wù)器對(duì)集群中的共享內(nèi)存進(jìn)行管理。當(dāng)集群中某個(gè)節(jié)點(diǎn)服務(wù)器的內(nèi)存不足時(shí),節(jié)點(diǎn)服務(wù)器發(fā)送調(diào)用請(qǐng)求給代理服務(wù)器,該調(diào)用請(qǐng)求攜帶節(jié)點(diǎn)服務(wù)器的標(biāo)識(shí);代理服務(wù)器接收節(jié)點(diǎn)服務(wù)器發(fā)送的調(diào)用請(qǐng)求,并根據(jù)該調(diào)用請(qǐng)求為節(jié)點(diǎn)服務(wù)器分配共享內(nèi)存,發(fā)送分配的共享內(nèi)存的標(biāo)識(shí)給節(jié)點(diǎn)服務(wù)器。節(jié)點(diǎn)服務(wù)器根據(jù)共享內(nèi)存的標(biāo)識(shí)遠(yuǎn)程調(diào)用共享內(nèi)存;并根據(jù)讀寫(xiě)算法對(duì)該調(diào)用的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
[0004]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
[0005]當(dāng)節(jié)點(diǎn)服務(wù)器本地內(nèi)存不足時(shí),需要發(fā)送請(qǐng)求給代理服務(wù)器,由代理服務(wù)器分配共享內(nèi)存,操作復(fù)雜;并且,節(jié)點(diǎn)服務(wù)器遠(yuǎn)程調(diào)用共享內(nèi)存的過(guò)程消耗大量系統(tǒng)資源,降低系統(tǒng)性能。
【發(fā)明內(nèi)容】
[0006]為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明提供了一種訪問(wèn)共享內(nèi)存的方法和裝置。所述技術(shù)方案如下:
[0007]第一方面,本發(fā)明提供了一種訪問(wèn)共享內(nèi)存的方法,所述方法包括:
[0008]獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),所述目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),所述共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
[0009]調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ;
[0010]通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀
寫(xiě)操作。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括:
[0012]通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)將所述待寫(xiě)入的數(shù)據(jù)寫(xiě)入所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
[0013]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括:
[0014]通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)和所述待讀出的數(shù)據(jù)的標(biāo)識(shí)從所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取所述待讀出的數(shù)據(jù);
[0015]接收所述目的節(jié)點(diǎn)發(fā)送的所述待讀出的數(shù)據(jù)。
[0016]結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),包括:
[0017]獲取所述共享內(nèi)存映射表;
[0018]從所述共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為所述目的節(jié)點(diǎn)的標(biāo)識(shí);
[0019]根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)獲取所述目的節(jié)點(diǎn);
[0020]根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)從所述共享內(nèi)存映射表中獲取與所述目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的所述共享內(nèi)存的標(biāo)識(shí)。
[0021]結(jié)合第一方面,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,所述方法還包括:
[0022]將自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共享內(nèi)存映射表中。
[0023]結(jié)合第一方面,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,所述方法還包括:
[0024]發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),所述注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使所述代理節(jié)點(diǎn)將所述自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共孚內(nèi)存映射表中。
[0025]結(jié)合第一方面的第三種可能,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述獲取所述共享內(nèi)存映射表,包括:
[0026]從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取所述共享內(nèi)存映射表;或者,
[0027]發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),所述第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收所述代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
[0028]結(jié)合第一方面的第六種可能,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn)之后,所述方法還包括:
[0029]判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到所述代理節(jié)點(diǎn)發(fā)送的所述共享內(nèi)存映射表;
[0030]如果否,發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),所述第二獲取請(qǐng)求攜帶所述自身節(jié)點(diǎn)的標(biāo)識(shí),所述備份代理節(jié)點(diǎn)為所述代理節(jié)點(diǎn)的備份節(jié)點(diǎn);
[0031]接收所述備份代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
[0032]結(jié)合第一方面的第三種可能,在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0033]每隔第二預(yù)設(shè)時(shí)間獲取所述共享內(nèi)存映射表;
[0034]將本地已存儲(chǔ)的所述共享內(nèi)存映射表更新為所述獲取的共享內(nèi)存映射表。
[0035]第二方面,本發(fā)明提供了一種訪問(wèn)共享內(nèi)存的裝置,所述裝置包括:
[0036]第一獲取模塊,用于獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),所述目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),所述共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
[0037]調(diào)用模塊,用于調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ;[0038]訪問(wèn)模塊,用于通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存進(jìn)行讀與操作。
[0039]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述訪問(wèn)模塊,包括:
[0040]第一發(fā)送單元,用于通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)將所述待寫(xiě)入的數(shù)據(jù)寫(xiě)入所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
[0041]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述訪問(wèn)模塊,包括:
[0042]第二發(fā)送單元,用于通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)和所述待讀出的數(shù)據(jù)的標(biāo)識(shí)從所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取所述待讀出的數(shù)據(jù);
[0043]接收單元,用于接收所述目的節(jié)點(diǎn)發(fā)送的所述待讀出的數(shù)據(jù)。
[0044]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述第一獲取模塊,包括:
[0045]第一獲取單元,用于獲取所述共享內(nèi)存映射表;
[0046]選擇單元,用于從所述共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為所述目的節(jié)點(diǎn)的標(biāo)識(shí);
[0047]第二獲取單元,用于根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)獲取所述目的節(jié)點(diǎn);
[0048]第三獲取單元,用于根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)從所述共享內(nèi)存映射表中獲取與所述目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的所述共享內(nèi)存的標(biāo)識(shí)。
[0049]結(jié)合第二方面,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0050]保存模塊,用于將自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共享內(nèi)存映射表中。
[0051]結(jié)合第二方面,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0052]第一發(fā)送模塊,用于發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),所述注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使所述代理節(jié)點(diǎn)將所述自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共孚內(nèi)存映射表中。
[0053]結(jié)合第二方面的第三種可能,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述第一獲取單元,用于從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取所述共享內(nèi)存映射表;或者,所述第一獲取單元,用于發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),所述第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收所述代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
[0054]結(jié)合第二方面的第六種可能,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0055]判斷模塊,用于判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到所述代理節(jié)點(diǎn)發(fā)送的所述共享內(nèi)存映射表;
[0056]如果否,第二發(fā)送模塊,用于發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),所述第二獲取請(qǐng)求攜帶所述自身節(jié)點(diǎn)的標(biāo)識(shí),所述備份代理節(jié)點(diǎn)為所述代理節(jié)點(diǎn)的備份節(jié)點(diǎn);
[0057]接收模塊,用于接收所述備份代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
[0058]結(jié)合第二方面的第三種可能,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0059]第二獲取模塊,用于每隔第二預(yù)設(shè)時(shí)間獲取所述共享內(nèi)存映射表;
[0060]更新模塊,用于將本地已存儲(chǔ)的所述共享內(nèi)存映射表更新為所述獲取的共享內(nèi)存映射表。
[0061]第三方面,本發(fā)明提供了一種訪問(wèn)共享內(nèi)存的裝置,所述裝置包括:存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)程序代碼,所述處理器用于調(diào)用所述存儲(chǔ)器中的程序代碼執(zhí)行如第一方面提供的訪問(wèn)共享內(nèi)存的方法。
[0062]在本發(fā)明實(shí)施例中,訪問(wèn)節(jié)點(diǎn)從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),不需要代理節(jié)點(diǎn)分配共享內(nèi)存,簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0063]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0064]圖1是本發(fā)明實(shí)施例1提供的一種訪問(wèn)共享內(nèi)存的方法流程圖;
[0065]圖2是本發(fā)明實(shí)施例2提供的一種訪問(wèn)共享內(nèi)存的方法流程圖;
[0066]圖3是本發(fā)明實(shí)施例3提供的一種訪問(wèn)共享內(nèi)存的裝置結(jié)構(gòu)示意圖;
[0067]圖4是本發(fā)明實(shí)施例4提供的一種訪問(wèn)共享內(nèi)存的另一裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0068]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0069]實(shí)施例1
[0070]本發(fā)明實(shí)施例提供了 一種訪問(wèn)共享內(nèi)存的方法。參見(jiàn)圖1,其中,該方法包括:
[0071]101:獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
[0072]102:調(diào)用 RDMA (Remote Direct Memory Access,遠(yuǎn)程直接內(nèi)存訪問(wèn))的 API(Application Programming Interface,應(yīng)用程序編程接口);
[0073]103:通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
[0074]在本發(fā)明實(shí)施例中,訪問(wèn)節(jié)點(diǎn)從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),不需要代理節(jié)點(diǎn)分配共享內(nèi)存,簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
[0075]實(shí)施例2
[0076]本發(fā)明實(shí)施例提供了一種訪問(wèn)共享內(nèi)存的方法。參見(jiàn)圖2,其中,該方法包括:[0077]201:訪問(wèn)節(jié)點(diǎn)將節(jié)點(diǎn)的標(biāo)識(shí)和共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共孚內(nèi)存映射表中;
[0078]其中,訪問(wèn)節(jié)點(diǎn)為服務(wù)器集群中的任一節(jié)點(diǎn),用于訪問(wèn)服務(wù)器集群中目的節(jié)點(diǎn)的共享內(nèi)存的節(jié)點(diǎn);目的節(jié)點(diǎn)為共享內(nèi)存映射表一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),目的節(jié)點(diǎn)為被訪問(wèn)節(jié)點(diǎn)。
[0079]其中,共享內(nèi)存映射表位于共享內(nèi)存管理組件中;共享內(nèi)存管理組件用于對(duì)共享內(nèi)存進(jìn)行管理,且一個(gè)服務(wù)器集群中存在一個(gè)或多個(gè)共享內(nèi)存管理組件。當(dāng)服務(wù)器集群中存在一個(gè)共享內(nèi)存管理組件時(shí),該共享內(nèi)存管理組件部署在代理節(jié)點(diǎn)中,代理節(jié)點(diǎn)為服務(wù)器集群中任一節(jié)點(diǎn);當(dāng)服務(wù)器集群中存在多個(gè)共享內(nèi)存管理組件時(shí),共享內(nèi)存管理組件可以部署在服務(wù)器集群中包括的每個(gè)節(jié)點(diǎn)上。
[0080]其中,如果訪問(wèn)節(jié)點(diǎn)上沒(méi)有安裝共享內(nèi)存管理組件,服務(wù)器集群中僅代理節(jié)點(diǎn)上安裝共孚內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)將節(jié)點(diǎn)的標(biāo)識(shí)和共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中的操作,可以為:
[0081 ] 訪問(wèn)節(jié)點(diǎn)發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),該注冊(cè)請(qǐng)求攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),代理節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)發(fā)送的注冊(cè)請(qǐng)求,并根據(jù)注冊(cè)請(qǐng)求獲取訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),將訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0082]其中,如果訪問(wèn)節(jié)點(diǎn)上安裝共享內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)將節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中的操作,可以為:
[0083]訪問(wèn)節(jié)點(diǎn)發(fā)送第一注冊(cè)請(qǐng)求給本節(jié)點(diǎn)的共享內(nèi)存管理組件,該第一注冊(cè)請(qǐng)求攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和訪問(wèn)節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí);共享內(nèi)存管理組件接收訪問(wèn)節(jié)點(diǎn)發(fā)送的第一注冊(cè)請(qǐng)求,并根據(jù)第一注冊(cè)請(qǐng)求獲取訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),將訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共孚內(nèi)存映射表中。
[0084]其中,將訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中的操作,可以為:
[0085]將訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系編碼為64bit數(shù)據(jù),64bit數(shù)據(jù)中包括的高16bit數(shù)據(jù)為訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí);64bit數(shù)據(jù)中包括的低48bit數(shù)據(jù)為共享內(nèi)存的標(biāo)識(shí)。
[0086]其中,需要說(shuō)明的是,注冊(cè)請(qǐng)求攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)和訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),注冊(cè)請(qǐng)求中還可以攜帶共享內(nèi)存的起始地址和長(zhǎng)度。第一注冊(cè)請(qǐng)求攜帶節(jié)點(diǎn)的標(biāo)識(shí)和節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí),第一注冊(cè)請(qǐng)求中還可以攜帶共享內(nèi)存的起始地址和長(zhǎng)度。
[0087]其中,服務(wù)器集群中每個(gè)節(jié)點(diǎn)均將節(jié)點(diǎn)的標(biāo)識(shí)和節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0088]其中,在步驟201之前,需要按照服務(wù)器集群中各節(jié)點(diǎn)的基礎(chǔ)設(shè)施要求進(jìn)行系統(tǒng)安裝和配置,本發(fā)明提供的訪問(wèn)共享內(nèi)存的方法,依賴(lài)于這些配置。
[0089]其中,系統(tǒng)配置包括:RDMA能力的鏈路層、操作系統(tǒng)層、驅(qū)動(dòng)層和協(xié)議棧層。
[0090]其中,RDMA能力的鏈路層主要由具有RDMA能力的硬件網(wǎng)絡(luò)接口卡提供;例如,無(wú)線帶寬 inf iniband 網(wǎng)絡(luò)接口 HCA (Host Channel Adapter,主機(jī)通道適配器)、RoCE (RDMAover Converged Ethernet,基于融合以太網(wǎng)的RDMA)網(wǎng)絡(luò)接口卡或者iWARP (InternetWide-Area RDMA Protocol,廣域因特網(wǎng)上的RDMA協(xié)議)網(wǎng)絡(luò)接口卡。
[0091]其中,操作系統(tǒng)層主要提供操作系統(tǒng)平臺(tái)。
[0092]其中,驅(qū)動(dòng)層主要針對(duì)硬件網(wǎng)絡(luò)接口卡提供底層設(shè)備驅(qū)動(dòng);例如,可以采用開(kāi)源OFED (OpenFabrics Enterprise Distribution, OpenFabrics 企業(yè)發(fā)行版),其中已包含的主流RDMA網(wǎng)絡(luò)接口卡的驅(qū)動(dòng)。
[0093]其中,協(xié)議棧層主要針對(duì)RDMA操作,提供協(xié)議處理;例如,可以采用開(kāi)源的OFED發(fā)布版。
[0094]202:訪問(wèn)節(jié)點(diǎn)獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí);
[0095]其中,目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn);共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0096]其中,當(dāng)訪問(wèn)節(jié)點(diǎn)的內(nèi)存不足時(shí),訪問(wèn)節(jié)點(diǎn)需要訪問(wèn)共享內(nèi)存。訪問(wèn)節(jié)點(diǎn)訪問(wèn)共享內(nèi)存時(shí),獲取需要訪問(wèn)的目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)。
[0097]其中,訪問(wèn)節(jié)點(diǎn)獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的操作,可以為:
[0098]訪問(wèn)節(jié)點(diǎn)獲取共享內(nèi)存映射表,從共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為目的節(jié)點(diǎn)的標(biāo)識(shí);訪問(wèn)節(jié)點(diǎn)根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)獲取目的節(jié)點(diǎn);并根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)從共孚內(nèi)存映射表中獲取與目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)。
[0099]其中,需要說(shuō)明的是,訪問(wèn)節(jié)點(diǎn)中實(shí)現(xiàn)存儲(chǔ)有目的節(jié)點(diǎn)的標(biāo)識(shí)和目的節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)可以從目的節(jié)點(diǎn)的標(biāo)識(shí)和目的節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系中獲取與目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的目的節(jié)點(diǎn)。
[0100]其中,從共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為目的節(jié)點(diǎn)的標(biāo)識(shí),根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)從共享內(nèi)存映射表中獲取共享內(nèi)存的標(biāo)識(shí)的操作,可以為:
[0101]從共享內(nèi)存映射表中選擇一個(gè)64bit數(shù)據(jù),解析64bit數(shù)據(jù)包括的高16bit數(shù)據(jù),得到目的節(jié)點(diǎn)的標(biāo)識(shí),解析64bit數(shù)據(jù)包括的低48bit數(shù)據(jù),得到共享內(nèi)存的標(biāo)識(shí)。
[0102]其中,如果訪問(wèn)節(jié)點(diǎn)上安裝共享內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)獲取共享內(nèi)存映射表的操作,可以為:
[0103]從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取共享內(nèi)存映射表。
[0104]其中,如果訪問(wèn)節(jié)點(diǎn)上沒(méi)有安裝共享內(nèi)存管理組件,服務(wù)器集群中僅代理節(jié)點(diǎn)上安裝共享內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)獲取共享內(nèi)存映射表的操作,可以為:
[0105]訪問(wèn)節(jié)點(diǎn)發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),該第一獲取請(qǐng)求攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí);代理節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)發(fā)送的第一獲取請(qǐng)求,并根據(jù)該第一獲取請(qǐng)求獲取訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí);代理節(jié)點(diǎn)根據(jù)訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送共享內(nèi)存映射表給訪問(wèn)節(jié)點(diǎn);訪問(wèn)節(jié)點(diǎn)接收代理節(jié)點(diǎn)根據(jù)訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0106]其中,訪問(wèn)節(jié)點(diǎn)發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn)之后,啟動(dòng)定時(shí)器,并判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到代理節(jié)點(diǎn)發(fā)送的共享內(nèi)存映射表;如果在第一預(yù)設(shè)時(shí)間內(nèi)沒(méi)有接收到代理節(jié)點(diǎn)發(fā)送的共享內(nèi)存映射表時(shí),訪問(wèn)節(jié)點(diǎn)發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),該第二獲取請(qǐng)求攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí),備份代理節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)發(fā)送的第二獲取請(qǐng)求,并根據(jù)第二獲取請(qǐng)求獲取訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí);備份代理節(jié)點(diǎn)根據(jù)訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送共享內(nèi)存映射表給訪問(wèn)節(jié)點(diǎn);訪問(wèn)節(jié)點(diǎn)接收備份代理節(jié)點(diǎn)根據(jù)訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0107]進(jìn)一步地,訪問(wèn)節(jié)點(diǎn)在第一預(yù)設(shè)時(shí)間內(nèi)接收到代理節(jié)點(diǎn)發(fā)送的共享內(nèi)存映射表時(shí),訪問(wèn)節(jié)點(diǎn)不發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn)。
[0108]其中,需要說(shuō)明的是,備份代理節(jié)點(diǎn)為服務(wù)器集群中除代理節(jié)點(diǎn)之外的任一節(jié)點(diǎn);且備份代理節(jié)點(diǎn)為代理節(jié)點(diǎn)的備份節(jié)點(diǎn);備份節(jié)點(diǎn)中存儲(chǔ)有和代理節(jié)點(diǎn)相同的數(shù)據(jù)庫(kù),即備份代理節(jié)點(diǎn)中存儲(chǔ)有和代理節(jié)點(diǎn)相同的共享內(nèi)存映射表。第一預(yù)設(shè)時(shí)間可以根據(jù)系統(tǒng)需要進(jìn)行設(shè)置并更改,在本發(fā)明實(shí)施例中對(duì)第一預(yù)設(shè)時(shí)間不作具體限定。
[0109]其中,在本發(fā)明實(shí)施例中,設(shè)置備份代理節(jié)點(diǎn),當(dāng)代理節(jié)點(diǎn)宕機(jī)時(shí),可以發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),以獲取共享內(nèi)存映射表,從而能夠保證系統(tǒng)的可靠性。
[0110]203:訪問(wèn)節(jié)點(diǎn)調(diào)用RDMA的API ;
[0111]其中,RDMA是一種網(wǎng)卡技術(shù),可以通過(guò)網(wǎng)絡(luò)將數(shù)據(jù)直接傳入另一臺(tái)服務(wù)器的某一塊內(nèi)存區(qū)域,并且,在數(shù)據(jù)傳輸過(guò)程中不需要消耗服務(wù)器的處理能力。
[0112]204:訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作;
[0113]其中,訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行寫(xiě)操作,可以為:
[0114]訪問(wèn)節(jié)點(diǎn)通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給目的節(jié)點(diǎn),目的節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)通過(guò)API發(fā)送的共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù),并根據(jù)共享內(nèi)存的標(biāo)識(shí)將待寫(xiě)入的數(shù)據(jù)寫(xiě)入共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
[0115]其中,訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀操作,可以為:
[0116]訪問(wèn)節(jié)點(diǎn)通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給目的節(jié)點(diǎn),目的節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)發(fā)送的共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí),并根據(jù)共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)從共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取待讀出的數(shù)據(jù)。目的節(jié)點(diǎn)發(fā)送待讀出的數(shù)據(jù)給訪問(wèn)節(jié)點(diǎn),訪問(wèn)節(jié)點(diǎn)接收目的節(jié)點(diǎn)發(fā)送的待讀出的數(shù)據(jù)。
[0117]其中,需要說(shuō)明的是,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,能夠降低系統(tǒng)性能,提高共享內(nèi)存的讀寫(xiě)性能。
[0118]其中,訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作之后,發(fā)送響應(yīng)消息給本節(jié)點(diǎn)的共享內(nèi)存管理組件或者代理節(jié)點(diǎn),該響應(yīng)消息攜帶訪問(wèn)節(jié)點(diǎn)的標(biāo)識(shí)。
[0119]其中,如果訪問(wèn)節(jié)點(diǎn)上沒(méi)有安裝共享內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作之后,訪問(wèn)節(jié)點(diǎn)發(fā)送第一響應(yīng)消息給代理節(jié)點(diǎn),該第一響應(yīng)消息攜帶目的節(jié)點(diǎn)的標(biāo)識(shí);代理節(jié)點(diǎn)接收訪問(wèn)節(jié)點(diǎn)發(fā)送的第一響應(yīng)消息,并根據(jù)第一響應(yīng)消息獲取目的節(jié)點(diǎn)的標(biāo)識(shí)。代理節(jié)點(diǎn)根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)將共享內(nèi)存映射表中目的節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系刪除。
[0120]其中,如果訪問(wèn)節(jié)點(diǎn)上安裝共享內(nèi)存管理組件時(shí),訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作之后,訪問(wèn)節(jié)點(diǎn)發(fā)送第二響應(yīng)消息給本節(jié)點(diǎn)的共享內(nèi)存管理組件,該第二響應(yīng)消息攜帶目的節(jié)點(diǎn)的標(biāo)識(shí);共享內(nèi)存管理組件接收訪問(wèn)節(jié)點(diǎn)發(fā)送的第二響應(yīng)消息,并根據(jù)第二響應(yīng)消息獲取目的節(jié)點(diǎn)的標(biāo)識(shí)。共享內(nèi)存管理組件根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)將共享內(nèi)存映射表中目的節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系刪除。
[0121]其中,訪問(wèn)節(jié)點(diǎn)通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作之后,將目的節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系刪除,能夠保證服務(wù)器集群中共享內(nèi)存與共享內(nèi)存映射表中的共享內(nèi)存一致。
[0122]205:訪問(wèn)節(jié)點(diǎn)每隔第二預(yù)設(shè)時(shí)間獲取共享內(nèi)存映射表,將本地已存儲(chǔ)的共享內(nèi)存映射表更新為獲取的共享內(nèi)存映射表。
[0123]其中,訪問(wèn)節(jié)點(diǎn)每隔第二預(yù)設(shè)時(shí)間更新一次共享內(nèi)存映射表,能夠保證數(shù)據(jù)的一致性,并保證獲取共享內(nèi)存的準(zhǔn)確性。
[0124]其中,需要說(shuō)明的是,訪問(wèn)節(jié)點(diǎn)獲取共享內(nèi)存映射表的操作和步驟202中獲取共享內(nèi)存映射表的步驟相同,在此不再贅述。第二預(yù)設(shè)時(shí)間可以根據(jù)系統(tǒng)需要進(jìn)行設(shè)置并更改,在本發(fā)明實(shí)施例中,對(duì)第二預(yù)設(shè)時(shí)間不作具體限定。
[0125]在本發(fā)明實(shí)施例中,訪問(wèn)節(jié)點(diǎn)從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),不需要代理節(jié)點(diǎn)分配共享內(nèi)存,簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
[0126]實(shí)施例3
[0127]本發(fā)明實(shí)施例提供了一種訪問(wèn)共享內(nèi)存的裝置。參見(jiàn)圖3,其中,該裝置包括:
[0128]第一獲取模塊301,用于獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
[0129]調(diào)用模塊302,用于調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ;
[0130]訪問(wèn)模塊303,用于通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
[0131 ] 進(jìn)一步地,訪問(wèn)模塊303,包括:
[0132]第一發(fā)送單元,用于通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給目的節(jié)點(diǎn),使目的節(jié)點(diǎn)根據(jù)共享內(nèi)存的標(biāo)識(shí)將待寫(xiě)入的數(shù)據(jù)寫(xiě)入共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
[0133]進(jìn)一步地,訪問(wèn)模塊303,包括:
[0134]第二發(fā)送單元,用于通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給目的節(jié)點(diǎn),使目的節(jié)點(diǎn)根據(jù)共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)從共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取待讀出的數(shù)據(jù);
[0135]接收單元,用于接收目的節(jié)點(diǎn)發(fā)送的待讀出的數(shù)據(jù)。
[0136]進(jìn)一步地,第一獲取模塊301,包括:
[0137]第一獲取單元,用于獲取共享內(nèi)存映射表;
[0138]選擇單元,用于從共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為目的節(jié)點(diǎn)的標(biāo)識(shí);
[0139]第二獲取單元,用于根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)獲取目的節(jié)點(diǎn);
[0140]第三獲取單元,用于根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)從共享內(nèi)存映射表中獲取與目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)。
[0141]進(jìn)一步地,該裝置還包括:[0142]保存模塊,用于將自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0143]進(jìn)一步地,該裝置還包括:
[0144]第一發(fā)送模塊,用于發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使代理節(jié)點(diǎn)將自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0145]進(jìn)一步地,第一獲取單元,用于從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取共享內(nèi)存映射表;或者,第一獲取單元,用于發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收代理節(jié)點(diǎn)根據(jù)自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0146]進(jìn)一步地,該裝置還包括:
[0147]判斷模塊,用于判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到代理節(jié)點(diǎn)發(fā)送的共享內(nèi)存映射表;
[0148]如果否,第二發(fā)送模塊,用于發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),第二獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí),備份代理節(jié)點(diǎn)為代理節(jié)點(diǎn)的備份節(jié)點(diǎn);
[0149]接收模塊,用于接收備份代理節(jié)點(diǎn)根據(jù)自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0150]進(jìn)一步地,該裝置還包括:
[0151]第二獲取模塊,用于每隔第二預(yù)設(shè)時(shí)間獲取共享內(nèi)存映射表;
[0152]更新模塊,用于將本地已存儲(chǔ)的共享內(nèi)存映射表更新為獲取的共享內(nèi)存映射表。
[0153]在本發(fā)明實(shí)施例中,訪問(wèn)節(jié)點(diǎn)從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),不需要代理節(jié)點(diǎn)分配共享內(nèi)存,簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
[0154]實(shí)施例4
[0155]本發(fā)明實(shí)施例提供了一種訪問(wèn)共享內(nèi)存的裝置。參見(jiàn)圖4,其中,該裝置包括:存儲(chǔ)器401和處理器402,該存儲(chǔ)器401存儲(chǔ)程序代碼,該處理器402用于調(diào)用存儲(chǔ)器中的程序代碼執(zhí)行如下訪問(wèn)共享內(nèi)存的方法:
[0156]獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系;
[0157]調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ;
[0158]通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
[0159]進(jìn)一步地,通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括:
[0160]通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給目的節(jié)點(diǎn),使目的節(jié)點(diǎn)根據(jù)共享內(nèi)存的標(biāo)識(shí)將待寫(xiě)入的數(shù)據(jù)寫(xiě)入共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
[0161]進(jìn)一步地,通過(guò)API對(duì)目的節(jié)點(diǎn)上的共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括:
[0162]通過(guò)API發(fā)送共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給目的節(jié)點(diǎn),使目的節(jié)點(diǎn)根據(jù)共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)從共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取待讀出的數(shù)據(jù);
[0163]接收目的節(jié)點(diǎn)發(fā)送的待讀出的數(shù)據(jù)。
[0164]進(jìn)一步地,獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),包括:
[0165]獲取共享內(nèi)存映射表;
[0166]從共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為目的節(jié)點(diǎn)的標(biāo)識(shí);
[0167]根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)獲取目的節(jié)點(diǎn);
[0168]根據(jù)目的節(jié)點(diǎn)的標(biāo)識(shí)從共享內(nèi)存映射表中獲取與目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)。
[0169]進(jìn)一步地,獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,方法還包括:
[0170]將自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0171]進(jìn)一步地,獲取目的節(jié)點(diǎn)和目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,該方法還包括:
[0172]發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使代理節(jié)點(diǎn)將自身節(jié)點(diǎn)的標(biāo)識(shí)和自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在共享內(nèi)存映射表中。
[0173]進(jìn)一步地,獲取共享內(nèi)存映射表,包括:
[0174]從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取共享內(nèi)存映射表;或者,
[0175]發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收代理節(jié)點(diǎn)根據(jù)自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0176]進(jìn)一步地,發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn)之后,該方法還包括:
[0177]判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到代理節(jié)點(diǎn)發(fā)送的共享內(nèi)存映射表;
[0178]如果否,發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),第二獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí),備份代理節(jié)點(diǎn)為代理節(jié)點(diǎn)的備份節(jié)點(diǎn);
[0179]接收備份代理節(jié)點(diǎn)根據(jù)自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的共享內(nèi)存映射表。
[0180]進(jìn)一步地,該方法還包括:
[0181]每隔第二預(yù)設(shè)時(shí)間獲取共享內(nèi)存映射表;
[0182]將本地已存儲(chǔ)的共享內(nèi)存映射表更新為獲取的共享內(nèi)存映射表。
[0183]在本發(fā)明實(shí)施例中,訪問(wèn)節(jié)點(diǎn)從共享內(nèi)存映射表中獲取目的節(jié)點(diǎn)的標(biāo)識(shí)和共享內(nèi)存的標(biāo)識(shí),不需要代理節(jié)點(diǎn)分配共享內(nèi)存,簡(jiǎn)化了訪問(wèn)共享內(nèi)存的處理過(guò)程;并且,訪問(wèn)節(jié)點(diǎn)通過(guò)調(diào)用API對(duì)共享內(nèi)存進(jìn)行讀寫(xiě)操作,不需要消耗系統(tǒng)資源,提高了共享內(nèi)存的讀寫(xiě)性能。
[0184]需要說(shuō)明的是:上述實(shí)施例提供的訪問(wèn)共享內(nèi)存的裝置在訪問(wèn)共享內(nèi)存時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的訪問(wèn)共享內(nèi)存的裝置與訪問(wèn)共享內(nèi)存的方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
[0185]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
[0186] 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種訪問(wèn)共享內(nèi)存的方法,其特征在于,所述方法包括: 獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),所述目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),所述共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系; 調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ; 通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括: 通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)將所述待寫(xiě)入的數(shù)據(jù)寫(xiě)入所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
3.如權(quán)利要求1所述的方法,其特征在于,所述通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作,包括: 通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)和所述待讀出的數(shù)據(jù)的標(biāo)識(shí)從所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取所述待讀出的數(shù)據(jù); 接收所述目的節(jié)點(diǎn)發(fā)送的所述待讀出的數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),包括: 獲取所述共享內(nèi)存映射表; 從所述共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為所述目的節(jié)點(diǎn)的標(biāo)識(shí); 根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)獲取所述目的節(jié)點(diǎn); 根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)從所述共享內(nèi)存映射表中獲取與所述目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的所述共享內(nèi)存的標(biāo)識(shí)。
5.如權(quán)利要求1所述的方法,其特征在于,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,所述方法還包括: 將自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共享內(nèi)存映射表中。
6.如權(quán)利要求1所述的方法,其特征在于,所述獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)之前,所述方法還包括: 發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),所述注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使所述代理節(jié)點(diǎn)將所述自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共孚內(nèi)存映射表中。
7.如權(quán)利要求4所述的方法,其特征在于,所述獲取所述共享內(nèi)存映射表,包括: 從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取所述共享內(nèi)存映射表;或者, 發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),所述第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收所述代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
8.如權(quán)利要求7所述的方法,其特征在于,所述發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn)之后,所述方法還包括: 判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到所述代理節(jié)點(diǎn)發(fā)送的所述共享內(nèi)存映射表; 如果否,發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),所述第二獲取請(qǐng)求攜帶所述自身節(jié)點(diǎn)的標(biāo)識(shí),所述備份代理節(jié)點(diǎn)為所述代理節(jié)點(diǎn)的備份節(jié)點(diǎn); 接收所述備份代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
9.如權(quán)利要求4所述的方法,其特征在于,所述方法還包括: 每隔第二預(yù)設(shè)時(shí)間獲取所述共享內(nèi)存映射表; 將本地已存儲(chǔ)的所述共享內(nèi)存映射表更新為所述獲取的共享內(nèi)存映射表。
10.一種訪問(wèn)共享內(nèi)存的裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于獲取目的節(jié)點(diǎn)和所述目的節(jié)點(diǎn)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),所述目的節(jié)點(diǎn)為共享內(nèi)存映射表中的一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的節(jié)點(diǎn),所述共享內(nèi)存映射表用于存儲(chǔ)節(jié)點(diǎn)的標(biāo)識(shí)與共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系; 調(diào)用模塊,用于調(diào)用遠(yuǎn)程直接內(nèi)存訪問(wèn)RDMA的應(yīng)用程序編程接口 API ; 訪問(wèn)模塊,用于通過(guò)所述API對(duì)所述目的節(jié)點(diǎn)上的所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存進(jìn)行讀寫(xiě)操作。
11.如權(quán)利要求10所述的裝置,其特征在于,所述訪問(wèn)模塊,包括: 第一發(fā)送單元,用于通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待寫(xiě)入的數(shù)據(jù)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)將所述待寫(xiě)入的數(shù)據(jù)寫(xiě)入所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中。
12.如權(quán)利要求10所述的裝置,其特征在于,所述訪問(wèn)模塊,包括: 第二發(fā)送單元,用于通過(guò)所述API發(fā)送所述共享內(nèi)存的標(biāo)識(shí)和待讀出的數(shù)據(jù)的標(biāo)識(shí)給所述目的節(jié)點(diǎn),使所述目的節(jié)點(diǎn)根據(jù)所述共享內(nèi)存的標(biāo)識(shí)和所述待讀出的數(shù)據(jù)的標(biāo)識(shí)從所述共享內(nèi)存的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存中獲取所述待讀出的數(shù)據(jù); 接收單元,用于接收所述目的節(jié)點(diǎn)發(fā)送的所述待讀出的數(shù)據(jù)。
13.如權(quán)利要求10所述的裝置,其特征在于,所述第一獲取模塊,包括: 第一獲取單兀,用于獲取所述共享內(nèi)存映射表; 選擇單元,用于從所述共享內(nèi)存映射表中選擇一個(gè)節(jié)點(diǎn)的標(biāo)識(shí)作為所述目的節(jié)點(diǎn)的標(biāo)識(shí); 第二獲取單元,用于根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)獲取所述目的節(jié)點(diǎn); 第三獲取單元,用于根據(jù)所述目的節(jié)點(diǎn)的標(biāo)識(shí)從所述共享內(nèi)存映射表中獲取與所述目的節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的所述共享內(nèi)存的標(biāo)識(shí)。
14.如權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 保存模塊,用于將自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共享內(nèi)存映射表中。
15.如權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 第一發(fā)送模塊,用于發(fā)送注冊(cè)請(qǐng)求給代理節(jié)點(diǎn),所述注冊(cè)請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共享內(nèi)存的標(biāo)識(shí),使所述代理節(jié)點(diǎn)將所述自身節(jié)點(diǎn)的標(biāo)識(shí)和所述自身節(jié)點(diǎn)的標(biāo)識(shí)對(duì)應(yīng)的共孚內(nèi)存的標(biāo)識(shí)的對(duì)應(yīng)關(guān)系保存在所述共孚內(nèi)存映射表中。
16.如權(quán)利要求13所述的裝置,其特征在于,所述第一獲取單元,用于從本地已存儲(chǔ)的數(shù)據(jù)庫(kù)中獲取所述共享內(nèi)存映射表;或者,所述第一獲取單元,用于發(fā)送第一獲取請(qǐng)求給代理節(jié)點(diǎn),所述第一獲取請(qǐng)求攜帶自身節(jié)點(diǎn)的標(biāo)識(shí);接收所述代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
17.如權(quán)利要求16所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于判斷在第一預(yù)設(shè)時(shí)間內(nèi)是否接收到所述代理節(jié)點(diǎn)發(fā)送的所述共享內(nèi)存映射表; 如果否,第二發(fā)送模塊,用于發(fā)送第二獲取請(qǐng)求給備份代理節(jié)點(diǎn),所述第二獲取請(qǐng)求攜帶所述自身節(jié)點(diǎn)的標(biāo)識(shí),所述備份代理節(jié)點(diǎn)為所述代理節(jié)點(diǎn)的備份節(jié)點(diǎn); 接收模塊,用于接收所述備份代理節(jié)點(diǎn)根據(jù)所述自身節(jié)點(diǎn)的標(biāo)識(shí)發(fā)送的所述共享內(nèi)存映射表。
18.如權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括: 第二獲取模塊,用于每隔第二預(yù)設(shè)時(shí)間獲取所述共享內(nèi)存映射表; 更新模塊,用于將本地已存儲(chǔ)的所述共享內(nèi)存映射表更新為所述獲取的共享內(nèi)存映射表。
19.一種訪問(wèn)共享內(nèi)存的裝置,其特征在于,所述裝置包括:存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)程序代碼,所述處理器用于調(diào)用所述存儲(chǔ)器中的程序代碼執(zhí)行如權(quán)利要求1-9任一所述的訪問(wèn)共享內(nèi)存的方法`。
【文檔編號(hào)】H04L29/06GK103607428SQ201310529433
【公開(kāi)日】2014年2月26日 申請(qǐng)日期:2013年10月30日 優(yōu)先權(quán)日:2013年10月30日
【發(fā)明者】楊帥, 袁學(xué)文 申請(qǐng)人:華為技術(shù)有限公司