CN113253926A - 提升新型存储器的查询和存储性能的存储内索引构建方法 - Google Patents
提升新型存储器的查询和存储性能的存储内索引构建方法 Download PDFInfo
- Publication number
- CN113253926A CN113253926A CN202110492491.6A CN202110492491A CN113253926A CN 113253926 A CN113253926 A CN 113253926A CN 202110492491 A CN202110492491 A CN 202110492491A CN 113253926 A CN113253926 A CN 113253926A
- Authority
- CN
- China
- Prior art keywords
- memory
- graph data
- rdf graph
- index
- query
- 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.)
- Pending
Links
- 238000010276 construction Methods 0.000 title description 5
- 230000007334 memory performance Effects 0.000 title description 2
- 238000013507 mapping Methods 0.000 claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 11
- 239000007787 solid Substances 0.000 claims abstract description 4
- 238000012163 sequencing technique Methods 0.000 abstract description 4
- 230000002860 competitive effect Effects 0.000 abstract description 2
- 238000012005 ligant binding assay Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种提升新型存储器的查询和存储性能的存储内索引构建方法,在存储RDF图数据时,先对RDF图数据进行排序,排序之后划分为不同的页,将所述的页建立能实现二分查找的跳表,所述跳表中节点的结构为(k,v)的形式,k对应的是节点信息,v对应的是逻辑地址;之后,将有序的RDF图数据存储到固态硬盘SSD中;利用FTL建立RDF图数据存储的物理地址和逻辑地址的映射表,将所述映射表存储储。本发明可以实现快速的查找并且高效的管理SSD,具有很强的竞争优势。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种提升新型存储器的查询和存储性能的存储内索引构建方法。
背景技术
存储RDF图数据的常见方法包括基于内存的存储。该方法主要是把图数据放到内存中,在读取数据的时侯可以采用页级映射和块级映射。页级映射是以闪存(flash)的页为映射粒度。用户通过逻辑页地址(LBA)访问固态硬盘(SSD),SSD是以物理页地址(PBA)为基本单元读写的,当用户写入一个逻辑页数据时,SSD主控会找出一个物理页写入数据,并且通过映射表建立物理页和逻辑页的映射,而且物理页可以映射到任何的逻辑页,但是需要将映射信息保存下来,以便之后读取,虽然页级映射方法可以提供细粒度的映射,而且提供了很大的灵活性。
但随着互联网的发展,庞大的RDF图数据需要占据大量的内存,这意味着需要大量的内存来存储映射信息,当需要查询某个图数据的时候,也需要很长时间遍历映射表,导致效率低下;当设备重新启动的时候,需要扫描整个flash来建立映射信息表,进一步也导致了时间的浪费。
针对页级映射的索引需要大量内存的问题,可以采用块级映射存储RDF图数据,将相关的三元组图信息存储到分块的SSD中,同样需要在SSD中建立一个映射表,存储物理块与逻辑块之间的映射关系,假设每个块包含512页,那么映射所建立的索引就变为页级映射的512分之一,虽然大大减少了RDF映射所占的内存,但是块内数据页的位置是固定的,当需要更新一个数据页的时候需要更新整个数据块,因此没有页级映射高效。
除此之外,为了防止大量小更新的工作负载,无论页是否是满的,全部flash都会写入,这会增加写入放大并使得块级映射普遍低效。
随着互联网的发展,RDF数据大幅增长,因此,如何有效的存储和管理海量的RDF数据已经成为一项巨大的挑战,虽然现在已经提出了很多的方法,例如RDF-3X,RDF Cube等,但是查询速度慢是一个致命的弱点,如何在大数据量的情况下,提高RDF存储效率和查询速度成为研究的关键。
发明内容
本发明的目的是针对现有技术中存在的技术缺陷,而提供一种提升新型存储器的查询和存储性能的存储内索引构建方法,可以实现快速的查找并且高效的管理SSD,具有很强的竞争优势。
为实现本发明的目的所采用的技术方案是:
一种提升新型存储器的查询和存储性能的存储内索引构建方法,在存储RDF图数据时,先对RDF图数据进行排序,排序之后划分为不同的页,将所述的页建立能实现二分查找的跳表,所述跳表中节点的结构为(k,v)的形式,k对应的是节点信息,v对应的是逻辑地址;之后,将有序的RDF图数据存储到固态硬盘SSD中;
利用FTL建立RDF图数据存储的物理地址和逻辑地址的映射表,将所述映射表存储储。
其中,所述跳表通过以下方式形成:
先对有序单链表中每两个节点建立一级索引,再对第一级索引每两个节点建立二级索引,从而形成二级索引结构。
其中,执行RDF图数据读取时,根据跳表查到RDF图数据的逻辑地址,利用FTL建立的映射表就将逻辑地址转化为物理地址,从而读取flash上的数据。
本发明将跳表与FTL(Flash Translation Layer,闪存转换层)结合,利用跳表的快速查找来提高了查询效率,利用FTL管理SSD,通过对外隐藏物理地址,把对flash的操作虚拟成对磁盘HDD(机械硬盘)的操作,简化了操作系统的负担,并实现了很好的磨损平衡与垃圾回收。
附图说明
图1为有序链表的示意图;
图2为二级索引链表(跳表)的示意图;
图3为本发明的提升新型存储器的查询和存储性能的存储内索引构建方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明是将跳表和FTL(Flash Translation Layer,闪存转换层)结合起来存储RDF图数据的。FTL(Flash Translation Layer,闪存转换层)层,其任务是将FTL层之上的LBA转化为底层需要的PBA。就其转换任务而言,FTL层需要一张从LBA到PBA的映射表,称之为FTL表,它存放在内存中,在整个固态硬盘的读写过程中都需要实时查找、更新这张表,从而能正确读取或写入数据,所以这张表不但要保证能够正确的更新读取,还要保证设备掉电时能正确地保存以及在下一次上电时能正确恢复。
为了改进页级存储查询时间太长的问题,在存储RDF图数据的时候,采用跳表的形式,先将RDF排序,将有序的RDF图数据划分为页再存储到SSD中。一方面FTL向主机隐藏了flash内部的特征,向主机提供一组逻辑页地址LBA,主机通过逻辑页地址LBA访问,而FTL可以把逻辑地址和物理地址对应起来;另一方面在flash中读和写都是以页为单位,而擦除是以块为单位,这将导致逻辑页地址LBA和物理页地址PBA的关系不在固定,FTL可以提供很好的转换机制。
图1是有序的单链表,如果想要查找某个节点,需要从头开始遍历,所以时间复杂度为0(n),对有序的单链表进行改造,就会形成跳表,如图2所示。
构造方法为:
先对链表中每两个节点建立一级索引,再对第一级索引每两个节点建立二级索引。当查找数据14的时候,首先从二级索引开始,14>1,14>12,所以通过数据12的down指针找到一级索引里的顶点12,同理,14>12,但是14<16,所以通过数据12的down指针找到就可以很快的找到原始链表里的数据14。
有序链表需要比较6次才可以找到,但在这里只需要比较4次就可以找到,所以跳表的引入,可以大大提高了查找效率,跳表在大量的数据查找中更能发挥优势。
本发明中,先对RDF图数据进行排序,排序之后划分为不同的页,将这些页建立跳表,跳表中节点的结构为(k,v)的的形式,k对应的是节点信息,v对应的是逻辑地址,基于跳表是有序链表的特点,这样的结构可以进行二分查找,从而实现了快速查找。
根据跳表查到的逻辑地址,利用FTL建立的映射表就可以快速的将逻辑地址转化为物理地址,从而可以快速的读取flash上的数据。
值得注意的是,当需要更新某个逻辑页的时候,FTL把数据写入到一个不同的空闲物理页并更新映射表,把这个页上包含的旧数据标记为无效。
经过一段时间的更新后,物理块中可能包含较多的无效页和一些有效页,需要把这些无效页进行擦除。在SSD中,擦除的基本单位是块,所以需要找到另外一个空闲的物理块,将原来物理块中有效页复制到新的块上,而丢弃无效页,在将FTL映射表中逻辑块对应的物理块修改为新的物理块,把原来的物理块置为无效,当再次写入到原来的物理块的时候,就可以先进行擦除再写入,这样就实现了垃圾回收。
本发明使用跳表的结构不仅提高了搜索性能,而且也进一步提高了插入与删除操作的性能。FTL的使用,使得SSD可以像HDD一样便于操作,由于建立了物理块和逻辑块之间的映射关系,对外相对于一个黑盒,上层应用可以通过逻辑地址对黑盒进行访问,在修改的时候不需要改动原来的物理块。
Flash因为有P/E循环限制不能无限的擦除,若一个块频繁的被写入与擦除,将会导致SSD容量的减少,面FIT可以尽可能平均的将工作分配给每个flash,这样会使得各个块可以在同一时间达到P/E循环限制而耗尽,从而达到最好的全局损耗平衡。
以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种提升新型存储器的查询和存储性能的存储内索引构建方法,其特征在于,在存储RDF图数据时,先对RDF图数据进行排序,排序之后划分为不同的页,将所述的页建立能实现二分查找的跳表,所述跳表中节点的结构为(k,v)的形式,k对应的是节点信息,v对应的是逻辑地址;之后,将有序的RDF图数据存储到固态硬盘SSD中;
利用FTL建立RDF图数据存储的物理地址和逻辑地址的映射表,将所述映射表存储。
2.根据权利要求1所述提升新型存储器的查询和存储性能的存储内索引构建方法,其特征在于,所述跳表通过以下方式形成:
先对有序单链表中每两个节点建立一级索引,再对第一级索引每两个节点建立二级索引,从而形成二级索引结构。
3.根据权利要求1所述提升新型存储器的查询和存储性能的存储内索引构建方法,其特征在于,执行RDF图数据读取时,根据跳表查到RDF图数据的逻辑地址,利用FTL建立的映射表就将逻辑地址转化为物理地址,从而读取flash上的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110492491.6A CN113253926A (zh) | 2021-05-06 | 2021-05-06 | 提升新型存储器的查询和存储性能的存储内索引构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110492491.6A CN113253926A (zh) | 2021-05-06 | 2021-05-06 | 提升新型存储器的查询和存储性能的存储内索引构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113253926A true CN113253926A (zh) | 2021-08-13 |
Family
ID=77223768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110492491.6A Pending CN113253926A (zh) | 2021-05-06 | 2021-05-06 | 提升新型存储器的查询和存储性能的存储内索引构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113253926A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961753A (zh) * | 2021-09-08 | 2022-01-21 | 南湖实验室 | 一种基于集合的图数据存储模型及其图数据库 |
CN115562595A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | 一种卷创建方法及装置、卷读写方法及装置、电子设备 |
CN118193542A (zh) * | 2024-05-15 | 2024-06-14 | 天津理工大学 | 一种面向边缘时序数据存储的时变跳表索引系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299100A (zh) * | 2018-10-12 | 2019-02-01 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN110096515A (zh) * | 2019-05-10 | 2019-08-06 | 天津大学深圳研究院 | 一种基于三元组的rdf数据管理方法、装置及存储介质 |
CN110110034A (zh) * | 2019-05-10 | 2019-08-09 | 天津大学深圳研究院 | 一种基于图的rdf数据管理方法、装置及存储介质 |
CN110134335A (zh) * | 2019-05-10 | 2019-08-16 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
CN110851616A (zh) * | 2019-10-08 | 2020-02-28 | 杭州电子科技大学 | 一种基于领域子图的rdf知识图谱存储与管理方法 |
-
2021
- 2021-05-06 CN CN202110492491.6A patent/CN113253926A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299100A (zh) * | 2018-10-12 | 2019-02-01 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN109918380A (zh) * | 2019-03-08 | 2019-06-21 | 上海拉扎斯信息科技有限公司 | 数据处理方法、装置、存储介质和电子设备 |
CN110096515A (zh) * | 2019-05-10 | 2019-08-06 | 天津大学深圳研究院 | 一种基于三元组的rdf数据管理方法、装置及存储介质 |
CN110110034A (zh) * | 2019-05-10 | 2019-08-09 | 天津大学深圳研究院 | 一种基于图的rdf数据管理方法、装置及存储介质 |
CN110134335A (zh) * | 2019-05-10 | 2019-08-16 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
CN110851616A (zh) * | 2019-10-08 | 2020-02-28 | 杭州电子科技大学 | 一种基于领域子图的rdf知识图谱存储与管理方法 |
Non-Patent Citations (3)
Title |
---|
GUOHUA YAN等: "《GraphPage: RDF Graph in SSD Pages: Work-in-Progress》", 《2020 INTERNATIONAL CONFERENCE ON HARDWARE/SOFTWARE CODESIGN AND SYSTEM SYNTHESIS (CODES+ISSS)》, 18 January 2021 (2021-01-18), pages 1 - 2 * |
汪文君著: "Java高并发编程详解", vol. 1, 30 June 2020, 机械工业出版社, pages: 213 - 221 * |
陈仁海等: "<nternal Structure Aware RDF Data Management in SSDs>", 《 PROCEEDINGS OF THE 2019 56TH ACM/EDAC/IEEE DESIGN AUTOMATION CONFERENCE (DAC)》, 9 September 2019 (2019-09-09), pages 1 - 2 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961753A (zh) * | 2021-09-08 | 2022-01-21 | 南湖实验室 | 一种基于集合的图数据存储模型及其图数据库 |
CN113961753B (zh) * | 2021-09-08 | 2023-04-21 | 南湖实验室 | 一种基于集合的图数据存储模型及其图数据库 |
CN115562595A (zh) * | 2022-12-06 | 2023-01-03 | 苏州浪潮智能科技有限公司 | 一种卷创建方法及装置、卷读写方法及装置、电子设备 |
CN118193542A (zh) * | 2024-05-15 | 2024-06-14 | 天津理工大学 | 一种面向边缘时序数据存储的时变跳表索引系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
US11100071B2 (en) | Key-value store tree data block spill with compaction | |
KR101289931B1 (ko) | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 | |
KR101257990B1 (ko) | 인덱스 캐시 트리 | |
US8037112B2 (en) | Efficient access of flash databases | |
US10740251B2 (en) | Hybrid drive translation layer | |
KR101663667B1 (ko) | 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 | |
US20200065256A1 (en) | Logical to physical memory address mapping tree | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN104102591A (zh) | 计算机子系统及在其中实现闪存转换层的方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
US20080263061A1 (en) | Self-Tuning Index for Flash-Based Databases | |
CN113419675A (zh) | 用于存储器的写操作方法及读操作方法 | |
Ross | Modeling the performance of algorithms on flash memory devices | |
KR100533683B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
KR20120034976A (ko) | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 | |
KR101353967B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 | |
KR100999111B1 (ko) | 플래시 변환 계층 구조를 갖는 장치와 이를 이용한 선 반입 방법 및 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법 | |
KR20100099888A (ko) | 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 | |
KR101270777B1 (ko) | 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법 | |
KR101373613B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치 | |
Lim et al. | Hashing directory scheme for NAND flash file system | |
CN107832234B (zh) | 一种用于nand flash的日志块快速命中方法 |
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 |