国产精品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>

      一種圖計(jì)算方法和裝置與流程

      文檔序號(hào):40403281發(fā)布日期:2024-12-20 12:27閱讀:3來源:國(guó)知局
      一種圖計(jì)算方法和裝置與流程

      本說明書實(shí)施例屬于圖計(jì)算,尤其涉及一種圖計(jì)算方法和裝置。


      背景技術(shù):

      1、在一些圖系統(tǒng)中,通常會(huì)以時(shí)間段作為劃分依據(jù),將一段時(shí)間內(nèi)產(chǎn)生的圖數(shù)據(jù)保存為一個(gè)子圖,以降低系統(tǒng)的內(nèi)存消耗和數(shù)據(jù)冗余程度。其中,每個(gè)子圖通常稱為一個(gè)圖數(shù)據(jù)分片。

      2、在實(shí)際應(yīng)用中,由于由若干個(gè)圖數(shù)據(jù)分片組成的圖數(shù)據(jù),通常非常龐大并且數(shù)據(jù)內(nèi)容不斷的變化;因此,當(dāng)針對(duì)圖數(shù)據(jù)的圖分析計(jì)算,涉及到多個(gè)圖數(shù)據(jù)分片時(shí),通常需要將該多個(gè)圖數(shù)據(jù)分片的圖結(jié)構(gòu)重新進(jìn)行合并,然后在合并之后的圖數(shù)據(jù)的基礎(chǔ)之上繼續(xù)完成后續(xù)的圖計(jì)算。

      3、然而,對(duì)多個(gè)圖數(shù)據(jù)分片進(jìn)行合并的操作,通常會(huì)為系統(tǒng)帶來非常大的額外開銷。


      技術(shù)實(shí)現(xiàn)思路

      1、本說明書中提出一種圖計(jì)算方法,應(yīng)用于執(zhí)行圖計(jì)算的計(jì)算系統(tǒng),所述方法包括:

      2、基于預(yù)設(shè)的圖算法對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的各個(gè)圖數(shù)據(jù)分片分別進(jìn)行離線的圖計(jì)算,并保存針對(duì)所述圖數(shù)據(jù)分片進(jìn)行圖計(jì)算得到的圖計(jì)算結(jié)果;其中,所述圖算法為輸出的圖計(jì)算結(jié)果具有單調(diào)性的圖算法;

      3、響應(yīng)于對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的在預(yù)設(shè)的時(shí)間窗口內(nèi)產(chǎn)生的多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的計(jì)算請(qǐng)求,獲取針對(duì)所述多個(gè)圖數(shù)據(jù)分片分別進(jìn)行離線的圖計(jì)算得到的多個(gè)圖計(jì)算結(jié)果;

      4、基于所述多個(gè)圖計(jì)算結(jié)果計(jì)算針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果,并在所述中間計(jì)算結(jié)果的基礎(chǔ)上,基于所述預(yù)設(shè)的圖算法繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行在線的圖計(jì)算,以得到針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的最終計(jì)算結(jié)果。

      5、可選的,所述圖數(shù)據(jù)分片為在預(yù)設(shè)的單位時(shí)長(zhǎng)周期內(nèi)產(chǎn)生的圖數(shù)據(jù)。

      6、可選的,所述數(shù)據(jù)庫(kù)中存儲(chǔ)的圖數(shù)據(jù)分片,按照所述單位時(shí)長(zhǎng)周期,周期性的導(dǎo)入所述數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ)。

      7、可選的,基于預(yù)設(shè)的圖算法對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的圖數(shù)據(jù)分片進(jìn)行離線的圖計(jì)算,包括:

      8、響應(yīng)于所述數(shù)據(jù)庫(kù)中導(dǎo)入了圖數(shù)據(jù)分片,基于預(yù)設(shè)的圖算法對(duì)導(dǎo)入的所述圖數(shù)據(jù)分片進(jìn)行離線的圖計(jì)算。

      9、可選的,所述中間計(jì)算結(jié)果為所述多個(gè)圖計(jì)算結(jié)果中,與針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的最終計(jì)算結(jié)果的誤差最小的圖計(jì)算結(jié)果。

      10、可選的,所述數(shù)據(jù)庫(kù)中存儲(chǔ)的各個(gè)圖數(shù)據(jù)分片包含的至少部分頂點(diǎn)為相同的頂點(diǎn);所述圖算法包括迭代圖算法;其中,所述迭代圖算法包括通過遍歷所述圖數(shù)據(jù)中包含的具有鄰居關(guān)系的頂點(diǎn)進(jìn)行迭代式的圖計(jì)算的圖算法。

      11、可選的,所述多個(gè)圖數(shù)據(jù)分片在所述數(shù)據(jù)庫(kù)中離散存儲(chǔ);所述計(jì)算系統(tǒng)維護(hù)了與在所述數(shù)據(jù)庫(kù)中離散存儲(chǔ)的所述多個(gè)圖數(shù)據(jù)分片對(duì)應(yīng)的全局圖結(jié)構(gòu);其中,所述全局圖結(jié)構(gòu)用于描述所述多個(gè)圖數(shù)據(jù)分片中包含的具有鄰居關(guān)系的頂點(diǎn)在所述多個(gè)圖數(shù)據(jù)分片中的全局的鄰居關(guān)系;所述全局的鄰居關(guān)系包括所述頂點(diǎn)與該頂點(diǎn)在所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)之間的鄰居關(guān)系;

      12、在所述中間計(jì)算結(jié)果的基礎(chǔ)上,基于所述預(yù)設(shè)的圖算法繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行在線的圖計(jì)算,包括:

      13、在所述中間計(jì)算結(jié)果的基礎(chǔ)上,基于所述預(yù)設(shè)的圖算法在所述全局圖結(jié)構(gòu)中遍歷所述多個(gè)數(shù)據(jù)圖分片中包含的具有鄰居關(guān)系的頂點(diǎn),在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)所有的鄰居頂點(diǎn),以繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片包含的頂點(diǎn)進(jìn)行在線的圖計(jì)算。

      14、可選的,所述全局圖結(jié)構(gòu)為基于所述各個(gè)圖數(shù)據(jù)分片中包含的頂點(diǎn),和該頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)之間的鄰居關(guān)系構(gòu)建的全局的圖結(jié)構(gòu);

      15、基于所述預(yù)設(shè)的圖算法在所述中間計(jì)算結(jié)果的基礎(chǔ)上,繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行在線的圖計(jì)算之前,還包括:

      16、獲取所述各個(gè)圖數(shù)據(jù)分片中包含的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn);

      17、基于獲取到的所述各個(gè)圖數(shù)據(jù)分片中包含的頂點(diǎn)和所述所有的鄰居頂點(diǎn)之間的鄰居關(guān)系,構(gòu)建所述全局圖結(jié)構(gòu)。

      18、可選的,所述全局圖結(jié)構(gòu)采用鄰接表的結(jié)構(gòu);其中,所述鄰接表中維護(hù)了所述多個(gè)圖數(shù)據(jù)分片中包含的具有鄰居關(guān)系的頂點(diǎn)的頂點(diǎn)標(biāo)識(shí),以及與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表;其中,所述鏈表包含指向與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)的指針;

      19、在所述全局圖結(jié)構(gòu)中遍歷所述多個(gè)數(shù)據(jù)圖分片中包含的具有鄰居關(guān)系的頂點(diǎn),在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn),包括:

      20、遍歷所述鄰接表中維護(hù)的所述頂點(diǎn)標(biāo)識(shí),并基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,進(jìn)一步訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)。

      21、可選的,所述鏈表包含指向與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的首個(gè)鄰居頂點(diǎn)的指針,以及與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的其它鄰居頂點(diǎn)相對(duì)于所述首個(gè)鄰居頂點(diǎn)的指針偏移;

      22、基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,進(jìn)一步訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn),包括:

      23、基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的首個(gè)鄰居頂點(diǎn),以及基于所述鏈表中包含的指針偏移,訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的其它鄰居頂點(diǎn)。

      24、可選的,基于預(yù)設(shè)的圖算法對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的任一目標(biāo)圖數(shù)據(jù)分片進(jìn)行圖計(jì)算,包括:

      25、在從所述目標(biāo)圖數(shù)據(jù)分片包含的頂點(diǎn)中指定的需要參與迭代的初始的激活頂點(diǎn)集合的基礎(chǔ)上,迭代執(zhí)行預(yù)設(shè)的計(jì)算過程,直到無法確定出需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)或者所述迭代的計(jì)算滿足預(yù)設(shè)的算法收斂條件;

      26、其中,所述預(yù)設(shè)的計(jì)算過程包括:

      27、基于所述預(yù)設(shè)的圖算法針對(duì)所述初始的激活頂點(diǎn)集合中的激活頂點(diǎn)進(jìn)行圖計(jì)算,得到所述激活頂點(diǎn)集合中的激活頂點(diǎn)的圖計(jì)算結(jié)果;

      28、在所述目標(biāo)圖數(shù)據(jù)分片中遍歷所述激活頂點(diǎn)集合中的激活頂點(diǎn)的鄰居頂點(diǎn),基于所述激活頂點(diǎn)集合中的激活頂點(diǎn)的圖計(jì)算結(jié)果,確定遍歷到的所述激活頂點(diǎn)的鄰居頂點(diǎn),是否滿足與所述圖算法對(duì)應(yīng)的激活條件;

      29、將滿足所述激活條件的鄰居頂點(diǎn)確定為新的激活節(jié)點(diǎn),并基于確定出的新的激活頂點(diǎn)進(jìn)一步創(chuàng)建需要繼續(xù)參與下一輪的迭代的激活頂點(diǎn)集合。

      30、可選的,所述多個(gè)圖計(jì)算結(jié)果包括針對(duì)所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn)進(jìn)行離線的圖計(jì)算得到的,該頂點(diǎn)分別在所述各個(gè)圖數(shù)據(jù)分片中的圖計(jì)算結(jié)果;

      31、基于所述多個(gè)圖計(jì)算結(jié)果計(jì)算針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果,包括:

      32、基于所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn),分別在所述各個(gè)圖數(shù)據(jù)分片中的圖計(jì)算結(jié)果,計(jì)算針對(duì)所述頂點(diǎn)進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果。

      33、可選的,在所述中間計(jì)算結(jié)果的基礎(chǔ)上,基于所述預(yù)設(shè)的圖算法在所述全局圖結(jié)構(gòu)中遍歷所述多個(gè)數(shù)據(jù)圖分片中包含的具有鄰居關(guān)系的頂點(diǎn),在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)所有的鄰居頂點(diǎn),以繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片包含的頂點(diǎn)進(jìn)行在線的圖計(jì)算,包括:

      34、基于所述中間計(jì)算結(jié)果,從所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn)中,為所述各個(gè)圖數(shù)據(jù)分片分別確定出初始的激活頂點(diǎn)集合;

      35、在所述初始的激活頂點(diǎn)集合的基礎(chǔ)上,針對(duì)所述各個(gè)圖數(shù)據(jù)分片,分別迭代執(zhí)行預(yù)設(shè)的計(jì)算過程,直到無法確定出需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)或者所述迭代的計(jì)算滿足預(yù)設(shè)的算法收斂條件;

      36、其中,所述預(yù)設(shè)的計(jì)算過程包括:

      37、基于所述預(yù)設(shè)的圖算法針對(duì)所述初始的激活頂點(diǎn)集合中的激活頂點(diǎn)進(jìn)行圖計(jì)算,得到所述激活頂點(diǎn)集合中的激活頂點(diǎn)的圖計(jì)算結(jié)果;

      38、在所述全局圖結(jié)構(gòu)中遍歷所述激活頂點(diǎn)集合中的激活頂點(diǎn)的鄰居頂點(diǎn),基于所述激活頂點(diǎn)集合中的激活頂點(diǎn)的圖計(jì)算結(jié)果,確定遍歷到所述激活頂點(diǎn)的鄰居頂點(diǎn),是否滿足與所述圖算法對(duì)應(yīng)的激活條件;

      39、將滿足所述激活條件的鄰居頂點(diǎn)確定為新的激活節(jié)點(diǎn),并基于確定出的新的激活頂點(diǎn)進(jìn)一步創(chuàng)建需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)集合。

      40、可選的,在所述初始的激活頂點(diǎn)集合的基礎(chǔ)上,針對(duì)所述各個(gè)圖數(shù)據(jù)分片,分別迭代執(zhí)行預(yù)設(shè)的計(jì)算過程,直到無法確定出需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)或者所述迭代的計(jì)算滿足預(yù)設(shè)的算法收斂條件,包括:

      41、在所述初始的激活頂點(diǎn)集合的基礎(chǔ)上,通過在所述各個(gè)圖數(shù)據(jù)分片中遍歷該激活頂點(diǎn)集合中的激活頂點(diǎn)的鄰居頂點(diǎn),分別執(zhí)行一輪所述預(yù)設(shè)的計(jì)算過程,得到與所述各個(gè)圖數(shù)據(jù)分片對(duì)應(yīng)的需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)集合;

      42、針對(duì)與所述各個(gè)圖數(shù)據(jù)分片對(duì)應(yīng)的激活頂點(diǎn)集合進(jìn)行合并,得到與所述多個(gè)圖數(shù)據(jù)分片對(duì)應(yīng)的目標(biāo)激活頂點(diǎn)集合,并在所述目標(biāo)激活頂點(diǎn)集合的基礎(chǔ)上,通過在所述全局圖結(jié)構(gòu)中遍歷該激活頂點(diǎn)集合中的激活頂點(diǎn)的鄰居頂點(diǎn),繼續(xù)迭代執(zhí)行所述預(yù)設(shè)的計(jì)算過程,直到無法確定出需要繼續(xù)參與下一輪迭代的激活頂點(diǎn)或者所述迭代的計(jì)算滿足預(yù)設(shè)的算法收斂條件。

      43、可選的,基于所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn),分別在所述各個(gè)圖數(shù)據(jù)分片中的圖計(jì)算結(jié)果,計(jì)算針對(duì)所述頂點(diǎn)進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果,包括:

      44、針對(duì)所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的任一頂點(diǎn),從該頂點(diǎn)分別在所述各個(gè)圖數(shù)據(jù)分片中的圖計(jì)算結(jié)果中,確定出與針對(duì)所述頂點(diǎn)進(jìn)行全局的圖計(jì)算的最終計(jì)算結(jié)果的誤差最小的目標(biāo)圖計(jì)算結(jié)果;

      45、將所述目標(biāo)圖計(jì)算結(jié)果確定為針對(duì)所述頂點(diǎn)進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果。

      46、可選的,基于所述中間計(jì)算結(jié)果,從所述多個(gè)圖數(shù)據(jù)分片中的各個(gè)圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn)中,為所述各個(gè)圖數(shù)據(jù)分片分別確定出需要參與所述全局的圖計(jì)算的迭代的初始的激活頂點(diǎn)集合,包括:

      47、針對(duì)所述多個(gè)圖數(shù)據(jù)分片中的任一圖數(shù)據(jù)分片,確定該圖數(shù)據(jù)分片包含的具有鄰居關(guān)系的頂點(diǎn),在該圖數(shù)據(jù)分片中的圖計(jì)算結(jié)果,與為該頂點(diǎn)確定出的所述目標(biāo)圖計(jì)算結(jié)果是否相同;

      48、如果不相同,將該頂點(diǎn)作為需要參與所述全局的圖計(jì)算的迭代的激活頂點(diǎn),添加至為該圖數(shù)據(jù)分片創(chuàng)建的初始的激活頂點(diǎn)集合中。

      49、可選的,所述計(jì)算系統(tǒng)還維護(hù)了所述多個(gè)圖數(shù)據(jù)分片中包含的具有鄰居關(guān)系的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)的總數(shù)量;

      50、遍歷所述鄰接表中維護(hù)的所述頂點(diǎn)標(biāo)識(shí),并基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,進(jìn)一步訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn),包括:

      51、針對(duì)在所述鄰接表中遍歷到的任一頂點(diǎn)標(biāo)識(shí),獲取維護(hù)的與該頂點(diǎn)標(biāo)識(shí)的對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)的總數(shù)量,并確定獲取到的所述總數(shù)量是否大于閾值;

      52、如果獲取到的所述總數(shù)量大于閾值,則為與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)分配一個(gè)獨(dú)立的線程,并運(yùn)行該線程,按照與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鄰接表中維護(hù)的所述鏈表中包含的指針的順序,依次訪問該頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn);如果獲取到的所述總數(shù)量大于所述閾值,則為該頂點(diǎn)分配多個(gè)獨(dú)立的線程,并運(yùn)行該多個(gè)獨(dú)立的線程,分別基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,并行的訪問在與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)。

      53、可選的,如果獲取到的所述總數(shù)量大于所述閾值,則為該頂點(diǎn)分配多個(gè)獨(dú)立的線程,包括:

      54、如果獲取到的所述總數(shù)量大于所述閾值,進(jìn)一步計(jì)算與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)的數(shù)量的差值,并確定所述差值是否低于閾值;

      55、如果是,為與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)分配與所述多個(gè)圖數(shù)據(jù)分片一一對(duì)應(yīng)的多個(gè)獨(dú)立的線程;其中,所述多個(gè)獨(dú)立的線程中的各個(gè)線程,分別用于訪問該頂點(diǎn)在與該線程對(duì)應(yīng)的圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn);

      56、如果否,為與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)分配能夠處理的鄰居頂點(diǎn)的數(shù)量相同的多個(gè)獨(dú)立的線程;其中,所述多個(gè)獨(dú)立的線程中的各個(gè)線程,分別用于訪問從該頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)中分配給該線程的鄰居頂點(diǎn);分配給所述各個(gè)線程的鄰居頂點(diǎn)的數(shù)量相同??蛇x的,遍歷所述鄰接表中維護(hù)的所述頂點(diǎn)標(biāo)識(shí),并基于與所述頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鏈表中包含的指針,進(jìn)一步訪問與該頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)之前,還包括:

      57、從所述鄰接表中維護(hù)的各個(gè)頂點(diǎn)標(biāo)識(shí)中,確定出目標(biāo)頂點(diǎn)標(biāo)識(shí);其中,所述目標(biāo)頂點(diǎn)標(biāo)識(shí)為在所述各個(gè)圖數(shù)據(jù)分片中的鄰居頂點(diǎn)的數(shù)量不大于閾值的目標(biāo)頂點(diǎn)對(duì)應(yīng)的頂點(diǎn)標(biāo)識(shí);

      58、從所述數(shù)據(jù)庫(kù)中讀取與所述目標(biāo)頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的目標(biāo)頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn),并將讀取到的所述鄰居頂點(diǎn)進(jìn)一步存儲(chǔ)到在內(nèi)存中預(yù)先分配的連續(xù)的內(nèi)存空間中進(jìn)行存儲(chǔ),并將與所述目標(biāo)頂點(diǎn)標(biāo)識(shí)對(duì)應(yīng)的鄰接表中維護(hù)的所述鏈表中包含的指針,進(jìn)一步替換為與所述連續(xù)的內(nèi)存空間對(duì)應(yīng)的指針,以在遍歷到該目標(biāo)頂點(diǎn)時(shí),分配給該目標(biāo)頂點(diǎn)的線程基于所述鏈表中包含的所述指針,從所述連續(xù)的內(nèi)存空間中訪問該目標(biāo)頂點(diǎn)在所述各個(gè)圖數(shù)據(jù)分片中的所有的鄰居頂點(diǎn)。

      59、可選的,所述計(jì)算請(qǐng)求為針對(duì)在預(yù)設(shè)的時(shí)間窗口內(nèi)產(chǎn)生的多個(gè)圖數(shù)據(jù)分片的圖查詢操作所觸發(fā)的計(jì)算請(qǐng)求;所述方法還包括:

      60、響應(yīng)于針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算得到的最終計(jì)算結(jié)果,基于所述最終計(jì)算結(jié)果生成滿足與所述圖查詢操作相關(guān)的查詢條件的查詢結(jié)果;

      61、向所述圖查詢操作的發(fā)起方輸出所述查詢結(jié)果。

      62、可選的,所述多個(gè)圖數(shù)據(jù)分片以csr格式在所述數(shù)據(jù)庫(kù)中離散存儲(chǔ)。

      63、可選的,所述圖數(shù)據(jù)分片中包含的頂點(diǎn)表示用戶;所述圖數(shù)據(jù)分片中包含的連接頂點(diǎn)之間的邊表示用戶之間產(chǎn)生的交易。

      64、可選的,所述數(shù)據(jù)庫(kù)包括數(shù)據(jù)倉(cāng)庫(kù)。

      65、本說明書還提出一種圖計(jì)算裝置,應(yīng)用于執(zhí)行圖計(jì)算的計(jì)算系統(tǒng),所述裝置包括:

      66、第一計(jì)算模塊,基于預(yù)設(shè)的圖算法對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的各個(gè)圖數(shù)據(jù)分片分別進(jìn)行離線的圖計(jì)算,并保存針對(duì)所述圖數(shù)據(jù)分片進(jìn)行圖計(jì)算得到的圖計(jì)算結(jié)果;其中,所述圖算法為輸出的圖計(jì)算結(jié)果具有單調(diào)性的圖算法;

      67、獲取模塊,響應(yīng)于對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的在預(yù)設(shè)的時(shí)間窗口內(nèi)產(chǎn)生的多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的計(jì)算請(qǐng)求,獲取針對(duì)所述多個(gè)圖數(shù)據(jù)分片分別進(jìn)行離線的圖計(jì)算得到的多個(gè)圖計(jì)算結(jié)果;

      68、第二計(jì)算模塊,基于所述多個(gè)圖計(jì)算結(jié)果計(jì)算針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果,并在所述中間計(jì)算結(jié)果的基礎(chǔ)上,基于所述預(yù)設(shè)的圖算法繼續(xù)針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行在線的圖計(jì)算,以得到針對(duì)所述多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的最終計(jì)算結(jié)果。

      69、上述實(shí)施例中,一方面,由于在針對(duì)該多個(gè)圖數(shù)據(jù)分片在線的進(jìn)行全局的圖計(jì)算的過程中,可以復(fù)用對(duì)該多個(gè)圖數(shù)據(jù)分片進(jìn)行離線計(jì)算的圖計(jì)算結(jié)果,從而可以在在線計(jì)算的階段,避免對(duì)該多個(gè)圖數(shù)據(jù)分片重復(fù)的進(jìn)行圖計(jì)算,從而可以減少對(duì)系統(tǒng)中的在線計(jì)算資源的占用,降低計(jì)算的開銷,提升系統(tǒng)對(duì)該多個(gè)圖數(shù)據(jù)分片在線的進(jìn)行全局的圖計(jì)算的計(jì)算性能;

      70、另一方面,由于在針對(duì)該多個(gè)圖數(shù)據(jù)分片在線的進(jìn)行全局的圖計(jì)算的過程中,在基于對(duì)該多個(gè)圖數(shù)據(jù)分片進(jìn)行離線計(jì)算的圖計(jì)算結(jié)果,計(jì)算出的針對(duì)該多個(gè)圖數(shù)據(jù)分片進(jìn)行全局的圖計(jì)算的中間計(jì)算結(jié)果的基礎(chǔ)上,就可以繼續(xù)完成針對(duì)該多個(gè)圖數(shù)據(jù)分片的在線的圖計(jì)算,使得系統(tǒng)在針對(duì)該多個(gè)圖數(shù)據(jù)分片在線的進(jìn)行全局的圖計(jì)算時(shí),可以避免對(duì)該多個(gè)圖數(shù)據(jù)分片的圖結(jié)構(gòu)進(jìn)行合并,從而可以顯著的降低系統(tǒng)的開銷,進(jìn)一步提升對(duì)該多個(gè)圖數(shù)據(jù)分片在線的進(jìn)行全局的圖計(jì)算的計(jì)算性能。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1