CN110837338A - 一种存储索引处理方法及装置 - Google Patents

一种存储索引处理方法及装置 Download PDF

Info

Publication number
CN110837338A
CN110837338A CN201810929267.7A CN201810929267A CN110837338A CN 110837338 A CN110837338 A CN 110837338A CN 201810929267 A CN201810929267 A CN 201810929267A CN 110837338 A CN110837338 A CN 110837338A
Authority
CN
China
Prior art keywords
memory
index
storage
data
tables
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
Application number
CN201810929267.7A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810929267.7A priority Critical patent/CN110837338A/zh
Publication of CN110837338A publication Critical patent/CN110837338A/zh
Pending legal-status Critical Current

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/0608Saving storage space on 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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

本申请公开了一种存储索引处理方法及装置,包括:当数据写入时,生成该数据的索引并更新至更新表(UpdateMap)中,所述更新表存储在内存中;当内存中的UpdateMap达到预先设置的数据量时,将内存中的UpdateMap压缩生成压缩表(CompressMap)并持久化存储在存储设备中。本申请满足了块存储高性能的同时提供了块存储的高可用性。

Description

一种存储索引处理方法及装置
技术领域
本申请涉及但不限于块存储技术,尤指一种存储索引处理方法及装置。
背景技术
分布式存储是一种通过将数据存储在不同的物理位置,以保证高数据安全性的存储方案。块存储是一种存储类型,常见底层存储设备如磁盘、SSD等,一般在云计算中后端实现为分布式存储。索引则是为了数据检索查找而在数据写入时生成的一个标识。
块存储的数据格式具有定长、连续的特点,为了高效、可靠地获取需要的数据,索引设计尤为重要。
发明内容
为了解决上述技术问题,本发明实施例提供一种存储索引处理方法及装置,能够满足块存储高性能的同时提供块存储的高可用。
为了达到本发明目的,本申请提供了一种存储索引处理方法,包括:
当数据写入时,生成该数据的索引并更新至更新表中,所述更新表存储在内存中;
当内存中的更新表达到预先设置的数据量时,将内存中的更新表压缩生成压缩表并持久化存储在存储设备中。
可选地,所述方法还包括:
对第一数量个所述压缩表进行合并处理;
和/或,对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理。
可选地,所述对第一数量个所述压缩表进行合并处理,包括:
将所述第一数量个压缩表合并成一个压缩表,并将合并后的压缩表持久化存储到一个索引文件中。
可选地,所述对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理,包括:
将所述第一数量个压缩表与所述第二数量个更新表合并成一个压缩表,并持久化存储到一个新的索引文件中。
可选地,所述合并处理包括:辅助压缩、和/或主压缩。
可选地,所述生成该数据的索引并更新至更新表中,包括:
当用户执行输入/输出操作将数据写入到当前日志文件时,为该数据生成一条索引纪录,并更新到所述更新表中。
可选地,所述将内存中的更新表压缩生成压缩表,包括:
通过刷新操作,将所述内存中的更新表压缩生成一个压缩表并持久化存储在索引文件中。
可选地,所述预先设置的数据量的大小包括:占用所述内存大小的百分比,或者,占用所述存储设备的大小的百分比。
本申请还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的存储索引处理方法。
本申请又提供了一种用于实现存储索引处理的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:上述任一项所述的存储索引处理方法的步骤。
本申请再提供了一种存储索引处理装置,包括:第一处理模块、第二处理模块,其中,
第一处理模块,用于当数据写入时,生成该数据的索引并更新至更新表中,所述更新表存储在内存中;
第二处理模块,用于当在内存中的更新表达到预先设置的数据量时,将内存中的更新表压缩生成压缩表并持久化存储在存储设备中。
可选地,还包括:第三处理模块,用于对第一数量个所述压缩表进行合并处理;
和/或,对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理。
本申请技术方案包括:当数据写入时,生成该数据的索引并更新至更新表(UpdateMap)中,所述更新表存储在内存中;当内存中的UpdateMap达到预先设置的数据量时,将内存中的UpdateMap压缩生成压缩表(CompressMap)并持久化存储在存储设备中。本申请满足了块存储高性能的同时提供了块存储的高可用性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请存储索引处理方法的流程图;
图2为本申请实现存储索引处理的第一实施例的示意图;
图3为本申请实现存储索引处理的第二实施例的示意图;
图4为本申请实现存储索引处理的第三实施例的示意图;
图5为本申请存储索引处理装置的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
为了满足下一代存储对硬件、成本、性能的需求,提出了基于日志结构(LogStructure)的架构实现块存储功能。为了满足块存储高性能的同时提供高可用,本申请提供一种存储索引处理方法,图1为本申请存储索引处理方法的流程图,如图1所示,包括:
步骤100:当数据写入时,生成该数据的索引并更新至更新表(UpdateMap)中,所述更新表存储在内存中。
可选地,本步骤包括:
当用户执行输入/输出(I/O)操作如追加(append)数据写入到当前日志文件(logfile)时,会为该数据生成一条索引纪录,并更新到UpdateMap中。
本步骤中,生成的索引为UpdateMap类型并存储在内存中,这样,在读取数据时能够实现快速查找,满足了块存储的高性能。
可选地,UpdateMap可读可更新,用于前端写I/O的索引信息更新。
步骤101:当内存中的UpdateMap达到预先设置的数据量时,将内存中的UpdateMap压缩生成压缩表(CompressMap)并持久化存储在存储设备中。
可选地,预先设置的数据量的大小表示占用整个内存大小的百分比,可以根据内存的实际占用量来设置,比如,当内存占用量即内存中为写入磁盘的数据达到80%时,需要对内存数据进行处理以减少内存的压力,那么,该数据量可以设置为内存大小的80%。这里仅是举例说明,并不用于限定该数据量的大小。
可选地,预先设置的数据量的大小也可以表示占用整个存储设备的大小的百分比。
可选地,将内存中的UpdateMap压缩生成CompressMap,包括:
如图2所示,通过刷新(Flush)操作,将内存中的UpdateMap压缩生成一个CompressMap并持久化存储在索引文件(IndexFile)中。这样,减少了UpdateMap的内存占用,减少了日志文件的个数。
也就是说,通过Flush操作,将内存中的UpdateMap冻结,刷新产生一个新的CompressMap。
本步骤中,通过Flush的操作可以刷新CompressMap,该过程中会分配一个新的Updatemap以供前端I/O更新,因此,本步骤中对内存中的UpdateMap的处理过程不会影响前端I/O请求的操作。
通过本步骤中的Flush UpdatMap过程,会持久化存储CompressMap到一个新的IndexFile,这样,在数据的下次加载过程中,只需要加载CompressMap即可,而不需要从数据日志中恢复索引结构。
本申请中,当内存占用量达到预先设置的数据量,会对内存中的UpdateMap类型的索引进行处理,以生成一个CompressMap类型的索引文件并存到磁盘中,这样,一方面减少了内存占用,进而保证了后续写操作的性能,另一方面也使得数据得到了很好的保护。
本申请提供的存储索引处理方法,满足了块存储高性能的同时提供了块存储的高可用性,非常适合应用于更新UpdateMap以减少内存占用、热升级、数据整理等场景。
可选地,随着存储设备中的CompressMap增多,本申请索引处理方法还包括:对预设数量个CompressMap进行合并处理,和/或,对预设第一数量个CompressMap和预设第二数量个UpdateMap进行合并处理。
可选地,合并处理包括但不限于以下任意组合:辅助压缩(Minor Compaction)、主压缩(Major Compaction)。
可选地,如图3所示,Minor Compaction,用于将若干个(个数可以预先设置)CompressMap合并成一个新的CompressMap,并将合并后的新的CompressMap持久化存储到一个新的IndexFile中。该过程前端I/O无感知。Minor Compaction的合并处理方式主要应用于整理CompressMap个数,因为过多的CompressMap对内存、读性能、索引加载都不优化;
可选地,如图4所示,Major Compaction,用于将当前所有CompressMap与部分UpdateMap合并成一个新的CompressMap,并持久化存储到一个新的IndexFile中;也可以是将当前所有CompressMap与所有UpdateMap合并成一个新的CompressMap,并持久化存储到一个新的IndexFile中。Major Compaction的合并处理方式主要应用于快照、垃圾回收任务加载、索引文件整理等场景。
通过本申请的进一步对存储索引的合并处理,满足了不同场景(包括物理环境及业务场景)的需求。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的存储索引处理方法。
本申请还提供一种用于实现分布式共享存储的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:上述任一项所述的存储索引处理方法的步骤。
图5为本申请存储索引处理装置的组成结构示意图,如图5所示,包括:第一处理模块、第二处理模块,其中,
第一处理模块,用于数据写入时,生成该数据的索引并更新至UpdateMap中,所述UpdateMap存储在内存中;
第二处理模块,用于在内存中的UpdateMap达到预先设置的数据量时,将内存中的UpdateMap压缩生成CompressMap并持久化存储在存储设备中。
可选地,第一处理模块具体用于:
当用户执行I/O操作如append数据写入到当前logfile时,会为该数据生成一条索引纪录,并更新到UpdateMap中。
可选地,第二处理模块具体用于:
通过Flush操作,将内存中的UpdateMap压缩生成一个CompressMap并持久化存储在IndexFile中。
本申请提供的存储索引处理装置,满足了块存储高性能的同时提供了块存储的高可用性,非常适合应用于更新UpdateMap以减少内存占用、热升级、数据整理等场景。
可选地,本申请存储索引处理装置还包括:第三处理模块,用于:对第一数量个CompressMap进行合并处理;
和/或,对预设第一数量个CompressMap和预设第二数量个UpdateMap进行合并处理。
可选地,第三处理模块具体用于:
将若干个(个数可以预先设置)CompressMap合并成一个新的CompressMap,并将合并后的压缩表持久化存储到一个新的IndexFile中;
和/或,
将第一数量个CompressMap与第二数量个UpdateMap合并成一个新的CompressMap,并将合并后的压缩表持久化存储到一个新的IndexFile中。
通过本申请的进一步包括的第三处理模块对索引的合并处理,满足了不同场景(包括物理环境及业务场景)的需求。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (12)

