国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種訪問(wèn)共享內(nèi)存的方法和裝置制造方法

      文檔序號(hào):7775151閱讀:222來(lái)源:國(guó)知局
      一種訪問(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ù)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1