CN116107514A - 针对对象存储的数据处理方法和装置 - Google Patents

针对对象存储的数据处理方法和装置 Download PDF

Info

Publication number
CN116107514A
CN116107514A CN202310272416.8A CN202310272416A CN116107514A CN 116107514 A CN116107514 A CN 116107514A CN 202310272416 A CN202310272416 A CN 202310272416A CN 116107514 A CN116107514 A CN 116107514A
Authority
CN
China
Prior art keywords
index
data block
objects
time
data
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
CN202310272416.8A
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202310272416.8A priority Critical patent/CN116107514A/zh
Publication of CN116107514A publication Critical patent/CN116107514A/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/061Improving I/O performance
    • 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/064Management of blocks
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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)
  • 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

本申请提供了一种针对对象存储的数据处理方法,包括:提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据;及删除所述过期数据块,以释放所述各个对象。本申请的技术方案可以降低开销和优化磁盘性能。

Description

针对对象存储的数据处理方法和装置
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种针对对象存储的数据处理方法、装置、计算机设备、计算机可读存储介质。
背景技术
随着计算机技术的发展,针对各类数据的海量存储、读写成为了当前的热点问题。在数据存储中,对象存储作为一种重要的数据存储方式,由于其可靠性高、可扩展性强、访问速度快等优势,受到越来越广泛的关注和应用。但是,随着数据量的不断增长,对象存储的管理和维护成本也随之增加。在相关技术中,对象存储一般采用生命周期管理方法,通常通过程序在所有对象元数据中筛选满足回收条件的对象,如过期时间、访问时间等,然后根据对象的元数据找到数据的存储位置,进行数据的删除回收,完成对象的整个生命周期管理,释放存储空间。
然而,本发明人了解到的上述管理方法,随着存储池中的数据对象增多、或数据对象的存储分散等因素,现有管理方法会极大地增加硬件开销,影响读写性能。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例的目的是提供一种针对对象存储的数据处理方法、装置、计算机设备及计算机可读存储介质,用于解决或缓解上述问题。
本申请实施例的一个方面提供了一种针对对象存储的数据处理方法,所述方法包括:
提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;
根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;
根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;
删除所述过期数据块,以释放所述各个对象;及
根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据。
可选地,所述提供多个数据块包括:
预分配固定大小的所述多个数据块;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中;其中上传时间相近的多个对象为从客户端上传且上传时间差小于预设差值的多个对象。
可选地,所述多个数据块分布在一个或多个分区,每个分区包括一个或多个桶,同一分区中的各个桶的生命周期相同,桶为对象容器;
所述将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中,包括:
将生命周期相同、上传时间相近的多个对象划分到目标桶;
根据目标捅,确定所述多个分区中的目标分区;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式写入到所述目标分区的目标数据块中。
可选地,所述方法还包括:
响应于所述目标数据块的剩余存储容量小于预设阈值,根据写入时间和所述目标捅的生命周期,创建所述目标数据块的目标索引;其中所述写入时间为所述响应被触发的时间。
可选地,所述根据每个索引的时间前缀确定过期索引,包括:
基于各个索引的时间前缀以及预先设置的对象回收条件,确定所述过期索引。
可选地,还包括:
预先提供多个离线服务,不同离线服务对应不同的任务;
其中,所述任务包括确定过期索引、获取反向索引、删除过期元数、删除过期数据块。
可选地,还包括:
在所述多个离线服务出现预设积压状态的情形下,创建新离线服务以增加离线服务的数量。
本申请实施例的另一个方面提供了一种针对对象存储的数据处理装置,所述装置包括:
提供模块,用于提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;
第一确定模块,用于根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;
第二确定模块,用于根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;
第一删除模块,用于根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据;及
第二删除模块,用于删除所述过期数据块,以释放所述各个对象。
本申请实施例的另一个方面提供了一种计算机设备,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;
其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
本申请实施例提供的针对对象存储的数据处理方法、装置、计算机设备、计算机可读存储介质,并不是以对象为单位进行分散存储和管理,而是将相同生命周期的多个对象合并在一个数据块中。然后,以数据块为单位进行数据存储和管理。在回收过程中,通过各个数据块的索引中的时间前缀筛选过期数据块。通过索引中的标识符定位过期数据块,并获取过期数据块中每个对象(过期对象)的元数据的反向索引,从而可以反向删除过期对象的元数据,降低了筛选过期对象的开销。由于以数据块为单位代替以对象为单位的管理,缓解了大量对象频繁删除产生的IO对磁盘的影响,且缓解了磁盘碎片化,一定程度上优化了磁盘的读写性能。
附图说明
图1示意性示出了根据本申请实施例一的针对对象存储的数据处理方法的运行环境图;
图2示意性示出了根据本申请实施例一的针对对象存储的数据处理方法的流程图;
图3示意性示出了步骤S200的子流程图;
图4示意性示出了步骤S302的子流程图;
图5示意性示出了在应用性示例中的对象存储和回收的流程图;
图6示意性示出了根据本申请实施例二的针对对象存储的数据处理装置的框图;及
图7示意性示出了根据本申请实施例三中的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首先,提供本申请涉及的术语解释:
对象存储:是一种计算机数据存储架构,它将数据作为对象进行管理,每个对象通常包括数据本身、数量不等的元数据和一个全局唯一的标识符。
生命周期(TTL,Time To Live):一个对象从创建到回收删除的全过程。
桶(Bucket):存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性。
分区(Partition):桶的一个属性,桶的分区信息唯一。对象上传时根据所在桶的分区路由到相应的存储节点。
索引:一种存储结构,用于快速找到所需的数据信息。
其次,为方便本领域技术人员理解本申请实施例提供的技术方案,下面相关技术进行说明:
随着计算机技术的发展,针对各类数据的海量存储、读写成为了当前的热点问题。在数据存储中,对象存储作为一种重要的数据存储方式。对象存储是一种计算机数据存储架构,它将数据作为对象进行管理,每个对象通常包括数据本身、数量不等的元数据和一个全局唯一的标识符。可以采用生命周期管理对象,即通过程序在所有对象元数据中筛选满足回收条件的对象。然后通过对象的元数据找到数据的存储位置进行数据的删除回收,完成对象的整个生命周期管理,释放存储空间。
但是,本发明人发现如下问题:1.存储池对象越多,过期对象筛选越困难或筛选开销越大;2.对象数据存储分散,小对象频繁删除时产生的IO(输入输出)会对磁盘读写有一定影响;3.对象数据存储分散,小对象频繁删除会使磁盘碎片化,影响性能。
为此,本申请实施例提供了针对对象存储的数据处理方案。将生命周期相同,上传时间相近的对象以顺序写的方式合并到预分配的数据块中,通过管理数据块的生命周期,以达到以下技术效果:1.通过遍历数据块获取每个对象元数据的反向索引,反向去删除对象元数据,降低了筛选过期对象的开销;2.回收以数据块为单位,降低对磁盘io的影响;3.数据合并写入预分配的数据块,保证了数据读写的顺序性。
图1示意性示出了根据本申请实施例的针对对象存储的数据处理方法的环境运行图。如图1所示,所述环境示意图包括分布式存储系统2、网络4、客户端6,其中:
分布式存储系统2,作为存储平台,可以由多个计算设备构成。该多个计算设备可以包括虚拟化计算实例。虚拟化计算实例可以包括虚拟机,诸如计算机系统的仿真,操作系统,服务器等。计算设备可以基于定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算设备上加载和/或终止不同的虚拟机。可以实现管理程序以管理同一个计算设备上的不同虚拟机的使用。分布式存储系统2可以包括不同的存储功能,如存储对象、存储元数据等。
分布式存储系统2可以提供存储、读取、写入、查询、删除等服务。
分布式存储系统2可以被配置为通过网络4与客户端6等通信。
客户端6,可以提供有用户访问页面,使用于可以操控分布式存储系统2或上传对象等。
下面以分布式存储系统2为执行主体,通过多个实施例介绍本申请提供的在技术实现方案。
实施例一
图2示意性示出了根据本申请实施例一的针对对象存储的数据处理方法的流程图。如图2所示,该针对对象存储的数据处理方法可以包括步骤S200~S208,其中:
步骤S200,提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间。
步骤S202,根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块。
步骤S204,根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引。
步骤S206,根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据。
步骤S208,删除所述过期数据块,以释放所述各个对象。
分布式存储系统2可以由多个存储节点组成,形成分布式结构。分布式存储系统可以采用各类组网方式,其中每个存储节点用于提供计算和存储服务。存储节点的数量可以根据实际需求进行配置。存储节点可以是磁盘,或其他非易失性存储介质。以磁盘为例,存储单元可以是单个磁盘,也可以是多个磁盘形成的磁盘阵列。
分布式存储系统2可以有多种存储形式,其中,对象存储即是其中一种存储形式。对象存储在于将数据存储为对象,每个对象可以分别绑定一个唯一的标识符。这种存储形式可以由很高的可扩展性和可用性,并支持大型数据集。分布式存储系统可以采用AmazonS3(亚马逊公司提供的对象存储服务)等各类架构管理。
为了方便介绍,下面提供分布式存储系统2中的一些概念:
存储对象:是云存储中最基本的概念,指的是用户在云存储中上传的文件或数据。每个对象都有唯一的标识符(Object ID),可以通过这个标识符访问和操作对象。
桶:是云存储中的一个容器,用来存储对象。每个桶都有唯一的名称,可以在桶中创建、删除和管理存储对象。桶可以看成是顶层的目录或容器,包含了多个存储对象。
分区:是指将大型数据集或对象集合按照预设规则进行分割或划分,每个分区可以单独管理和处理。例如,可以按照时间、地域、用户等维度对数据进行分区。
其中,分区和桶都可以是逻辑概念。分区可以认为是桶的一个属性,桶的分区信息唯一。也即,一个桶仅在一个分区中,一个分区可以包括一个或多个桶。分区可以对存储节点进行逻辑上的划分和管理,一个分区可以是多个存储节点或一个存储节点的一部分。其中,数据块是存储节点中的一块存储片段,用于存储对象。
在本实施例中,所述多个数据块即是分区中的数据块。需要说明的是,所述多个数据块可以位于同一个分区中,也可以位于不同的分区中。每个数据块按时间顺序合并写入生命周期相同的多个对象。
因此,在本实施例中,可以不以对象为单位进行分散存储和管理,而是将生命周期相同的多个对象合并在一个数据块中。然后,以数据块为单位进行数据存储和管理。
以数据块A为例,按照各个对象的时间顺序,将生命周期相同的多个对象依次写入到数据块A中,并记录偏移量。在数据块A写满之后,则不再向数据块A进行写入,并为数据块A生成索引(A-index)。所述索引(A-index)可以基于多个信息共同生成。示例性的,所述(A-index)可以包括数据块A写满时的时间信息(时间前缀A-time)和数据块A的标识符(A-ID)。标识符(A-ID)用于唯一标识数据块A。时间前缀(A-time)为数据块A写入完成时的时间,用于确定数据块A的存储时间。
用对数据块A的生命周期管理,代替对数据块A中的各个对象生命周期的分别管理,可以提升管理效率、提升磁盘性能。下面继续以数据块A为例,进行示例性说明。
一个对象从创建到删除的全过程,称之为对象的生命周期。为了节省空间,需要将生命周期结束(过期)的对象删除,而海量的过期对象删除需要先筛选处理,而海量的过期对象的筛选需要非常大的开销。且海量对象频繁删除产生的IO对存储介质的读写有一定影响;海量对象的分散存储,频繁删除使介质碎片化而影响性能。
在上述示例中,将多个对象依次合并写入到数据块A中,因此可以数据块为单位代替以对象为单位的对象删除(回收)。对数据块A中的各个对象进行删除的过程如下:
第一步:根据数据块A的索引(A-index)的时间前缀(A-time),确定索引(A-index)是否为过期索引。若时间前缀(A-time)在某个时间点之前,则可以认为是过期索引。当索引(A-index)为过期索引,则认为数据块A中的各个对象过期。
第二步:根据所述过期索引(A-index)中的标识符(A-ID),找到过期数据块(数据块A)。
第三步:发起遍历数据块A的请求,获取数据块A中所有对象的元数据的反向索引。
在对象存储中,对象的元数据可以包括对象的各种信息,如名称、大小、所属者、创建时间、修改时间、位置等。对象的反向索引可以通过元数据的某些属性值来查找相关对象。
例如,如果某个对象存储在分布式存储系统2中,系统2可以为该对象创建一个对象ID,并将该对象ID与其他元数据一起存储。如果系统2需要查找该对象,则可以使用该对象的ID进行查找。在一些实施例中,还可以使用其他元数据属性(例如对象大小或创建时间)来查找对象。此时,系统2可以使用反向索引,建立从元数据属性值到对象ID的映射关系,以便在需要时可以更快地查找和检索对象。因此,存储对象的反向索引是一种将元数据属性值映射到相应对象ID的机制,其使得在分布式存储系统2中查找和管理存储的对象更加高效和灵活。
第四步:根据所述各个对象的元数据的反向索引,删除过期元数据。
在确定了数据块A中所有对象的元数据的反向索引之后,可以删除这些过期元数据。具体而言,可以根据反向索引中的信息,找到对应的元数据并进行删除操作。
第五步:删除数据块A以释放数据块A中的所有对象。
可知,通过数据块A的索引判定数据块A是否为过期数据块A。若是,则通过索引中的标识符找到数据块A。之后通过遍历数据块A以获取数据块A中每个对象的元数据的反向索引,从而可以反向删除过期对象的元数据,降低了筛选过期对象的开销;同时,以数据块为单位进行删除,降低了对磁盘IO的影响,缓解了碎片化。即以数据块A为单位,对数据块A中所有对象的生命周期管理,提高效率。
在可选的实施例中,如图3所示,步骤S200“提供多个数据块”可以包括:
步骤S300,预分配固定大小的所述多个数据块;
步骤S302,将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中;其中上传时间相近的多个对象为从客户端上传且上传时间差小于预设差值的多个对象。
将生命周期相同、上传时间相近的多个对象依次写入到同一个数据块中。如果该数据块存储空间已满,将接下来将后续对象依照同样的逻辑合并写入到下一个数据块。依时间顺序,多个对象合并写入预分配的数据块,保证了数据读写的顺序性。
在另一些实施例中,由于不同生命周期对应的存储时间不同,因此对于生命周期相同的对象,可以根据生命周期长度来设置不同的数据块大小,以提高存储效率。
在可选的实施例中,所述多个数据块分布在一个或多个分区,每个分区包括一个或多个桶,同一分区中的各个桶的生命周期相同,桶为对象容器。如图4所示,步骤S302“将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中”可以包括:
步骤S400,将生命周期相同、上传时间相近的多个对象划分到目标桶;
步骤S402,根据目标捅,确定所述多个分区中的目标分区;
步骤S404,将生命周期相同、上传时间相近的多个对象,以顺序写的方式写入到所述目标分区的目标数据块中。
作为示例,将生命周期相同、上传时间相近的多个对象划分到目标桶。桶作为存储对象的容器,每个桶都有自己的存储类别、访问权限、所属分区等属性。因此可以根据所述目标捅的分区属性信息,确定目标分区,将上述多个对象路由到目标分区的目标数据块中。可知,上述方案可有效地将生命周期相同、上传时间相近的多个对象合并写入到一起,从而可以实现基于数据块为单元的对象生命周期管理。
目标分区可以对应多个数据块。对于目标分区而言,可以将多个对象依次写入到目标数据块中。当该目标数据块写满或者满足一定条件(如写入时间间隔超过时间阈值)时,将目标数据块切换到下一个可用的数据块。在下一个数据块中,将生命周期相同、上传时间相近的剩余对象以顺序写的方式写入到该下一个数据块中。
所述多个分区可以根据配置参数进行调整。一个分区可以对应多个存储节点或一个存储节点的一部分。不同存储节点可能对应不同的存储容量和带宽。为有效利用资源,可以采用动态分区策略,根据负载情况调整分区大小和分区数目。例如可以采用负载均衡算法,根据节点的负载情况将存储请求分配到不同的节点上。
在可选的实施例中,所述方法针对对象存储的数据处理方法还可以包括:
响应于所述目标数据块的剩余存储容量小于预设阈值,根据写入时间和所述目标捅的生命周期,创建所述目标数据块的目标索引;其中所述写入时间为所述响应被触发的时间。
在示例性应用中,监测所述目标数据块的存储容量,若剩余存储容量小于预设阈值,则根据目标桶的生命周期和写入时间为条件创建所述目标数据块的目标索引。所述目标索引可以包括目标数据块的唯一标识符、写入时间(时间前缀)、对象大小、对象偏移量、生命周期等各类属性信息。其中,唯一标识符可以是哈希值等。
在可选的实施例中,步骤S202“根据每个索引的时间前缀确定过期索引”可以包括:基于各个索引的时间前缀以及预先设置的对象回收条件,确定所述过期索引。
在示例性应用中,所述对象回收条件可以包括一个时间间隔,该时间间隔和生命周期对应。例如,当一个桶在15天前创建,且桶的生命周期为15天,则若对象回收条件为15天,则用于存储该桶的对象的数据块的索引可以被拉取,并被认定为过期索引。可知,通过预先设置的对象回收条件可以快速有效地拉取到过期索引。
在可选的实施例中,所述针对对象存储的数据处理方法还可以包括:
预先提供多个离线服务,不同离线服务对应不同的任务;
其中,所述任务包括确定过期索引、获取反向索引、删除过期元数、删除过期数据块。
在示例性应用中,预先拉起多个离线服务,每个离线服务对应一个任务。
对于确定过期索引的任务,离线服务用于遍历所有索引,根据时间前缀和对象回收条件确定过期索引。
对于获取反向索引任务,离线服务用于根据过期索引中的标识符确定过期数据块,然后遍历过期数据块,以获取过期数据块中的各个对象的元数据的反向索引。
对于删除过期元数据任务,离线服务用于通过获取到的反向索引,查找过期元数据并批量删除。
对于删除过期数据块任务,离线服务用于删除所述过期数据块,以释放过期数据块中的对象。
上述服务仅是示例性的。根据实际情况也可以设置其他服务。在一些实施例中,根据任务类型和复杂度,可以动态地调整服务的数量和资源分配,以提高处理效率。也可以为离线服务增加任务优先级和调度机制,以满足不同任务的优先级和时效性要求。
在可选的实施例中,所述针对对象存储的数据处理方法还可以还包括:
在所述多个离线服务出现预设积压状态的情形下,创建新离线服务以增加离线服务的数量。
在示例性应用中,可以监控各离线服务的状态,如工作状态、任务完成度、剩余存储空间等;当多个离线服务出现预设积压状态时,则创建新离线服务;在新的离线服务创建之后,为其分配一个任务;将部分未完成的任务从旧离线服务中移动到新离线服务中;将新离线服务添加到离线服务池中,继续执行任务,提高服务效率。需要说明的是,所述预设积压状态可以指预设数量的任务出现排队和处理延迟。
为了使得本申请实施例更加容易理解,以下结合图5提供一个示例性应用。
第一:对象存储策略。
预先通过配置参数设置多个分区和多个桶。其中,一个分区对应若干个桶,每个分区对应有一个或多个存储节点,每个存储节点中具有固定大小的多个数据块。
客户端通过桶的分区将对象路由到对应的存储节点中。
桶是对象的容器,分区是桶的属性。
在创建桶之后,即可知道该桶内的对象要存储到哪个存储节点中。
确定要存储节点后,则将多个对象聚合到存储节点中预分配的数据块中,并记录其偏移量。
需要说明的是,同一个桶的所有对象的生命周期是相同的。
例如,对象1的生命周期为15天,对象2的生命周期为2天、对象3的生命周期为15天、对象4的生命周期为15天、对象5的生命周期为15天,则可以将对象1、3、4、5放在同一个桶中。可知,这个桶的生命周期实际上也是15天。
另外,对象1、3、4、5的上传时间也应该是相同或接近的。
这样,当对象1、3、4、5存储到同一个数据块时,15天之后可以删除这个数据块以释放这些对象。
另外,同一个分区内的所有对象所在桶的生命周期也是相同,该分区是时间区分。
第二:对象删除(回收)触发逻辑。
S500:客户端根据桶所在分区,将对象上传至该分区下的存储节点,并以顺序写入预分配固定大小的数据块。并将各个对象的元数据存储在元数据存储节点中。
S502:数据块写满时以当前时间和桶的生命周期为条件创建索引;其中,该索引中包括时间前缀和该数据块的唯一ID信息,该时间前缀对应于数据块写满时的时间。
S504:离线服务以时间前缀拉取符合回收条件的过期索引。
如果索引服务存在积压则增加离线服务数量。
在相关技术中的回收条件包括:扫描存储集群里面所有的对象,根据它的创建时间和当前时间判断是否要删除;或每个对象建立一个索引(包含时间戳、对象的key等信息),有时间戳的索引是有序的。相对上述相关技术中的回收操作,本应用性示例中的技术方案,扫描时可以根据前缀匹配,而不需要扫描所有的对象。
S506:通过过期索引里记录的数据块唯一ID,找到对应的存储节点,并发起遍历与该过期索引对应的过期数据块的请求,获取该过期数据块中所有对象的元数据的反向索引。
S508:根据反向索引,请求元数据存储服务批量删除过期数据块中所有对象的元数据。
S510:删除过期数据块以释放存储空间,从而完成该批次所有对象的生命周期管理。
本应用性示例中的技术方案中,桶可以理解为管理元数据的目录,在回收过程中,扫描元数据的时间前缀,然后根据元数据里记录的元数据信息找到对应的物理存储位置进行删除。从生命周期届满到存储空间真正释放是存在滞后性的,届满后只需要标记一下元数据就可以让用户感知到对象已被删,实际上后面还有一些流程。
本应用性示例中的技术方案中,将生命周期相同、上传时间相近的对象聚合到一个固定大小的数据块里面,数据块写满后以数据块的ID、写满时时间戳(也就是说数据块写满前存入的对象删除是滞后的)、这一批对象共同的生命周期创建索引。这种以数据块为单位的删除可以一次删除一批对象,使得存储空间释放效率更高。
实施例二
图6示意性示出了根据本申请实施例二的针对对象存储的数据处理装置的框图,该针对对象存储的数据处理装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。如图6所示,该针对对象存储的数据处理装置600可以包括提供模块610、第一确定模块620、第二确定模块630、第一删除模块640、第二删除模块650,其中:
提供模块610,用于提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;
第一确定模块620,用于根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;
第二确定模块630,用于根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;
第一删除模块640,用于根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据;及
第二删除模块650,用于删除所述过期数据块,以释放所述各个对象。
在可选的实施例中,所述提供模块610,还用于:
预分配固定大小的所述多个数据块;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中;其中上传时间相近的多个对象为从客户端上传且上传时间差小于预设差值的多个对象。
在可选的实施例中,所述多个数据块分布在一个或多个分区,每个分区包括一个或多个桶,同一分区中的各个桶的生命周期相同,桶为对象容器;
所述提供模块610,还用于:
将生命周期相同、上传时间相近的多个对象划分到目标桶;
根据目标捅,确定所述多个分区中的目标分区;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式写入到所述目标分区的目标数据块中。
在可选的实施例中,所述装置还包括创建模块(未标识),用于:
响应于所述目标数据块的剩余存储容量小于预设阈值,根据写入时间和所述目标捅的生命周期,创建所述目标数据块的目标索引;其中所述写入时间为所述响应被触发的时间。
在可选的实施例中,第一确定模块620用于:
基于各个索引的时间前缀以及预先设置的对象回收条件,确定所述过期索引。
在可选的实施例中,所述装置还包括服务提供模块(未标识),用于:
预先提供多个离线服务,不同离线服务对应不同的任务;
其中,所述任务包括确定过期索引、获取反向索引、删除过期元数、删除过期数据块。
在可选的实施例中,所述装置还包括服务创建模块(未标识),用于:
在所述多个离线服务出现预设积压状态的情形下,创建新离线服务以增加离线服务的数量。
实施例三
图7示意性示出了根据本申请实施例三的适于实现针对对象存储的数据处理方法的计算机设备10000的硬件架构示意图。所述计算机设备10000可以作为分布式存储系统2的一部分。本实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如针对对象存储的数据处理方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他对象处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的针对对象存储的数据处理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请实施例。
实施例四
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的针对对象存储的数据处理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中针对对象存储的数据处理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种针对对象存储的数据处理方法,其特征在于,所述方法包括:
提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;
根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;
根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;
根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据;及
删除所述过期数据块,以释放所述各个对象。
2.根据权利要求1所述的方法,其特征在于,所述提供多个数据块包括:
预分配固定大小的所述多个数据块;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中;其中上传时间相近的多个对象为从客户端上传且上传时间差小于预设差值的多个对象。
3.根据权利要求2所述的方法,其特征在于,所述多个数据块分布在一个或多个分区,每个分区包括一个或多个桶,同一分区中的各个桶的生命周期相同,桶为对象容器;
所述将生命周期相同、上传时间相近的多个对象,以顺序写的方式合并到同一个数据块中,包括:
将生命周期相同、上传时间相近的多个对象划分到目标桶;
根据目标捅,确定所述多个分区中的目标分区;
将生命周期相同、上传时间相近的多个对象,以顺序写的方式写入到所述目标分区的目标数据块中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述目标数据块的剩余存储容量小于预设阈值,根据写入时间和所述目标捅的生命周期,创建所述目标数据块的目标索引;其中所述写入时间为所述响应被触发的时间。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述根据每个索引的时间前缀确定过期索引,包括:
基于各个索引的时间前缀以及预先设置的对象回收条件,确定所述过期索引。
6.根据权利要求1至4任意一项所述的方法,其特征在于,还包括:
预先提供多个离线服务,不同离线服务对应不同的任务;
其中,所述任务包括确定过期索引、获取反向索引、删除过期元数、删除过期数据块。
7.根据权利要求6所述的方法,其特征在于,还包括:
在所述多个离线服务出现预设积压状态的情形下,创建新离线服务以增加离线服务的数量。
8.一种针对对象存储的数据处理装置,其特征在于,所述装置包括:
提供模块,用于提供多个数据块,同一个数据块存储相同生命周期的多个对象,每个数据块对应一个索引,索引包括标识符和时间前缀,所述时间前缀为相应数据块写入完成时的时间;
第一确定模块,用于根据每个索引的时间前缀确定过期索引,以从所述多个数据块中确定过期数据块;
第二确定模块,用于根据所述过期索引中的标识符,确定所述过期数据块中各个对象的元数据的反向索引;
第一删除模块,用于根据所述各个对象的元数据的反向索引,删除所述过期数据块中各个对象的元数据;及
第二删除模块,用于删除所述过期数据块,以释放所述各个对象。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
CN202310272416.8A 2023-03-17 2023-03-17 针对对象存储的数据处理方法和装置 Pending CN116107514A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310272416.8A CN116107514A (zh) 2023-03-17 2023-03-17 针对对象存储的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310272416.8A CN116107514A (zh) 2023-03-17 2023-03-17 针对对象存储的数据处理方法和装置

