CN112817982A - 一种基于lsm树的动态幂律图存储方法 - Google Patents

一种基于lsm树的动态幂律图存储方法 Download PDF

Info

Publication number
CN112817982A
CN112817982A CN202110182544.4A CN202110182544A CN112817982A CN 112817982 A CN112817982 A CN 112817982A CN 202110182544 A CN202110182544 A CN 202110182544A CN 112817982 A CN112817982 A CN 112817982A
Authority
CN
China
Prior art keywords
vertex
degree
graph
storage method
dynamic power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110182544.4A
Other languages
English (en)
Other versions
CN112817982B (zh
Inventor
刘强
季一木
刘尚东
吴飞
胡林
汤淑宁
刘凯航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN202110182544.4A priority Critical patent/CN112817982B/zh
Publication of CN112817982A publication Critical patent/CN112817982A/zh
Application granted granted Critical
Publication of CN112817982B publication Critical patent/CN112817982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于LSM树的动态幂律图存储方法,包括:图数据动态更新时,统计图的顶点出度信息,以内存顶点表的形式对大度数顶点和普通顶点进行分离存储;对大顶点表和普通顶点表,根据幂律分布比例分配内存;当各顶点表的数据量超过阈值时,根据内存分配比例对应的线程数对图数据进行并发溢写。本发明能减轻基于幂律分布的图数据更新频繁时产生的数据合并开销和存储资源浪费等问题,在知识图谱和图计算领域具有良好的实用价值和前景。

Description

一种基于LSM树的动态幂律图存储方法
技术领域
本发明属于计算机技术领域,具体涉及一种基于LSM树的动态幂律图数据存储方法。
背景技术
近年来,图计算被越来越多的应用于复杂网络、深度学习、脑科学及社区发现等领域。随着图数据集规模和复杂性不断增长,如何设计高效的图存储机制越来越受到人们的关注。针对该问题,先后出现了如GFS(Google File System)、HDFS(Hadoop File System)等基于键值对的PB级分布式文件系统,设计上基于“一次写多次读”的设计模式,充分利用了硬盘顺序读取比随机读取高效的特点,以提高吞吐率,同时具有较好的可扩展性。
然而,在真实的网络中,图数据往往是实时更新的,且在度分布上存在无标度现象,即节点度分布近似服从幂律,如微博意见领袖、网页权重分级等。HDFS等文件系统基于批处理和追加记录的方式,难以适应图数据频繁更新的需求,导致如数据冗余,合并后重复计算开销大等问题,也没有考虑图数据自身如幂律分布等特点。LSM树(Log-StructuredMerge Tree)是一种基于日志合并的树型存储结构,思想是在内存中对写操作进行合并,将数据的随机写转换成了顺序写,以提高磁盘写的吞吐率,主要适用于动态环境下,写多读少的应用场景。
发明内容
发明目的:为了解决现有图存储技术中存在的问题,本发明提供一种基于LSM树的动态幂律图存储方法,将低度数顶点和大度数顶点分离存储,并根据图数据当前度数的幂律分布统计信息分配内存,并配置相应比例的并发溢写线程数,可以减轻基于幂律分布的图数据更新频繁时产生的数据合并开销和存储资源浪费等问题,适用于存储动态图结构的数据。
技术方案:为实现上述目的,本发明采用的技术方案为:
一种基于LSM树的动态幂律图存储方法,包括:图数据动态更新时,记录图的顶点出度信息,以内存顶点表的形式对大度数顶点和普通顶点进行分离存储。对大顶点表和普通顶点表,根据幂律分布指数分配内存。当各顶点表的数据量超过阈值时,根据内存分配比例对应的线程数对图数据进行并发写入,具体包括以下步骤:
步骤201:在LSM树结构的基础上,增加用于统计图数据信息的顶点出度统计表,同时将原有的内存顶点表划分为大顶点表和普通顶点表。
步骤202:图数据更新时,首先更新WAL日志,然后在顶点出度统计表中更新顶点的统计信息,并根据顶点的出度和统计信息判断是否为大度数顶点,最后将该顶点对应键值对插入大顶点表或普通顶点表:大顶点的键值对插入大顶点表,普通顶点的键值对插入普通顶点表。
步骤203:当大顶点表或普通顶点表内部的图数据量超过限定的内存阈值时,启动相应比例的多线程,根据哈希算法对磁盘上的L0层写入各分区文件。
优选的:步骤201中的顶点出度统计表,指的是在图顶点和出度邻居顶点数量的映射。
优选的:步骤202中根据顶点的出度和统计信息判断是否为大度数顶点的方法:判定标准为出度邻居数量大于阈值时,则为大顶点,否则为普通顶点。阈值的选择取决于当前顶点出度统计表中出度的幂律分布比例。
优选的:判断是否为大度数顶点的阈值k取决于如下幂律公式:
p(k)~k
其中,k代表顶点的度,γ为度指数,则p(k)代表度为k的顶点占总顶点数的比例。
优选的:顶点的度k取值为p(k)~0.8。
优选的:大顶点表和普通顶点表的内存阈值比例、以及相应的并发线程数比例默认取为p(k)/(1-p(k))。
优选的:步骤203中的大顶点表或普通顶点表的内存阈值和并发写入的多线程数量,均取决于顶点出度统计表中的幂律分布比例。
本发明相比现有技术,具有以下有益效果:
在图数据频繁更新的场景下,利用了LSM树适用于动态场景的优势,同时根据幂律图特征,对低度数顶点和大度数顶点按照相应的内存阈值比例分离存储,并配置相应比例数量的并发溢写线程,可以有效减轻基于幂律分布的图数据更新频繁时产生的数据合并开销和存储资源浪费等问题,适用于存储动态图结构的数据。本发明能减轻基于幂律分布的图数据更新频繁时产生的数据合并开销和存储资源浪费等问题,在知识图谱和图计算领域具有良好的实用价值和前景。
附图说明
图1是本发明的基于LSM树的动态幂律图数据存储方法软件架构示意图。
图2是基于LSM树的动态幂律图数据存储方法的流程示意图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
一种基于LSM树的动态幂律图数据存储方法,如图1所示,主要包括两个内存顶点表、顶点出度统计表、相应的磁盘分区文件,以及多个并发溢写线程。运行环境选择既可以在单节点场景下,也可以在分布式场景下。
具体流程如图2所示,主要包括以下步骤:
步骤201:在LSM树结构的基础上,增加用于统计图数据信息的顶点出度统计表,同时将原有的内存表划分为大顶点表和普通顶点表。大顶点的键值对插入大顶点表,普通顶点的键值对插入普通顶点表。
步骤202:图数据更新时,首先更新WAL日志,然后在顶点出度统计表中更新顶点的统计信息,并根据顶点的出度和统计信息判断是否为大度数顶点,最后将该键值对插入相应的内存顶点表。
根据顶点的出度和统计信息判断是否为大度数顶点的方法:判定标准为出度邻居数量大于阈值时,则为大顶点,否则为普通顶点;阈值的选择取决于当前顶点出度统计表中出度的幂律分布比例。
判断是否为大度数顶点的阈值k取决于如下幂律公式:
p(k)~k (1)
其中,k代表顶点的度,γ为度指数,则p(k)代表度为k的顶点占总顶点数的比例。在进行大度数顶点的判别中,k取值默认为p(k)~0.8,大顶点表和普通顶点表的内存阈值、以及相应的并发线程数比例则取为p(k)/(1-p(k))。
步骤203:当各顶点表内部的图数据量超过限定的内存阈值时,启动相应比例的多线程,根据哈希算法对磁盘上的L0层写入各分区文件。当顶点表图数据量超过内存阈值时,首先对每条顶点键值对采用如下公式计算应写入的L0层分区文件号:
Figure BDA0002941821360000031
然后启动异步的并发线程溢写分区文件,若分区文件超过大小限制,则启动合并算法进行数据归并。此外,大顶点表或普通顶点表的内存阈值和并发写入的多线程数量,均取决于顶点出度统计表中的幂律分布比例。
本发明利用了LSM树和幂律图的特点,能够减轻基于幂律分布的图数据更新频繁时产生的数据合并开销和存储资源浪费等问题,适用于动态图结构数据的存储,在图存储技术领域具有广泛的应用前景。本发明在LSM树原有设计的基础上,针对图数据的分布特点进行了改进,提出了一种基于LSM树的动态幂律图数据存储方法,以提高存储效率。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种基于LSM树的动态幂律图存储方法,其特征在于,包括以下步骤:
步骤201:在LSM树结构的基础上,增加用于统计图数据信息的顶点出度统计表,同时将原有的内存顶点表划分为大顶点表和普通顶点表;
步骤202:图数据更新时,首先更新WAL日志,然后在顶点出度统计表中更新顶点的统计信息,并根据顶点的出度和统计信息判断是否为大度数顶点,最后将该顶点对应键值对插入大顶点表或普通顶点表:大顶点的键值对插入大顶点表,普通顶点的键值对插入普通顶点表;
步骤203:当大顶点表或普通顶点表内部的图数据量超过限定的内存阈值时,启动相应比例的多线程,根据哈希算法对磁盘上的L0层写入各分区文件。
2.根据权利要求1所述基于LSM树的动态幂律图存储方法,其特征在于:步骤201中的顶点出度统计表,指的是在图顶点和出度邻居顶点数量的映射。
3.根据权利要求2所述基于LSM树的动态幂律图存储方法,其特征在于:步骤202中根据顶点的出度和统计信息判断是否为大度数顶点的方法:判定标准为出度邻居数量大于阈值时,则为大顶点,否则为普通顶点;阈值的选择取决于当前顶点出度统计表中出度的幂律分布比例。
4.根据权利要求3所述基于LSM树的动态幂律图存储方法,其特征在于:判断是否为大度数顶点的阈值k取决于如下幂律公式:
p(k)~k
其中,k代表顶点的度,γ为度指数,则p(k)代表度为k的顶点占总顶点数的比例。
5.根据权利要求4所述基于LSM树的动态幂律图存储方法,其特征在于:顶点的度k默认取值为p(k)~0.8。
6.根据权利要求5所述基于LSM树的动态幂律图存储方法,其特征在于:大顶点表和普通顶点表的内存阈值、以及相应的并发线程数比例则取为p(k)/(1-p(k))。
7.根据权利要求6所述基于LSM树的动态幂律图存储方法,其特征在于:步骤203中的大顶点表或普通顶点表的内存阈值和并发写入的多线程数量,均取决于顶点出度统计表中的幂律分布比例。
CN202110182544.4A 2021-02-08 2021-02-08 一种基于lsm树的动态幂律图存储方法 Active CN112817982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110182544.4A CN112817982B (zh) 2021-02-08 2021-02-08 一种基于lsm树的动态幂律图存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110182544.4A CN112817982B (zh) 2021-02-08 2021-02-08 一种基于lsm树的动态幂律图存储方法

Publications (2)

Publication Number Publication Date
CN112817982A true CN112817982A (zh) 2021-05-18
CN112817982B CN112817982B (zh) 2022-09-30

Family

ID=75865016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110182544.4A Active CN112817982B (zh) 2021-02-08 2021-02-08 一种基于lsm树的动态幂律图存储方法

Country Status (1)

Country Link
CN (1) CN112817982B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022184255A (ja) * 2021-05-31 2022-12-13 広海 大谷 インターネットビジネスに関するビジネス特許とセキュリティに関する特許及びIoT機器及びアルゴリズムのビジネス応用特許

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349095A1 (en) * 2017-06-06 2018-12-06 ScaleFlux, Inc. Log-structured merge tree based data storage architecture
CN110704360A (zh) * 2019-09-29 2020-01-17 华中科技大学 一种基于异构fpga数据流的图计算优化方法
CN110750265A (zh) * 2019-09-06 2020-02-04 华中科技大学 一种面向图计算的高层次综合方法及系统
CN112000846A (zh) * 2020-08-19 2020-11-27 东北大学 基于gpu分组lsm树索引的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349095A1 (en) * 2017-06-06 2018-12-06 ScaleFlux, Inc. Log-structured merge tree based data storage architecture
CN110750265A (zh) * 2019-09-06 2020-02-04 华中科技大学 一种面向图计算的高层次综合方法及系统
CN110704360A (zh) * 2019-09-29 2020-01-17 华中科技大学 一种基于异构fpga数据流的图计算优化方法
CN112000846A (zh) * 2020-08-19 2020-11-27 东北大学 基于gpu分组lsm树索引的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AAPO KYROLA 等: "GraphChi: Large-Scale Graph Computation on Just a PC", 《USENIX》 *
赵翔等: "一种改进的基于BSP的大图计算模型", 《计算机学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022184255A (ja) * 2021-05-31 2022-12-13 広海 大谷 インターネットビジネスに関するビジネス特許とセキュリティに関する特許及びIoT機器及びアルゴリズムのビジネス応用特許

Also Published As

Publication number Publication date
CN112817982B (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN107423368B (zh) 一种非关系数据库中的时空数据索引方法
CN106777351B (zh) 基于art树分布式系统图存储计算系统及其方法
CN108600321A (zh) 一种基于分布式内存云的图数据存储方法和系统
CN109299113B (zh) 具有存储感知的混合索引的范围查询方法
CN103246616B (zh) 一种长短周期访问频度的全局共享缓存替换方法
US10356150B1 (en) Automated repartitioning of streaming data
CN109522428B (zh) 一种基于索引定位的图计算系统的外存访问方法
CN103455531B (zh) 一种支持高维数据实时有偏查询的并行索引方法
Veeraiah et al. An efficient data duplication system based on hadoop distributed file system
CN111737168A (zh) 一种缓存系统、缓存处理方法、装置、设备及介质
CN110321331A (zh) 利用多级散列函数来确定存储地址的对象存储系统
Jaiyeoba et al. Graphtinker: A high performance data structure for dynamic graph processing
CN112051968B (zh) 基于Kafka的分布式数据流分级缓存自动迁移方法
CN112395288B (zh) 基于希尔伯特曲线的r树索引合并更新方法、装置及介质
CN112486994A (zh) 一种基于日志结构合并树的键值存储的数据快速读取方法
CN112817982B (zh) 一种基于lsm树的动态幂律图存储方法
Feng et al. HQ-Tree: A distributed spatial index based on Hadoop
CN106547484A (zh) 一种基于raid5的实现内存数据可靠性方法及系统
CN113722320A (zh) 一种基于并行的图数据索引的持久化方法
CN107257356B (zh) 一种基于超图分割的社交用户数据优化放置方法
CN111427920B (zh) 数据采集方法、装置、系统、计算机设备及存储介质
CN111857582A (zh) 一种键值存储系统
CN111752941A (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN111382319B (zh) 一种面向知识图谱的图数据表示和映射方法
CN111273865B (zh) 一种基于可变便笺式存储器的任务分配及调度方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant