CN112346659B - 一种分布式对象存储元数据的存储方法、设备及存储介质 - Google Patents

一种分布式对象存储元数据的存储方法、设备及存储介质 Download PDF

Info

Publication number
CN112346659B
CN112346659B CN202011221437.XA CN202011221437A CN112346659B CN 112346659 B CN112346659 B CN 112346659B CN 202011221437 A CN202011221437 A CN 202011221437A CN 112346659 B CN112346659 B CN 112346659B
Authority
CN
China
Prior art keywords
value
metadata
aep
pointer
storage
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
Application number
CN202011221437.XA
Other languages
English (en)
Other versions
CN112346659A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011221437.XA priority Critical patent/CN112346659B/zh
Publication of CN112346659A publication Critical patent/CN112346659A/zh
Application granted granted Critical
Publication of CN112346659B publication Critical patent/CN112346659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式对象存储元数据的存储方法、设备及存储介质。所述方法包括:写入元数据时,将预写式日志的value写入AEP中;将MemTable中value的指针保存在内存中,value的指针指向AEP中的value地址;将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址。本发明借助AEP低延时、大容量和掉线非易失的特性,通过将value信息分开保存,在MemTable中只保留value的指针,节省了内存消耗,减少了不必要的重复写;在sst文件中只保存value的指针,减少了压缩过程中的放大写以及不必要的垃圾处理,显著提高了元数据读写性能,从而整体提升分布式对象存储的性能。

Description