1.一种存储索引处理方法,包括:
当数据写入时,生成该数据的索引并更新至更新表中,所述更新表存储在内存中;
当内存中的更新表达到预先设置的数据量时,将内存中的更新表压缩生成压缩表并持久化存储在存储设备中。
2.根据权利要求1所述的存储索引处理方法,所述方法还包括:
对第一数量个所述压缩表进行合并处理;
和/或,对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理。
3.根据权利要求2所述的存储索引处理方法,其中,所述对第一数量个所述压缩表进行合并处理,包括:
将所述第一数量个压缩表合并成一个压缩表,并将合并后的压缩表持久化存储到一个索引文件中。
4.根据权利要求2所述的存储索引处理方法,其中,所述对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理,包括:
将所述第一数量个压缩表与所述第二数量个更新表合并成一个压缩表,并持久化存储到一个新的索引文件中。
5.根据权利要求1所述的存储索引处理方法,其中,所述合并处理包括:辅助压缩、和/或主压缩。
6.根据权利要求1或2所述的存储索引处理方法,其中,所述生成该数据的索引并更新至更新表中,包括:
当用户执行输入/输出操作将数据写入到当前日志文件时,为该数据生成一条索引纪录,并更新到所述更新表中。
7.根据权利要求1或2所述的存储索引处理方法,其中,所述将内存中的更新表压缩生成压缩表,包括:
通过刷新操作,将所述内存中的更新表压缩生成一个压缩表并持久化存储在索引文件中。
8.根据权利要求7所述的存储索引处理方法,其中,所述预先设置的数据量的大小包括:占用所述内存大小的百分比,或者,占用所述存储设备的大小的百分比。
9.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~权利要求8任一项所述的存储索引处理方法。
10.一种用于实现存储索引处理的装置,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:权利要求1~权利要求8任一项所述的存储索引处理方法的步骤。
11.一种存储索引处理装置,包括:第一处理模块、第二处理模块,其中,
第一处理模块,用于当数据写入时,生成该数据的索引并更新至更新表中,所述更新表存储在内存中;
第二处理模块,用于当在内存中的更新表达到预先设置的数据量时,将内存中的更新表压缩生成压缩表并持久化存储在存储设备中。
12.根据权利要求11所述的存储索引处理装置,还包括:第三处理模块,用于对第一数量个所述压缩表进行合并处理;
和/或,对预设第一数量个所述压缩表和预设第二数量个所述更新表进行合并处理。
CN201810929267.7A 2018-08-15 2018-08-15 一种存储索引处理方法及装置 Pending CN110837338A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810929267.7A CN110837338A (zh) 2018-08-15 2018-08-15 一种存储索引处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810929267.7A CN110837338A (zh) 2018-08-15 2018-08-15 一种存储索引处理方法及装置

