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

      一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法

      文檔序號:7797253閱讀:870來源:國知局
      一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法
      【專利摘要】本發(fā)明公開一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,從社交網(wǎng)絡(luò)的圖結(jié)構(gòu)出發(fā),首先根據(jù)節(jié)點度大小將網(wǎng)絡(luò)分成名人用戶層和普通用戶層,再對每一層利用模塊度優(yōu)化的方法進行社區(qū)劃分。設(shè)計一種小集團結(jié)伴策略對初始網(wǎng)絡(luò)進行預處理,形成一個超網(wǎng),采用邊權(quán)重優(yōu)先方案逐步合并超節(jié)點以提高模塊度。社區(qū)劃分完成之后,優(yōu)先存儲普通用戶數(shù)據(jù),將同一社區(qū)的用戶數(shù)據(jù)存儲在相同服務器節(jié)點上,對于名人用戶數(shù)據(jù)優(yōu)先考慮選擇存放在粉絲最多的服務器,其次考慮存放在自身社區(qū)所在的服務器節(jié)點。設(shè)計名人用戶數(shù)據(jù)多副本存儲,以減少單臺服務器的負載。利用社區(qū)劃分方法存儲社交網(wǎng)絡(luò)數(shù)據(jù),可以提高訪問的局部性,減少通信耗費。
      【專利說明】—種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種數(shù)據(jù)存儲方法,具體涉及一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法。
      【背景技術(shù)】
      [0002]以用戶創(chuàng)造內(nèi)容為主的Web2.0已經(jīng)滲透到人們?nèi)粘I畹姆椒矫婷?,大量在線社交網(wǎng)站迅速興起,國外的如Facebook、Twitter,國內(nèi)的如微博、人人網(wǎng)等已經(jīng)成為人們分享和獲取信息的主要平臺。人們通過社交網(wǎng)絡(luò)互動交流,產(chǎn)生的數(shù)據(jù)和訪問規(guī)模呈爆炸式增長,給數(shù)據(jù)的存儲和管理帶來嚴峻挑戰(zhàn)。
      [0003]目前網(wǎng)站的架構(gòu)中基本采用傳統(tǒng)的分布式存儲方案,如哈希、一致性散列等技術(shù)。例如Twitter使用Gizzard,通過將特定范圍的數(shù)據(jù)映射到特定的機器上來實現(xiàn)數(shù)據(jù)的劃分,Facebook使用的Cassandra通過使用用戶ID的hash值來劃分數(shù)據(jù),而Amazon使用的Dynamo通過一致性散列來劃分數(shù)據(jù)。這些劃分方案將用戶數(shù)據(jù)隨機地放置在集群的各服務器中,方法簡單易行,然而這樣的數(shù)據(jù)切分方式忽略了社交網(wǎng)絡(luò)的社區(qū)結(jié)構(gòu)性質(zhì),在系統(tǒng)運行期間會增加額外的通信代價,而且訪問時延較大。
      [0004]研究發(fā)現(xiàn)社交網(wǎng)絡(luò)中人與人的好友關(guān)系圖是具有社區(qū)結(jié)構(gòu)特征的網(wǎng)絡(luò),即社區(qū)內(nèi)部節(jié)點之間的邊比較稠密,而社區(qū)之間的邊比較稀疏,已有分析發(fā)現(xiàn)Facebook中的社區(qū)結(jié)構(gòu)便是按照年級或宿舍劃分的學生集體。社交網(wǎng)絡(luò)中用戶的交互對象大多是和自己在同一社區(qū)的好友,例如同一專業(yè)、同一公司等。用戶基本的操作主要是發(fā)布信息和瀏覽信息,用戶登錄時,系統(tǒng)先查閱其關(guān)注的好友列表,然后把他們最近發(fā)布的信息顯示在該用戶的主頁;用戶發(fā)布信息時,系統(tǒng)先查閱其粉絲列表,然后將該信息更新到這些粉絲的主頁。這樣的業(yè)務流程不僅會涉及到用戶本身的數(shù)據(jù),還會涉及到用戶的好友數(shù)據(jù),瀏覽時還可能涉及到好友的好友這樣的多跳關(guān)系。從網(wǎng)絡(luò)結(jié)構(gòu)角度來看,用戶與少量幾跳以內(nèi)的好友聯(lián)系會比較緊密,具有典型的社區(qū)性。如果社交網(wǎng)絡(luò)中某個用戶的同一社區(qū)內(nèi)的好友散布在多臺服務器上,那么查詢和更新操作需要向多臺服務器發(fā)送請求,對于具有海量用戶的社交網(wǎng)絡(luò)來說這樣的通信代價太高。

      【發(fā)明內(nèi)容】

      [0005]發(fā)明目的:為解決現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法。
      [0006]技術(shù)方案:本發(fā)明的一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,包括以下步驟:
      [0007](I)獲取社交網(wǎng)絡(luò)結(jié)構(gòu);
      [0008](2)將步驟(I)中所得的社交網(wǎng)絡(luò)結(jié)構(gòu)分為名人用戶網(wǎng)絡(luò)層和普通用戶網(wǎng)絡(luò)層;
      [0009](3)對步驟(2)中的每一層網(wǎng)絡(luò)進行社區(qū)劃分;
      [0010](4)按照社區(qū)大小進行數(shù)據(jù)存儲;[0011](5)將名人用戶進行多副本存儲。
      [0012]進一步的,所述步驟(1)中的獲取社交網(wǎng)絡(luò)結(jié)構(gòu)的具體步驟如下:
      [0013](11)將社交網(wǎng)絡(luò)中的用戶抽象成網(wǎng)絡(luò)中的節(jié)點,則用戶之間的關(guān)注與被關(guān)注的好友關(guān)系抽象為有向邊,即用戶i關(guān)注用戶j,表示有一條邊從節(jié)點i指向節(jié)點j,定義A是這個網(wǎng)絡(luò)的鄰接矩陣,Au表示節(jié)點i指向節(jié)點j的邊的權(quán)重,不同的應用場景中,權(quán)重代表的意義不同,可以根據(jù)實際情況設(shè)置權(quán)重的值,例如可以均設(shè)置為I ;
      [0014](12)將上述有向網(wǎng)絡(luò)轉(zhuǎn)換成無向網(wǎng)絡(luò),調(diào)整兩個節(jié)點之間的權(quán)重,若用戶i與用戶j互相關(guān)注,則Aij為2 ;若兩個用戶互不關(guān)注,則Aij為O ;若兩個用戶中只存在單向的關(guān)注關(guān)系,則Aij為I,最后設(shè)置Aji=Aijtj
      [0015]進一步的,所述步驟(2)中的具體步驟為:設(shè)定粉絲數(shù)量閾值為K,粉絲數(shù)量大于K的社交網(wǎng)絡(luò)用戶為名人用戶,粉絲數(shù)量小于K的社交網(wǎng)絡(luò)用戶為普通用戶,原網(wǎng)絡(luò)便可以分為普通用戶網(wǎng)絡(luò)層和名人用戶網(wǎng)絡(luò)層,統(tǒng)稱為G。
      [0016]進一步的,采用模塊度優(yōu)化方法對步驟(2)中所得普通用戶網(wǎng)絡(luò)層和名人用戶網(wǎng)絡(luò)層分別進行社區(qū)劃分,模塊度值越高表明該劃分越能體現(xiàn)網(wǎng)絡(luò)的社區(qū)結(jié)構(gòu),那么社區(qū)劃分就變成了一個模塊度優(yōu)化的問題,即從所有可能的劃分中尋找一個劃分,使得該劃分具有最大的模塊度;然而如果把單個節(jié)點作為計算單位,對于具有海量用戶的社交網(wǎng)絡(luò)來說
      計算量非常大。
      [0017]本發(fā)明采用一種小集團結(jié)伴策略,先讓局部區(qū)域范圍內(nèi)的節(jié)點結(jié)伴形成一個緊密的小集團,再將這些小集團作為網(wǎng)絡(luò)新節(jié)點,稱之為超節(jié)點,超節(jié)點構(gòu)成的關(guān)系網(wǎng)絡(luò)即一個超網(wǎng),再對超網(wǎng)通過模塊度優(yōu)化的方法進行社區(qū)劃分,具體方法如下:
      [0018](31)假設(shè)初始網(wǎng)絡(luò)有η個節(jié)點,編號為i (i=l,2,...,η),每個節(jié)點的度分別為ki;依據(jù)節(jié)點度優(yōu)先方法,優(yōu)先讓度大的節(jié)點選擇h跳以內(nèi)的好友為一個小集團,再從剩余的節(jié)點中找到節(jié)點度最大的節(jié)點,重復結(jié)伴操作,直至所有節(jié)點都被包含在一個小集團中,對每個小集團編號Ci,即初始的社區(qū)編號;
      [0019](32)結(jié)伴操作完成后,將每個小集團封裝成一個超節(jié)點,超節(jié)點與超節(jié)點之間邊的權(quán)重設(shè)定為內(nèi)部子節(jié)點之間的權(quán)重之和,形成超網(wǎng)Gtl,即初始的網(wǎng)絡(luò)結(jié)構(gòu);
      [0020](33)通過模塊度優(yōu)化的方法,將超節(jié)點合并,超節(jié)點之間連邊的權(quán)重越大,則說明兩個超節(jié)點內(nèi)部的節(jié)點聯(lián)系越緊密;設(shè)t時刻網(wǎng)絡(luò)結(jié)構(gòu)為Gt,鄰接矩陣為At ;
      [0021]根據(jù)公式
      【權(quán)利要求】
      1.一種基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于包括以下步驟: (O獲取社交網(wǎng)絡(luò)結(jié)構(gòu); (2)將步驟(1)中所得的社交網(wǎng)絡(luò)結(jié)構(gòu)分為名人用戶網(wǎng)絡(luò)層和普通用戶網(wǎng)絡(luò)層; (3)對步驟(2)中的每一層網(wǎng)絡(luò)進行社區(qū)劃分; (4)按照社區(qū)大小進行數(shù)據(jù)存儲; (5)將名人用戶進行多副本存儲。
      2.根據(jù)權(quán)利要求1所述的基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于:所述步驟(1)中的獲取社交網(wǎng)絡(luò)結(jié)構(gòu)的具體步驟如下: (11)將社交網(wǎng)絡(luò)中的用戶抽象成網(wǎng)絡(luò)中的節(jié)點,則用戶之間的關(guān)注與被關(guān)注的好友關(guān)系抽象為有向邊,即用戶i關(guān)注用戶j,表示有一條邊從節(jié)點i指向節(jié)點j,定義A是這個網(wǎng)絡(luò)的鄰接矩陣,Aij表示節(jié)點i指向節(jié)點j的邊的權(quán)重,該權(quán)重均設(shè)置為I ; (12)將上述有向網(wǎng)絡(luò)轉(zhuǎn)換成無向網(wǎng)絡(luò),調(diào)整兩個節(jié)點之間的權(quán)重,若用戶i與用戶j互相關(guān)注,則;若兩個用戶互不關(guān)注,則AuSO ;若兩個用戶中只存在單向的關(guān)注關(guān)系,則Aij為I,最后設(shè)置Aji=Aijtl
      3.根據(jù)權(quán)利要求1所述的基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于:所述步驟(2)中的具體步驟為:設(shè)定粉絲數(shù)量閾值為K,粉絲數(shù)量大于K的社交網(wǎng)絡(luò)用戶為名人用戶,粉絲數(shù)量小于K的社交網(wǎng)絡(luò)用戶為普通用戶,原網(wǎng)絡(luò)便可以分為普通用戶網(wǎng)絡(luò)層和名人用戶網(wǎng)絡(luò)層,統(tǒng)稱為G。
      4.根據(jù)權(quán)利要求1所述的基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于:采用模塊度優(yōu)化方法對步驟(2)中所得普通用戶網(wǎng)絡(luò)層和名人用戶網(wǎng)絡(luò)層分別進行社區(qū)劃分,具體方法如下: (31)假設(shè)初始網(wǎng)絡(luò)有η個節(jié)點,編號為i(i=l,2,...,η),每個節(jié)點的度分別為ki;依據(jù)節(jié)點度優(yōu)先方法,優(yōu)先讓度大的節(jié)點選擇h跳以內(nèi)的好友為一個小集團,再從剩余的節(jié)點中找到節(jié)點度最大的節(jié)點,重復結(jié)伴操作,直至所有節(jié)點都被包含在一個小集團中,對每個小集團編號Ci,即初始的社區(qū)編號; (32)結(jié)伴操作完成后,將每個小集團封裝成一個超節(jié)點,超節(jié)點與超節(jié)點之間邊的權(quán)重設(shè)定為內(nèi)部子節(jié)點之間的權(quán)重之和,形成超網(wǎng)Gtl,即初始的網(wǎng)絡(luò)結(jié)構(gòu); (33)通過模塊度優(yōu)化的方法,將超節(jié)點合并,超節(jié)點之間連邊的權(quán)重越大,則說明兩個超節(jié)點內(nèi)部的節(jié)點聯(lián)系越緊密;設(shè)t時刻網(wǎng)絡(luò)結(jié)構(gòu)為Gt,鄰接矩陣為At ;
      I「 kk 根據(jù)公式2 =4 ^^^士計算此時模塊度為‘公式中卜乙^,!!!
      2m _ 2m _為網(wǎng)絡(luò)中所有連邊的權(quán)重之和,即?為,kI是節(jié)點i連邊的權(quán)重之和,即kt= Σ J-Aij,

      23C1表示節(jié)點i所在的社區(qū)編號,δ (X,y)是一個關(guān)于X和y的函數(shù),當x=y時值為1,反之為O ; (34H+1時刻的合并超節(jié)點操作中,采用權(quán)重優(yōu)先策略,優(yōu)先將權(quán)重大的邊兩端的超節(jié)點合并,計算合并后的模塊度Qmw;如果Qnrat ^ Qt,則選擇合并,Qt+1=Qnew,形成網(wǎng)絡(luò)Qt+1 ;反之不合并,繼續(xù)選擇邊權(quán)重次大的兩個超節(jié)點合并;(35)重復上述合并、調(diào)整網(wǎng)絡(luò)的過程,直至模塊度的值基本穩(wěn)定為止,穩(wěn)定狀態(tài)時相鄰兩個時刻的模塊度的值相差不大于ε值,即Qt+1_Qt≤ε。
      5.根據(jù)權(quán)利要求1所述的基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于:所述步驟(4)中的數(shù)據(jù)存儲方法為按照社區(qū)大小存儲數(shù)據(jù),具體步驟為:設(shè)有nc個社區(qū)并按照數(shù)據(jù)量大小排序,編號記為Ci (i=l, 2,...,nc),有ns臺服務器(nc〉ns);首先存儲普通用戶數(shù)據(jù),對每個社區(qū)依次查找適合的服務器,找到滿足待存社區(qū)存儲需求的第一臺服務器存儲,然后存儲名人用戶數(shù)據(jù),其存儲策略優(yōu)先選擇存放在粉絲數(shù)最多的服務器節(jié)點,其次考慮存放在自身社區(qū)所在的服務器節(jié)點。
      6.根據(jù)權(quán)利要 求1所述的基于社區(qū)劃分的在線社交網(wǎng)絡(luò)海量數(shù)據(jù)存儲方法,其特征在于:所述步驟(5)的具體步驟為:根據(jù)粉絲的社區(qū)分布,名人用戶的數(shù)據(jù)另外設(shè)置一定數(shù)量的存儲副本,副本數(shù)據(jù)和部分粉絲節(jié)點存儲在同一臺服務器上;把副本放置在粉絲數(shù)量較多的幾個服務器上,其他粉絲由主數(shù)據(jù)節(jié)點直接管轄;名人用戶發(fā)布信息時,主數(shù)據(jù)節(jié)點將數(shù)據(jù)發(fā)送給副本節(jié)點,然后主數(shù)據(jù)節(jié)點和副本節(jié)點再將數(shù)據(jù)發(fā)送給各自管轄的粉絲用戶。
      【文檔編號】H04L29/06GK103838831SQ201410058324
      【公開日】2014年6月4日 申請日期:2014年2月21日 優(yōu)先權(quán)日:2014年2月21日
      【發(fā)明者】蔣嶷川, 陳昭娣 申請人:東南大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1