一种分布式对象存储元数据的存储方法、设备及存储介质
技术领域
本发明涉及分布式对象存储领域,具体涉及一种分布式对象存储元数据的存储方法、设备及存储介质。
背景技术
随着互联网的发展,互联网数据量(非结构化数据)越来越大,分布式对象存储应运而生。这种新兴的存储方式适用于图片、视频等非结构化数据的存储。它同时具有块存储高速直接访问磁盘的特点以及文件存储分布式共享的特点,因此一经推出就得到广泛的发展与应用。
分布式对象存储元数据分离技术将频繁访问的对象元数据保存在固态硬盘(Solid State Disk,SSD)或者NVMe存储系统(Non-Volatile Memory express,NVMe)等高速存储介质设备中,可以通过提高查询、添加等元数据操作的速度来显著提高数据的读写等操作性能。虽然硬盘设备相对于内存设备存在延迟高、读写性能差等缺点,但是内存设备存在掉线数据易失、容量小的问题,故目前对象存储缺少基于持久内存的元数据存储方案。
目前在分布式对象存储中通过借助SSD或者NVME SSD等高速存储介质设备存储元数据池中的元数据信息,整体提高了存储系统的性能。目前对象存储集群的元数据最终都存储在Facebook开源的NoSQL存储系统RocksDB中,虽然RocksDB针对高速存储设备做了优化,但是目前分布式对象存储中只是将RocksDB进行简单移植,并未进行专门的优化。虽然SSD或者NVME SSD相对于普通硬盘读取速度有了大幅度提升,但相对于内存设备而言,无论延迟还是吞吐量都存在巨大差异。
发明内容
为了解决上述技术问题,本发明提出了一种分布式对象存储元数据的存储方法、设备及存储介质,将元数据的value分开保存,可以显著提高元数据的读写性能,从而整体提升分布式对象存储的性能。
为实现上述目的,本发明采用以下技术方案:
一种分布式对象存储元数据的存储方法,包括:
写入元数据时,将预写式日志的value写入AEP中;
将MemTable中value的指针保存在内存中,value的指针指向AEP中的value地址;
将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址。
进一步地,还包括:读取元数据时,将块缓存存入AEP中,通过访问AEP获取数据。
进一步地,所述读取块缓存数据时,将块缓存存入AEP中,通过memkind工具访问AEP获取数据。
进一步地,所述将预写式日志的value写入AEP中通过PMDK工具实现。
进一步地,所述将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址,具体为:
当Immutable向sst文件下刷时,sst文件保存value的指针,value的指针指向AEP中的value地址。
进一步地,当某一level的sst文件写满后,该level的sst文件与下一level的sst文件合并,此时将value的指针合并。
进一步地,所述元数据为对象存储的xattr或者omap元数据信息。
进一步地,所述AEP使用直接访问模式。
本发明还提出了一种分布式对象存储元数据的存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述分布式对象存储元数据的存储方法的步骤。
本发明还提出了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述分布式对象存储元数据的存储方法的步骤。
本发明的有益效果是:
本发明通过提出一种分布式对象存储元数据的存储方法、设备及存储介质,针对RocksDB数据库存储对象元数据性能问题,通过将易失性内存和非易失性内存结合起来,借助AEP低延时、大容量和掉线非易失的特性,通过修改当前分布式对象存储中存储元数据存储数据库RocksDB的代码,共同存储分布式对象存储的元数据信息,从而显著提高对象存储的性能。通过将value信息分开保存,在MemTable中只保留value的指针,节省了内存消耗,减少了不必要的重复写;在sst文件中只保存value的指针,减少了压缩过程中的放大写以及不必要的垃圾处理。同时利用AEP提高块缓存容量,提高缓存命中率。相较于原始的RocksDB保存元数据的方法,本发明可以显著提高元数据读写性能,从而整体提升分布式对象存储的性能。
而且,由于AEP支持远程直接数据存取(Remote Direct Memory Access,RDMA),所以本发明还可以在不占用CPU的情况下直接通过RDMA直接同步不同节点AEP中WAL和SST中的value信息。
附图说明
图1是本发明实施例分布式对象存储元数据的存储方法流程示意图。
图2是本发明实施例分布式对象存储元数据的存储设备结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
Apache Pass(AEP)是Intel推出的一种新型的非易失Optance Memory设备,是一种介于动态随机存取存储器(Dynamic Random Access Memory,DRAM)和硬盘之间的设备,具有低延时、高性能、大容量以及价格便宜等优势。本发明利用AEP低延迟和持久性的特性,将之前通过DRAM和SSD保存RocksDB的value信息修改为保存在AEP中,将RocksDB数据库中元数据的key和value分开保存。
如图1所示,本发明实施例公开了一种分布式对象存储元数据的存储方法,包括:
写入元数据时,将预写式日志的value写入AEP中;
将MemTable中value的指针保存在内存中,value的指针指向AEP中的value地址;
将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址。
基于AEP改进的分布式对象存储元数据存储方法与原有的通过DRAM和SSD保存RocksDB的value信息相比,修改主要包括元数据读过程和写过程两个方面的修改。
在元数据写过程中,当有对象存储的xattr或者omap等元数据信息需要写入元数据时:
1)将RocksDB写过程中的预写式日志(Write ahead Log,WAL)中键(key)和值(value)通过PMDK(Persistent Memory Development Kit,Intel开发的一系列旨在方便非易失性内存的应用开发的函数库和工具)保存在AEP中,从而提高写WAL的写性能。相对于之前的将WAL保存在SSD或者NVME中,将WAL保存在AEP中可以显著提高WAL的写速度。
2)将MemTable中的key和value分别存储,将key和value的指针保存在内存中,value的指针指向AEP中的value地址,即WAL中value的地址,直接使用WAL中保存的value的值。具体来说,元数据的key和value的指针被写入active MemTable中。由于WAL的写先于MemTable,该方法一方面可以减少一次重复写,从而提高性能,另一方面AEP相对于DRAM并没有显著的性能下降,可以在不降低性能的情况下减少DRAM的使用,降低集群成本。
3)将RocksDB的LSM tree保存在硬盘设备上,但是代替之前将key和value保存在sst(Sorted String Table)文件中的方法,本发明实施例只将key和value的指针保存在SSD中的sst文件中,其中value的指针指向AEP中的value地址。具体地,当Immutable向sst文件下刷时,sst文件仅保存key和value的指针,value的指针指向AEP中的value地址。当某一level的sst文件写满后,该level的sst文件与下一level的sst文件合并,此时将key和value的指针合并,value的值仍然保留在AEP中。本发明实施例只将value的指针保存在sst文件中,一方面可以减少在压缩期间的写放大,因为修改后只需要在压缩时移动value的指针,这显著小于移动value的值的消耗。另一方面可以减少不必要的垃圾回收,之前的方法将value的内容保存在文件中,这就需要定期的去检查和删除文件中的无效值,通过本发明的方法,可以有效地释放无效值。
在元数据读过程中:
将之前存储在DRAM中的块缓存(block cache)改为存储在AEP中,借助AEP的大容量缓存更多的数据,进而提高缓存命中率,提高元数据的读性能,当需要读块缓存的数据时,通过memkind工具访问AEP中的数据。
需要注意的是,AEP包含两种模式,即内存(memory)模式和直接访问(app direct)模式,本发明实施例使用直接访问模式,在该模式下AEP具有非易失性。在元数据写过程中的修改通过PMDK工具保证写入AEP数据的一致性;在元数据的读过程中使用memkind工具使用AEP,在这种使用方式下,AEP具有DRAM的易失性和访问方式,在读缓存中不需要保证数据的掉电非易失性。
如图2所示,本发明实施例还公开了一种分布式对象存储元数据的存储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述分布式对象存储元数据的存储方法的步骤。
本发明实施例还公开了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述分布式对象存储元数据的存储方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (9)

