CN112817982B - 一种基于lsm树的动态幂律图存储方法 - Google Patents
一种基于lsm树的动态幂律图存储方法 Download PDFInfo
- Publication number
- CN112817982B CN112817982B CN202110182544.4A CN202110182544A CN112817982B CN 112817982 B CN112817982 B CN 112817982B CN 202110182544 A CN202110182544 A CN 202110182544A CN 112817982 B CN112817982 B CN 112817982B
- Authority
- CN
- China
- Prior art keywords
- vertex
- degree
- graph
- storage method
- common
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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树的动态幂律图数据存储方法。
背景技术
近年来,图计算被越来越多的应用于复杂网络、深度学习、脑科学及社区发现等领域。随着图数据集规模和复杂性不断增长,如何设计高效的图存储机制越来越受到人们的关注。针对该问题,先后出现了如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层分区文件号:
然后启动异步的并发线程溢写分区文件,若分区文件超过大小限制,则启动合并算法进行数据归并。此外,大度数顶点表或普通顶点表的内存阈值和并发写入的多线程数量,均取决于顶点出度统计表中的幂律分布比例。
本发明利用了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中的大度数顶点表或普通顶点表的内存阈值和并发写入的多线程数量,均取决于顶点出度统计表中的幂律分布比例。
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 CN112817982A (zh) | 2021-05-18 |
CN112817982B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022184255A (ja) * | 2021-05-31 | 2022-12-13 | 広海 大谷 | インターネットビジネスに関するビジネス特許とセキュリティに関する特許及びIoT機器及びアルゴリズムのビジネス応用特許 |
Citations (4)
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树索引的方法 |
-
2021
- 2021-02-08 CN CN202110182544.4A patent/CN112817982B/zh active Active
Patent Citations (4)
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)
Title |
---|
GraphChi: Large-Scale Graph Computation on Just a PC;Aapo Kyrola 等;《USENIX》;20121008;全文 * |
一种改进的基于BSP的大图计算模型;赵翔等;《计算机学报》(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112817982A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423368B (zh) | 一种非关系数据库中的时空数据索引方法 | |
CN106777351B (zh) | 基于art树分布式系统图存储计算系统及其方法 | |
CN108600321A (zh) | 一种基于分布式内存云的图数据存储方法和系统 | |
CN103593436B (zh) | 文件合并方法和装置 | |
CN109299113B (zh) | 具有存储感知的混合索引的范围查询方法 | |
CN103246616B (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN105205126B (zh) | 一种地图瓦片的存储方法及其存储系统 | |
US8229916B2 (en) | Method for massively parallel multi-core text indexing | |
CN103455531B (zh) | 一种支持高维数据实时有偏查询的并行索引方法 | |
CN109522428B (zh) | 一种基于索引定位的图计算系统的外存访问方法 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
Veeraiah et al. | An efficient data duplication system based on hadoop distributed file system | |
CN110413776B (zh) | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 | |
CN110321331A (zh) | 利用多级散列函数来确定存储地址的对象存储系统 | |
CN101800768B (zh) | 一种基于存储联盟子集划分的网格数据副本生成方法 | |
CN112817982B (zh) | 一种基于lsm树的动态幂律图存储方法 | |
JP2023543004A (ja) | ヒルベルト曲線に基づくr木インデックスのマージ更新方法、装置及び媒体 | |
Liroz-Gistau et al. | Dynamic workload-based partitioning for large-scale databases | |
CN112947860A (zh) | 一种分布式数据副本的分级存储与调度方法 | |
CN112051968A (zh) | 基于Kafka的分布式数据流分级缓存自动迁移算法 | |
Feng et al. | HQ-Tree: A distributed spatial index based on Hadoop | |
CN113722320A (zh) | 一种基于并行的图数据索引的持久化方法 | |
CN106547484A (zh) | 一种基于raid5的实现内存数据可靠性方法及系统 | |
CN107257356B (zh) | 一种基于超图分割的社交用户数据优化放置方法 | |
CN111427920A (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 |