Publications (1)

Publication Number Publication Date
CN116107514A true CN116107514A (zh) 2023-05-12

Family

ID=86254549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310272416.8A Pending CN116107514A (zh) 2023-03-17 2023-03-17 针对对象存储的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN116107514A (zh)

Similar Documents

Publication Publication Date Title
KR101994021B1 (ko) 파일 조작 방법 및 장치
CN106294190B (zh) 一种存储空间管理方法及装置
KR101791594B1 (ko) 저장 네트워크 내의 저장 관리
CN103150394B (zh) 面向高性能计算的分布式文件系统元数据管理方法
US10853242B2 (en) Deduplication and garbage collection across logical databases
US20140195551A1 (en) Optimizing snapshot lookups
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
US20180075050A1 (en) Indexing implementing method and system in file storage
CN111198856B (zh) 文件管理方法、装置、计算机设备和存储介质
EP3076307A1 (en) Method and device for responding to a request, and distributed file system
CN103229173A (zh) 元数据管理方法及系统
CN107368260A (zh) 基于分布式系统的存储空间整理方法、装置及系统
CN116578746A (zh) 对象去重方法及装置
CN113407550A (zh) 数据存储及查询方法、装置及数据库系统
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
WO2020215580A1 (zh) 一种分布式全局数据去重方法和装置
CN111857539A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN112269661A (zh) 基于Kafka集群的分区迁移方法和装置
US9009204B2 (en) Storage system
US20170255393A1 (en) Storage device and storage method
CN114610680A (zh) 分布式文件系统元数据管理方法、装置、设备及存储介质
CN106528876B (zh) 分布式系统的信息处理方法及分布式信息处理系统
WO2017024802A1 (zh) 多种存储介质并存的系统及进行文件操作的方法、装置及计算机存储介质
CN115934354A (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