1.一种分布式对象存储元数据的存储方法,其特征在于,包括:
写入元数据时,将预写式日志的value写入AEP中;
将MemTable中value的指针保存在内存中,value的指针指向AEP中的value地址;
将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址;
所述将LSM tree中value的指针保存在硬盘中,value的指针指向AEP中的value地址,具体为:
当Immutable向sst文件下刷时,sst文件保存value的指针,value的指针指向AEP中的value地址。
2.根据权利要求1所述的分布式对象存储元数据的存储方法,其特征在于,还包括:读取元数据时,将块缓存存入AEP中,通过访问AEP获取数据。
3.根据权利要求2所述的分布式对象存储元数据的存储方法,其特征在于,所述读取元数据时,将块缓存存入AEP中,通过memkind工具访问AEP获取数据。
4.根据权利要求1所述的分布式对象存储元数据的存储方法,其特征在于,所述将预写式日志的value写入AEP中通过PMDK工具实现。
5.根据权利要求1所述的分布式对象存储元数据的存储方法,其特征在于,当某一level的sst文件写满后,该level的sst文件与下一level的sst文件合并,此时将value的指针合并。
6.根据权利要求1所述的分布式对象存储元数据的存储方法,其特征在于,所述元数据为对象存储的xattr或者omap元数据信息。
7.根据权利要求1所述的分布式对象存储元数据的存储方法,其特征在于,所述AEP使用直接访问模式。
8.一种分布式对象存储元数据的存储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述分布式对象存储元数据的存储方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述分布式对象存储元数据的存储方法的步骤。
CN202011221437.XA 2020-11-05 2020-11-05 一种分布式对象存储元数据的存储方法、设备及存储介质 Active CN112346659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011221437.XA CN112346659B (zh) 2020-11-05 2020-11-05 一种分布式对象存储元数据的存储方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011221437.XA CN112346659B (zh) 2020-11-05 2020-11-05 一种分布式对象存储元数据的存储方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112346659A CN112346659A (zh) 2021-02-09
CN112346659B true CN112346659B (zh) 2022-07-29

Family

ID=74429406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011221437.XA Active CN112346659B (zh) 2020-11-05 2020-11-05 一种分布式对象存储元数据的存储方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112346659B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342837B (zh) * 2021-08-06 2021-11-09 北京金山云网络技术有限公司 数据发送方法、装置、电子设备和计算机可读介质
CN114356241B (zh) * 2021-12-28 2023-11-03 天翼云科技有限公司 小对象数据的存储方法、装置、电子设备和可读介质
CN117891409A (zh) * 2024-03-13 2024-04-16 济南浪潮数据技术有限公司 分布式存储系统数据管理方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744617A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 一种键-值存储系统中数据文件的合并压缩方法及装置
CN105095287A (zh) * 2014-05-14 2015-11-25 华为技术有限公司 Lsm数据合并排序方法和装置
CN111736767A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种分布式对象存储系统写缓存的方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744617A (zh) * 2013-12-20 2014-04-23 北京奇虎科技有限公司 一种键-值存储系统中数据文件的合并压缩方法及装置
CN105095287A (zh) * 2014-05-14 2015-11-25 华为技术有限公司 Lsm数据合并排序方法和装置
CN111736767A (zh) * 2020-05-29 2020-10-02 苏州浪潮智能科技有限公司 一种分布式对象存储系统写缓存的方法和设备

Also Published As

Publication number Publication date
CN112346659A (zh) 2021-02-09

Similar Documents

Publication Publication Date Title
CN112346659B (zh) 一种分布式对象存储元数据的存储方法、设备及存储介质
CN109213772B (zh) 数据存储方法及NVMe存储系统
CN105574104B (zh) 一种基于ObjectStore的LogStructure存储系统及其数据写入方法
US9298384B2 (en) Method and device for storing data in a flash memory using address mapping for supporting various block sizes
US20120158674A1 (en) Indexing for deduplication
CN107888687B (zh) 一种基于分布式存储系统的代理客户端存储加速方法及系统
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
WO2016095151A1 (en) Storing log records in a non-volatile memory
US20240086332A1 (en) Data processing method and system, device, and medium
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
CN103942301A (zh) 一种面向多数据类型访问应用的分布式文件系统
CN106897311B (zh) 数据库批次更新方法、数据还原日志产生方法与存储装置
US10073851B2 (en) Fast new file creation cache
US20200183601A1 (en) Converting a virtual volume between volume types
CN104239231A (zh) 一种加速二级缓存预热的方法及装置
WO2022037015A1 (zh) 一种基于持久性内存的列式存储方法、装置及设备
US10585802B1 (en) Method and system for caching directories in a storage system
CN115774699B (zh) 数据库共享字典压缩方法、装置、电子设备及存储介质
CN111126619B (zh) 一种机器学习方法与装置
CN110716940B (zh) 一种增量式数据存取系统
CN110659305B (zh) 基于非易失存储系统的高性能关系型数据库服务系统
CN112463041B (zh) 一种主机读写数据的处理方法及相关装置
CN112051968B (zh) 基于Kafka的分布式数据流分级缓存自动迁移方法
US11586353B2 (en) Optimized access to high-speed storage device
LU101617B1 (en) Method for improving the efficiency of reconstructing no mapping tables

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