[發明專利]一種可保持titan實時數據一致性的高效并行加載方法有效
| 申請號: | 201710390469.4 | 申請日: | 2017-05-27 |
| 公開(公告)號: | CN107038260B | 公開(公告)日: | 2020-03-10 |
| 發明(設計)人: | 毛洪亮;唐積強;王秀文;李焱余;蘇沐冉;馬秀娟;吳震;徐小磊;張露晨;李傳海;李斌斌;蒲路;謝銘 | 申請(專利權)人: | 國家計算機網絡與信息安全管理中心;北京賽思信安技術股份有限公司 |
| 主分類號: | G06F16/215 | 分類號: | G06F16/215;G06F16/23;G06F16/2457;G06F16/25 |
| 代理公司: | 北京永創新實專利事務所 11121 | 代理人: | 趙文利 |
| 地址: | 100029*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 保持 titan 實時 數據一致性 高效 并行 加載 方法 | ||
1.一種可保持titan實時數據一致性的高效并行加載方法,其特征在于,具體步驟如下:
步驟一、將圖數據庫titan劃分為7個模塊,且7個模塊并行操作;
7個模塊包括:數據接收模塊,清洗規則管理模塊,數據清洗模塊,ID轉換模塊,高速索引模塊,點加載模塊和剩余數據加載模塊;
步驟二、數據接收模塊的多線程同時并行工作,每個線程循環從消息隊列或CSV文件或消息隊列數據源獲取數據,解析成多條pieceOfData數據,放入有界隊列queue1中;
pieceOfData數據由兩個點,兩個點之間的關系,以及點與關系的屬性構成;
步驟三、清洗規則管理模塊定時讀取規則配置文件,或接受客戶端請求讀取規則配置文件,實時動態更新清洗規則;
步驟四、數據清洗模塊多線程并行工作,每個線程循環依次從有界隊列queue1獲取一條pieceOfData數據,使用清洗規則進行判斷,如果符合清洗條件,直接丟棄,否則,放入有界隊列queue2;
步驟五、ID轉換模塊多線程并行工作,每個線程循環從有界隊列queue2中取出清洗過濾之后的pieceOfData數據進行處理;
所述步驟五具體為:
步驟501、判斷當前pieceOfData數據中的兩個點與titan內部ID之間的對應關系是否都存在于高速索引模塊中;如果是,進入步驟502,否則,進入步驟503;
步驟502、ID轉換模塊從高速索引模塊中取出對應關系,用ID屬性與ID值替換對應的pieceOfData數據中的點,并保存到pieceOfDataT數據中,將pieceOfDataT數據放入到有界隊列queue4;
pieceOfDataT數據中保存的是pieceOfData數據中的點被對應的ID屬性與ID值替換之后的pieceOfData;
步驟503、當前pieceOfData數據中至少一個點與titan內部ID之間的對應關系未被加載到高速索引模塊中,ID轉換模塊將未被加載的點放入HashSet中,并將該pieceOfData數據放入有界隊列queue3中;
queue3用于存放從有界隊列queue2中選出的pieceOfData數據,該pieceOfData數據中至少一個點與titan內部ID之間的對應關系未被加載到高速索引模塊中;
步驟六、剩余數據加載模塊的多線程同時并行工作,每個線程循環從有界隊列queue4中獲取pieceOfDataT數據,并加載在titan數據庫中;
步驟七、點加載模塊與高速索引模塊交互,當滿足結束條件后,結束所有線程。
2.如權利要求1所述的一種可保持titan實時數據一致性的高效并行加載方法,其特征在于,所述步驟一中,數據接收模塊負責接收需要被處理的數據,并放入有界隊列中;
清洗規則管理模塊通過監控規則文件實現過濾規則的動態更新;
數據清洗模塊按清洗規則管理模塊給定的規則過濾有界隊列中不需要的數據;
ID轉換模塊將清洗后的數據中的點替換為圖數據庫中對應點的ID;
高速索引模塊負責加速ID的轉化速度;
點加載模塊,負責加載ID轉換時不存在于圖數據庫內的點;并在加載完成后將點及其ID對應關系添加進高速索引模塊;
剩余數據加載模塊,通過并行加載大幅提升圖數據的加載速度。
3.如權利要求1所述的一種可保持titan實時數據一致性的高效并行加載方法,其特征在于,所述步驟七具體為:
步驟701、判斷是否滿足結束條件,如果是,所有線程結束;否則,進入步驟702;
步驟702、判斷有界隊列queue3是否已滿距離上次加載HashSet中數據已經超過時間閾值t,如果是,執行步驟703,否則,休眠時間t1;返回步驟701繼續;
閾值t是系統初始化參試,根據實際情況設定;
步驟703、點加載模塊的每個線程加載HashSet中的點,并將該點與titan內部ID之間的對應關系加入高速索引模塊中;
步驟704、點加載模塊對HashSet進行重置,記錄當前時間為加載HashSet中數據的時間;
步驟705、將有界隊列queue3中的pieceOfData數據全部放入有界隊列queue2中,清空有界隊列queue3;返回步驟701。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國家計算機網絡與信息安全管理中心;北京賽思信安技術股份有限公司,未經國家計算機網絡與信息安全管理中心;北京賽思信安技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710390469.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:陶瓷瓶(荷塘白鷺)
- 下一篇:筆(Ref.2294)