Publications (1)

Publication Number Publication Date
CN110837338A true CN110837338A (zh) 2020-02-25

Family

ID=69572985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810929267.7A Pending CN110837338A (zh) 2018-08-15 2018-08-15 一种存储索引处理方法及装置

Country Status (1)

Country Link
CN (1) CN110837338A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651419A (zh) * 2020-06-05 2020-09-11 杭州海康威视系统技术有限公司 数据存储方法、装置及存储介质
CN112035065A (zh) * 2020-08-28 2020-12-04 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473092A (zh) * 2009-07-24 2012-05-23 苹果公司 索引缓存树
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置
CN107066498A (zh) * 2016-12-30 2017-08-18 成都华为技术有限公司 键值kv存储方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102473092A (zh) * 2009-07-24 2012-05-23 苹果公司 索引缓存树
CN107066498A (zh) * 2016-12-30 2017-08-18 成都华为技术有限公司 键值kv存储方法和装置
CN106886375A (zh) * 2017-03-27 2017-06-23 百度在线网络技术(北京)有限公司 存储数据的方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651419A (zh) * 2020-06-05 2020-09-11 杭州海康威视系统技术有限公司 数据存储方法、装置及存储介质
CN111651419B (zh) * 2020-06-05 2023-10-20 杭州海康威视系统技术有限公司 数据存储方法、装置及存储介质
CN112035065A (zh) * 2020-08-28 2020-12-04 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及计算机可读存储介质
CN112035065B (zh) * 2020-08-28 2022-06-07 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN111324665B (zh) 一种日志回放方法及装置
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
CN107817946B (zh) 用于混合存储设备读写数据的方法以及装置
US20140280397A1 (en) Heterogenic volume generation and use system
CN107291399B (zh) 一种基于spdk的后端存储方法、装置及系统
CN112181902B (zh) 数据库的存储方法、装置及电子设备
CN110597762A (zh) 文件处理方法、装置、设备及存储介质
CN115048053A (zh) 数据存储方法、装置以及电子设备
CN110597663A (zh) 一种事务处理方法及装置
CN109542329B (zh) 日志写入方法、存储管理设备及系统
CN111309245A (zh) 一种分层存储写入方法和装置、读取方法和装置及系统
CN110837338A (zh) 一种存储索引处理方法及装置
CN114816240A (zh) 一种数据写入方法及一种数据读取方法
CN105808451B (zh) 一种数据缓存方法以及相关装置
KR20190123819A (ko) 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN111008233B (zh) 一种kv数据库的访问方法、装置及设备
US10311026B2 (en) Compressed data layout for optimizing data transactions
CN114936010B (zh) 数据处理方法、装置、设备及介质
US20180307684A1 (en) Method and Device for Reading and Writing Video Data in NAS Device
US20230409235A1 (en) File system improvements for zoned storage device operations
CN104252415B (zh) 一种重新分布数据的方法和系统
CN108776578B (zh) 一种快速合并对象的方法和系统
CN111444114B (zh) 一种非易失性内存中数据的处理方法、装置及系统
CN110019507B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200225

RJ01 Rejection of invention patent application after publication