CN111581157B - 一种对象存储平台以及对象操作方法、装置和服务器 - Google Patents

一种对象存储平台以及对象操作方法、装置和服务器 Download PDF

Info

Publication number
CN111581157B
CN111581157B CN202010379076.5A CN202010379076A CN111581157B CN 111581157 B CN111581157 B CN 111581157B CN 202010379076 A CN202010379076 A CN 202010379076A CN 111581157 B CN111581157 B CN 111581157B
Authority
CN
China
Prior art keywords
class object
class
aggregation
external database
space
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
CN202010379076.5A
Other languages
English (en)
Other versions
CN111581157A (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.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information 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 Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202010379076.5A priority Critical patent/CN111581157B/zh
Publication of CN111581157A publication Critical patent/CN111581157A/zh
Application granted granted Critical
Publication of CN111581157B publication Critical patent/CN111581157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种对象存储平台以及对象操作方法、装置和服务器。其中,该平台包括:至少一个代理服务端、外部数据库和内部存储端,外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据;其中,代理服务端如果接收到第一类对象的操作请求,则对应更新该操作请求在外部数据库和内部存储端下指向的存储信息。本发明实施例提供的技术方案,第一类对象下的聚合映射关系和自身的内容数据能够实现分区存储,优化第一类对象的存储结构,提高第一类对象存储的准确性。

Description

一种对象存储平台以及对象操作方法、装置和服务器
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种对象存储平台以及对象操作方法、装置和服务器。
背景技术
随着多媒体资源(如图片、音视频等)的逐渐增加,当前开源的Ceph文件系统对于不同大小下的对象,会存在相应的存储和操作需求,而Ceph文件系统所支持的最小操作粒度为特定大小下的对象,此时对于数据量高于该最小操作粒度的对象,Ceph文件系统能够准确无误地执行相应的迁移或转换等操作,而对于数据量低于该最小操作粒度的对象,Ceph文件系统在执行迁移或转换等操作时可能会存在丢失数据的风险,从而影响对象操作的准确性。
目前,Ceph文件系统针对数据量低于最小操作粒度的对象,会利用该对象在预设omap格式下的元数据信息,在Ceph文件系统的底层对象存储系统Rados层来存储多个对象的元数据,从而聚合成一个数据量高于最小操作粒度的对象,但omap格式下的元数据的存储结构不够灵活,使得聚合后的对象操作性能较差。
发明内容
本发明实施例提供了一种对象存储平台以及对象操作方法、装置和服务器,优化第一类对象的存储结构,提高第一类对象存储的准确性。
第一方面,本发明实施例提供了一种对象存储平台,该平台包括:至少一个代理服务端、外部数据库和内部存储端,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器;其中,
所述代理服务端如果接收到所述第一类对象的操作请求,则对应更新该操作请求在所述外部数据库和所述内部存储端下指向的存储信息。
第二方面,本发明实施例提供了一种对象操作方法,应用于第一方面中提供的对象存储平台中,该方法包括:
如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息;
实时检测第二类对象的聚合空洞空间,对所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器。
第三方面,本发明实施例提供了一种对象操作装置,设置于第一方面中提供的对象存储平台中,该装置包括:
第一类对象操作模块,用于如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息;
第二类对象回收模块,用于实时检测第二类对象的聚合空洞空间,对所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储所述第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器。
第四方面,本发明实施例提供了一种服务器,该服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的对象操作方法。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的对象操作方法。
本发明实施例提供的一种对象存储平台以及对象操作方法、装置和服务器,需要将第一类对象聚合到第二类对象时,直接在外部数据库中存储第一类对象和第二类对象之间的聚合映射关系,并在内部存储端上为第二类对象所分配的总体聚合空间内直接存储该第二类对象所聚合的各个第一类对象的内容数据,此时第一类对象下的聚合映射关系和自身的内容数据能够实现分区存储,从而优化第一类对象的存储结构,使得第一类对象的聚合存储能够兼容内部存储端的原有存储设计,无需为了适应第一类对象和第二类对象之间的聚合映射关系的存储结构而更改内部存储端的原有存储结构,同时代理服务端能够根据第一类对象的操作请求,对应更新该操作请求在外部数据库和内部存储端下指向的存储信息,实现外部数据库和内部存储端下存储信息随着第一类对象操作的动态更新,从而提高第一类对象存储的准确性,同时回收服务端能够及时回收已经删除的第一类对象在所聚合的第二类对象中的存储空间,保证第二类对象的总体聚合空间的完全使用,避免第二类对象的总体聚合空间内已删除第一类对象占用的存储空间浪费。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种对象存储平台的原理架构图;
图2为本发明实施例二提供的一种对象存储平台的结构示意图;
图3为本发明实施例三提供的一种对象存储平台的结构示意图;
图4为本发明实施例四提供的一种对象操作方法的流程图;
图5为本发明实施例五提供的一种对象操作装置的结构示意图;
图6为本发明实施例六提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图1为本发明实施例一提供的一种对象存储平台的原理架构图。本实施例可适用于当前开源的Ceph文件系统下对任一对象进行存储的情况中。具体的,参照图1,该对象存储平台10可以包括:至少一个代理服务端110、外部数据库120和内部存储端130。
其中,外部数据库120存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端130上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据。代理服务端110如果接收到第一类对象的操作请求,则对应更新该操作请求在外部数据库120和内部存储端130下指向的存储信息,第一类对象为操作粒度无法支持对象完整操作的对象,第二类对象为操作粒度支持对象完整操作,且用于聚合第一类对象的容器。
可选的,由于Ceph文件系统所支持的最小操作粒度为特定大小下的对象,对于数据量高于该最小操作粒度的对象,Ceph文件系统能够准确无误地执行相应的迁移或转换等操作,而对于数据量低于该最小操作粒度的对象,Ceph文件系统在执行迁移或转换等操作时可能会存在丢失数据的风险,无法支持对象的完整操作,此时为了解决此类问题,本实施例提出将多个数据量低于该最小操作粒度的对象聚合成一个数据量高于该最小操作粒度的对象进行存储,后续整体执行迁移或转换等操作,因此本实施例中的第一类对象为操作粒度无法支持对象完整操作的对象,也就是Ceph文件系统内数据量低于所支持的最小操作粒度的对象,第二类对象为操作粒度支持对象完整操作,且用于聚合第一类对象的容器,也就是Ceph文件系统内预先设定的数据量高于所支持的最小操作粒度的对象容器,该容器能够聚合大量第一类对象;以媒体资源为例,本实施例中的第一类对象可以为互联网系统下存储的各类图片,而第二类对象可以为互联网系统下由大量图片聚合得到的视频。
此时,本实施例在将第一类对象聚合到第二类对象的过程中,需要为第一类对象到第二类对象之间的聚合操作设定对应的存储结构和操作流程,准确将多个第一类对象共同聚合到某个第二类对象中,使得后续仅需要关注第二类对象的存储工作,并通过第二类对象统一执行所聚合的第一类对象的迁移或转换等操作,避免第一类对象的操作过程中存在丢失数据的风险,提高Ceph文件系统中第一类对象的迁移或转换等操作的效率。
具体的,由于对象存储时,也会相应存储用于描述该对象属性的元数据,因此在将多个第一类对象聚合到第二类对象时,需要额外设计出用于记录将第一类对象聚合到第二类对象过程中的具体聚合情况的元数据,也就是本实施例中将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,该聚合映射关系能够采用预定的数据结构,准确指示出第一类对象聚合后的第二类对象,以及第二类对象下所聚合的各个第一类对象。
此时,由于第一类对象和第二类对象之间的聚合映射关系采用预定的数据结构表示,可能无法兼容内部存储端130上原有的存储结构,因此如果将第一类对象和第二类对象之间的聚合映射关系在内部存储端130上存储时,为了适配该聚合映射关系所采用的数据结构,则需要额外对内部存储端130原有的存储结构进行更改,而更改操作过于繁琐,因此为了避免Ceph文件系统中内部存储端130上原有存储结构的更改,本实施例可以采用额外设置的外部数据库120来存储将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,外部数据库120能够满足该聚合映射关系所采用的各类数据结构,进而无需对内部存储端130上原有的存储结构进行更改,从而支持内部存储端130上原生的存储接口。
需要说明的是,本实施例中的外部数据库120可以为现有的任一数据库系统,对此不作限定;同时,本实施例主要面向Ceph文件系统下的对象存储,因此内部存储端130可以为Ceph文件系统下的Rados存储层。
进一步的,在将第一类对象聚合到第二类对象的过程中,内部存储端130主要负责存储第二类对象的具体内容数据,而第二类对象可能由多个第一类对象聚合而成,此时第二类对象的具体内容数据则为所聚合的各个第一类对象的内容数据,因此为了确保第一类对象到第二类对象的成功聚合,本实施例会通过分析Ceph文件系统所支持的最小操作粒度,在内部存储端130上预先分配出相应大小的存储空间,作为各个第二类对象的总体聚合空间,该第二类对象的总体聚合空间均高于Ceph文件系统所支持的最小操作粒度,以确保对象操作的准确度;同时,在第一类对象聚合到第二类对象的过程中,可以将第一类对象的内容数据准确添加到预先为聚合后的第二类对象所分配的总体聚合空间,使得第二类对象的总体聚合空间内能够存储该第二类对象所聚合的各个第一类对象的内容数据,从而保证内部存储端130仅关注第二类对象的存储工作,避免第一类对象的单独操作,提高第二类对象所聚合的各个第一类对象的操作准确性。
此外,本实施例中的对象存储平台10面向第一类对象聚合到第二类对象的存储,需要执行完整的聚合过程,此时根据用户需求对于所存储的第一类对象会存在相应的写入、读取、删除和更改等各项操作,为了保证外部数据库120和内部存储端130上存储信息在各项操作下的动态更新,本实施例会设置至少一个代理服务端110,由代理服务端110实时检测用户是否对第一类对象存在某项操作需求,如果代理服务端接收到用户作用于第一类对象上的操作请求,则直接在外部数据库120和内部存储端130下查找出该操作请求所指向的各个存储信息,也就是外部数据库120中存储的该操作请求所指向的与本次操作的第一类对象相关的聚合映射关系,以及内部存储端130中存储的在本次操作的第一类对象聚合后的第二类对象的总体聚合空间内存储的本次操作的第一类对象的内容数据,进而对在外部数据库120和内部存储端130下查找出的该操作请求所指向的存储信息进行与本次操作相关的更新,以保证外部数据库120和内部存储端130上存储信息在各项操作下的动态更新,从而提高对象操作的准确性。
需要说明的是,由于将多个第一类对象聚合到第二类对象后,在内部存储端130上第二类对象的总体聚合空间内会按照一定聚合顺序来对应存储所聚合的各个第一类对象的内容数据,此时如果代理服务端110根据用户需求要删除某个第一类对象,会在该第一类对象聚合后的第二类对象的总体聚合空间内相应删除该第一类对象的内容数据,此时该第二类对象的总体聚合空间内会出现相应存储空缺,而由于不同第一类对象的内容数据也不同,因此无法在第二类对象的总体聚合空间内的存储空缺位置再次添加新的第一类对象,使得第二类对象的总体聚合空间无法被完全使用;为了解决上述问题,本实施例需要通过后台回收任务来保证用户删除的第一类对象在所聚合的第二类对象中的存储空间可以及时被回收,因此本实施例的对象存储平台10还可以包括回收服务端140,该回收服务端140上配置有对应的回收进程,以负责筛选出第二类对象所聚合的第一类对象中在根据用户需求进行删除后剩余的有效第一类对象,并从内部存储端130为该第二类对象分配的总体聚合空间内读取出各个有效第一类对象的内容数据,进而将各个有效第一类对象的内容数据迁移,也就是重新聚合到一个新的第二类对象中,并对应更新外部数据库120中存储的各个有效第一类对象相关的聚合映射关系,从而保证所删除的第一类对象的存储空间可以及时被回收,避免所删除的第一类对象所聚合的第二类对象上的存储空间浪费。
可选的,回收服务端140根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象的聚合空洞空间,将聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给代理服务端110,由代理服务端110针对每一有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库120中关联的聚合映射关系,以及该第二类对象在内部存储端130上分配的总体聚合空间。
具体的,由于第一类对象在删除后,会对应删除外部数据库120中所存储的该第一类对象相关的聚合映射关系,使得外部数据库120中所存储的聚合映射关系指向的第一类对象为当前未被删除的第一类对象,因此本实施例中的回收服务端140会实时分析外部数据库120中存储的第一类对象和第二类对象之间的聚合映射关系,从而针对每一第二类对象,判断该第二类对象下所聚合的删除后剩余的各个第一类对象在该第二类对象的总体聚合空间内的聚合位置之间是否存在断层,将该断层作为第二类对象的聚合空洞空间,如果某一第二类对象的聚合空洞空间超出预设空洞阈值,说明该第二类对象所聚合的第一类对象中存在大部分被删除的情况,此时通过分析外部数据库120中还存储的第一类对象和第二类对象之间的聚合映射关系,确定出每一第二类对象所聚合的删除后还剩余的各个有效第一类对象,此时需要将各个有效第一类对象迁移到一个新的第二类对象下,也就是将各个有效第一类对象重新聚合到新的第二类对象下,因此回收服务端140可以将聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给代理服务端110,由代理服务端110针对每一有效第一类对象重新执行相应的写入操作,从而将各个有效第一类对象聚合到新的第二类对象中,进而删除聚合空洞空间超出预设空洞阈值的第二类对象在外部数据库120中关联的聚合映射关系,也就是各个有效第一类对象和该第二类对象之间的聚合映射关系,并删除聚合空洞空间超出预设空洞阈值的第二类对象在内部存储端130上分配的总体聚合空间,从而保证第二类对象的总体聚合空间的完全使用,避免第二类对象的总体聚合空间内已删除第一类对象占用的存储空间浪费。
需要说明的是,本实施例中对象存储平台10采用低耦合的分层架构,分为接入层、存储层和重写层三层,每层相对独立,不存在功能上的耦合关系,适合在每层进行分布式部署,从而提高对象存储的高效性。
本实施例提供的技术方案,需要将第一类对象聚合到第二类对象时,直接在外部数据库中存储第一类对象和第二类对象之间的聚合映射关系,并在内部存储端上为第二类对象所分配的总体聚合空间内直接存储该第二类对象所聚合的各个第一类对象的内容数据,此时第一类对象下的聚合映射关系和自身的内容数据能够实现分区存储,从而优化第一类对象的存储结构,使得第一类对象的聚合存储能够兼容内部存储端的原有存储设计,无需为了适应第一类对象和第二类对象之间的聚合映射关系的存储结构而更改内部存储端的原有存储结构,同时代理服务端能够根据第一类对象的操作请求,对应更新该操作请求在外部数据库和内部存储端下指向的存储信息,实现外部数据库和内部存储端下存储信息随着第一类对象操作的动态更新,从而提高第一类对象存储的准确性,同时回收服务端能够及时回收已经删除的第一类对象在所聚合的第二类对象中的存储空间,保证第二类对象的总体聚合空间的完全使用,避免第二类对象的总体聚合空间内已删除第一类对象占用的存储空间浪费。
实施例二
图2为本发明实施例二提供的一种对象存储平台的结构示意图。本实施例是在上述实施例提供的技术方案的基础上进行优化。参照图2,该对象存储平台20可以包括至少一个代理服务端210、外部数据库220、内部存储端230和回收服务端240。
其中,外部数据库220存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端230上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据;代理服务端210如果接收到第一类对象的操作请求,则对应更新该操作请求在外部数据库220和内部存储端230下指向的存储信息;回收服务端240根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象的聚合空洞空间,将聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给代理服务端210,由代理服务端210针对每一有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库220中关联的聚合映射关系,以及该第二类对象在内部存储端230上分配的总体聚合空间。
具体的,为了明确指示第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,使得在执行第一类对象的任意操作时,能够准确查找出第一类对象聚合后的第二类对象,以及第二类对象所聚合的各个第一类对象,本实施例可以从面向第一类对象的第一键值对集合和面向第二类对象的第二键值对集合来分别表示第一类对象和第二类对象之间的聚合映射关系。
此时,第一键值对集合面向对象存储平台20所写入的各个第一类对象,分别通过多个第一键值对来对应存储每一第一类对象和该第一类对象聚合后的第二类对象之间的聚合映射关系,第二键值对集合面向对象存储平台20在内部存储端230上分配有总体聚合空间的各个第二类对象,分别通过多个第二键值对来存储每一第二类对象下所聚合的各个第一类对象的元数据。
具体的,第一键值对集合中每一第一键值对的键为已经写入的各个第一类对象的对象标识,值为对应键名下的第一类对象聚合后的第二类对象的对象标识和该键名下的第一类对象在聚合后的第二类对象中的聚合位置,该聚合位置可以通过第一类对象的内容数据在聚合后的第二类对象的总体聚合空间内的位置偏移(offset)和第一类对象的内容数据的整体长度(length)来共同表示;同时,第二键值对集合中每一第二键值对的键为内部存储端230上所分配的各个第二类对象的对象标识,值为对应键名下的第二类对象所聚合的各个第一类对象的元数据。
示例性的,将第一类对象i聚合到第二类对象j后,第一键值对集合中会新增一个第一个键值对(key,value),此时该第一键值对中的key值为第一类对象i的对象标识,该第一键值对中的value值由第一类对象i聚合后的第二类对象j的对象标识、第一类对象i的内容数据在第二类对象j的总体聚合空间内的存储位置偏移(offset)和第一类对象i的数据长度(length);同时,第二键值对集合下的面向第二类对象j的第二键值对的value值中会新增该第一类对象i的元数据。
此外,根据用户需求对于对象存储平台20中的第一类对象会存在相应的写入、读取、删除和更改等各项操作,以下对于本实施例中第一类对象的每一操作过程进行详细的解释说明:
1)针对第一类对象的写入操作,由于本次写入的第一类对象需要聚合到在内部存储端230上已经分配有总体聚合空间的某个第二类对象下,因此首先需要在内部存储端230上已经分配有总体聚合空间的各个第二类对象中筛选出符合本次写入的第一类对象的聚合要求的目标第二类对象;为了保证所筛选出的目标第二类对象的准确性,本实施例的外部数据库220上还可以维护一个可聚合列表,该可聚合列表中包括支持继续聚合第一类对象的第二类对象,也就是第二类对象的总体聚合空间内除已经聚合的第一类对象所占用的空间外,还存在相应的剩余空间来支持继续追加新的第一类对象的内容数据。
具体的,代理服务端210如果接收到第一类对象的写入操作请求,则在可聚合列表中筛选出目标第二类对象,并在目标第二类对象的总体聚合空间内追加本次写入的第一类对象的内容数据,同时在外部数据库220中存储本次写入的第一类对象和目标第二类对象之间的聚合映射关系。换而言之,代理服务端210如果接收到第一类对象的写入操作请求,会首先分析本次写入的第一类对象的数据长度与外部数据库220中维护的可聚合列表中的各个第二类对象的实际剩余空间的适配度,进而在该可聚合列表中筛选出符合本次写入的第一类对象的聚合要求的目标第二类对象,并将本次写入的第一类对象的内容数据追加到该目标第二类对象的总体聚合空间内,同时分析本次写入的第一类对象的内容数据在该目标第二类对象的总体聚合空间内的位置偏移和数据长度,进而在外部数据库220中的第一键值对集合中新增一个第一键值对,该第一键值对中的key值为本次写入的第一类对象的对象标识,该第一键值对中的value值由本次写入的第一类对象聚合后的目标第二类对象的对象标识、本次写入的第一类对象的内容数据在目标第二类对象的总体聚合空间内的存储位置偏移(offset)和本次写入的第一类对象的数据长度(length);同时,在外部数据库220中的第二键值对集合中查找出本次写入的第一类对象聚合后的目标第二类对象所在的第二键值对,在该第二键值对的value值中新增本次写入的第一类对象的元数据,如本次写入的第一类对象的对象标识和所在的第一键值对中的内容等。
2)针对第一类对象的读取操作,为了保证所读取的第一类对象的准确性,本实施例会在外部数据库220中所存储的面向第一类对象的第一键值对集合中的各个第一键值对的值中还存有对应键名下的第一类对象的循环冗余校验码(crc),以便对后续读取出的第一类对象的内容数据进行校验。
具体的,代理服务端210如果接收到第一类对象的读取操作请求,则根据本次读取的第一类对象和第二类对象之间的聚合映射关系,在本次读取的第一类对象聚合后的第二类对象的总体聚合空间内读取本次读取的第一类对象的内容数据,并采用本次读取的第一类对象的循环冗余校验码对该内容数据进行校验。换而言之,代理服务端210在接收到第一类对象的读取操作请求时,首先采用本次读取的第一类对象的对象标识在外部数据库220中存储的第一键值对集合中查找出本次读取的第一类对象所在的第一键值对,进而在该第一键值对的value值中确定出本次读取的第一类对象聚合后的第二类对象以及本次读取的第一类对象在聚合后的第二类对象中的聚合位置,从而在内部存储端230上为该第二类对象分配的总体聚合空间内的该聚合位置处读取出相应的内容数据,同时采用循环冗余校验算法对读取出的内容数据进行校验,并将校验结果与在第一键值对集合中预先存储的本次读取的第一类对象的循环冗余校验码进行比对,如果校验无误则将读取出的内容数据作为本次读取的第一类对象的内容数据,从而反馈给用户。
3)针对第一类对象的删除操作,为了准确记录第二类对象所聚合的有效第一类对象,本实施例的外部数据库220中还可以存储有各个第二类对象的剩余聚合指标,以指示第二类对象所聚合的有效第一类对象的大小。
具体的,代理服务端210如果接收到第一类对象的删除操作请求,则删除外部数据库220中本次删除的第一类对象和第二类对象之间的聚合映射关系,并修改本次删除的第一类对象聚合后的第二类对象的剩余聚合指标。换而言之,代理服务端210在接收到第一类对象的删除操作请求时,首先在外部数据库220中所存储的第一键值对集合中采用本次删除的第一类对象的对象标识查找出本次删除的第一类对象所在的第一键值对,进而确定本次删除的第一类对象聚合后的第二类对象,并删除本次删除的第一类对象所在的第一键值对,同时在第二键值对集合中采用本次删除的第一类对象聚合后的第二类对象的对象标识查找出该第二类对象所在的第二键值对,并在该第二键值对的value值中删除本次删除的第一类对象的元数据;此时,由于不同第一类对象的数据长度不同,使得本次删除的第一类对象在聚合后的第二类对象的总体聚合空间的存储位置无法增加新的第一类对象,因此当前可以不删除本次需要删除的第一类对象在聚合后的第二类对象的总体聚合空间内存储的内容数据,仅需要在外部数据库220中对应更新本次删除的第一类对象聚合后的第二类对象的剩余聚合指标,以指示该第二类对象所聚合的有效第一类对象,后续可以通过回收服务端240在第二类对象的聚合空洞空间超出预设空洞阈值执行整体回收,提高第一类对象删除的准确性。
4)针对第一类对象的覆盖写操作,本实施例中的覆盖写操作主要为对于当前要求写入的第一类对象,对象存储平台20中存在某个已经写入的第一类对象与该第一类对象的对象标识相同,但内容数据不同,此时可以将覆盖写操作作为删除操作和写入操作的组合,也就是通过代理服务端210对已经写入的原有第一类对象执行相应的删除操作,在删除成功后,再次对当前要求写入的新的第一类对象执行相应的写入操作,从而保证覆盖写操作的准确执行。
此外,对于回收服务端240针对聚合空洞空间超出预设空洞阈值的第二类对象所执行的回收操作,本实施例为了保证回收操作的准确性,还会在外部数据库220中维护一个可回收列表,该可回收列表中包括无法继续聚合第一类对象的第二类对象,也就是第二类对象的总体聚合空间被已经聚合的第一类对象完全占用,不存在相应的剩余空间来支持继续追加新的第一类对象的内容数据。
具体的,回收服务端240如果检测到可回收列表中第二类对象的剩余聚合指标超出预设指标阈值,则确定该第二类对象下的聚合空洞空间超出预设空洞阈值。换而言之,外部数据库220上维护的可回收列表中的每一第二类对象的总体聚合空间均已被所聚合的第一类对象完全占用,此时由于第一类对象会根据用户需求执行相应的删除操作,并对应修改删除的第一类对象聚合后的第二类对象的剩余聚合指标,使得该剩余聚合指标能够指示该第二类对象在删除相应聚合的第一类对象后,该第二类对象的总体聚合空间内的聚合空洞空间,因此如果可回收列表中某个第二类对象的剩余聚合指标超出预设指标阈值,则说明该第二类对象下的聚合空洞空间超出预设空洞阈值,进而通过回收服务端240对该第二类对象执行相应的回收操作,从而保证回收操作的准确性。
本实施例提供的技术方案,通过在外部数据库中额外维护可聚合列表和可回收列表,对第二类对象的总体聚合空间是否支持继续聚合第一类对象进行准确区分,保证第一类对象聚合到第二类对象的准确性,避免由于剩余聚合空间不够而造成的聚合失败,同时在删除第一类对象后及时修改该第一类对象聚合后的第二类对象的剩余聚合指标,确保第二类对象的聚合空洞空间的检测准确性,提高第二类对象的回收准确性。
实施例三
图3为本发明实施例三提供的一种对象存储平台的结构示意图。本实施例是在上述实施例提供的技术方案的基础上进行优化。参照图3,该对象存储平台30可以包括至少一个代理服务端310、外部数据库320、内部存储端330和回收服务端340。
其中,外部数据库320存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端330上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据;代理服务端310如果接收到第一类对象的操作请求,则对应更新该操作请求在外部数据库320和内部存储端330下指向的存储信息;回收服务端340根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象的聚合空洞空间,将聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给代理服务端310,由代理服务端310针对每一有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库320中关联的聚合映射关系,以及该第二类对象在内部存储端330上分配的总体聚合空间。
在本实施例中,为了提高第二类对象的回收效率,回收服务端340会采用分布式架构进行设置,其上配置有相应的回收进程,该回收进程可以包括调度线程341和至少一个工作线程342。
可选的,调度线程341根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象下的聚合空洞空间,并针对聚合空洞空间超出预设空洞阈值的第二类对象,生成对应的回收任务发送给对应的工作线程342;工作线程342在接收到第二类对象的回收任务时,读取出本次回收的第二类对象所聚合的各个有效第一类对象并依次转发给代理服务端310,由代理服务端310针对每一有效第一类对象重新执行相应的写入操作,同时删除本次回收的第二类对象在外部数据库320中关联的聚合映射关系,以及本次回收的第二类对象在内部存储端330上分配的总体聚合空间。
具体的,在将第一类对象聚合到第二类对象的过程中,调度线程341通过实时检测外部数据库320中存储的面向第一类对象的第一键值对集合和面向第二类对象的第二键值对集合,针对每一第二类对象,判断该第二类对象下所聚合的各个有效第一类对象在该第二类对象的总体聚合空间内的聚合位置之间是否存在断层,将该断层作为第二类对象的聚合空洞空间,实时判断各个第二类对象的聚合空洞空间是否超出预设空洞阈值。
示例性的,为了保证回收操作的准确性,本实施例还会在外部数据库320中存储每一第二类对象的剩余聚合指标,在第二类对象所聚合的某一第一类对象被删除后,实时修改该第二类对象的剩余聚合指标,以指示第二类对象所聚合的有效第一类对象的大小;同时,外部数据库320上还会维护一个可回收列表,该可回收列表中包括无法继续聚合第一类对象的第二类对象,也就是第二类对象的总体聚合空间被已经聚合的第一类对象完全占用,不存在相应的剩余空间来支持继续追加新的第一类对象的内容数据。此时,外部数据库320上维护的可回收列表中的每一第二类对象的总体聚合空间均已被所聚合的第一类对象完全占用,而由于第一类对象会根据用户需求执行相应的删除操作,并对应修改删除的第一类对象聚合后的第二类对象的剩余聚合指标,使得该剩余聚合指标能够指示该第二类对象在删除相应聚合的第一类对象后,该第二类对象的总体聚合空间内的聚合空洞空间,因此通过调度线程341实时检测可回收列表中每一第二类对象的剩余聚合指标是否超出预设指标阈值,如果可回收列表中的某个第二类对象的剩余聚合指标超出预设指标阈值,说明该第二类对象下的聚合空洞空间超出预设空洞阈值。
进一步的,调度线程341在检测出聚合空洞空间超出预设空洞阈值的第二类对象,生成该第二类对象的回收任务,并在全部的工作线程342中选出当前任务量较低的工作线程342,将该第二类对象的回收任务发送给所选出的工作线程342来执行具体的回收操作;该工作线程342在接收到某个第二类对象的回收任务时,通过分析外部数据库320中存储的面向第二类对象的第二键值对集合中该回收任务对应的第二类对象所在的第二键值对,从而确定出该第二键值对中该第二类对象所聚合的删除后还剩余的各个有效第一类对象,进而按照各个有效第一类对象所在的第一键值对中记录的该有效第一类对象在聚合后的该第二类对象的总体聚合空间内的聚合位置,依次读取出本次回收的第二类对象所聚合的各个有效第一类对象的内容数据,并将各个有效第一类对象依次转发给代理服务端310,由代理服务端310针对每一有效第一类对象重新执行相应的写入操作,从而将各个有效第一类对象聚合到新的第二类对象中,进而删除聚合空洞空间超出预设空洞阈值的第二类对象在外部数据库320中关联的聚合映射关系,也就是各个有效第一类对象和该第二类对象之间的聚合映射关系,如各个有效第一类对象所在的第一键值对和该第二类对象所在的第二键值对中存储的各个有效第一类对象的元数据;同时,该工作线程342还会删除聚合空洞空间超出预设空洞阈值的第二类对象在内部存储端330上所分配的总体聚合空间,从而保证第二类对象的总体聚合空间的完全使用。
此外,为了保证内部存储端330上所分配的第二类对象实时满足第一类对象的聚合请求,本实施例的调度线程341还会实时检测内部存储端330上所分配的第二类对象的数量,在内部存储端330上分配的第二类对象数量低于分配阈值时,及时在内部存储端330上重新分配出新的第二类对象,并为新的第二类对象设定对应的总体聚合空间,以保证内部存储端330上持续存在第二类对象来聚合各个第一类对象。
本实施例提供的技术方案,将回收服务端上配置的回收进程设置为调度线程和至少一个工作线程的分布式架构,提高第二类对象的回收效率,同时调度线程实时检测内部存储端上所分配的第二类对象的数量,在第二类对象数量低于分配阈值时,及时在内部存储端上分配出新的第二类对象,从而保证第一类对象能够及时聚合到对应的第二类对象下,避免出现第二类对象不足而导致第一类对象聚合失败的现象,提高第一类对象的聚合准确性。
实施例四
图4为本发明实施例四提供的一种对象操作方法的流程图,本实施例可适用于当前开源的Ceph文件系统下对任一对象进行存储的情况中,应用于上述实施例提供的对象存储平台中。本实施例提供的一种对象操作方法可以由本发明实施例提供的对象操作装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中。
具体的,参考图4,该方法可以包括如下步骤:
S410,如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息。
具体的,由于Ceph文件系统所支持的最小操作粒度为特定大小下的对象,对于数据量高于该最小操作粒度的对象,Ceph文件系统能够准确无误地执行相应的迁移或转换等操作,而对于数据量低于该最小操作粒度的对象,Ceph文件系统在执行迁移或转换等操作时可能会存在丢失数据的风险,此时为了解决此类问题,本实施例提出将多个数据量低于该最小操作粒度的对象聚合成一个数据量高于该最小操作粒度的对象进行存储,后续整体执行迁移或转换等操作,因此本实施例中的第一类对象为为操作粒度无法支持对象完整操作的对象,也就是Ceph文件系统内数据量低于所支持的最小操作粒度的对象,第二类对象为操作粒度支持对象完整操作,且用于聚合第一类对象的容器,也就是Ceph文件系统内数据量高于所支持的最小操作粒度的对象;以媒体资源为例,本实施例中的第一类对象可以为互联网系统下存储的各类图片,而第二类对象可以为互联网系统下存储的各类视频。
具体的,由于对象存储时,也会相应存储用于描述该对象属性的元数据,因此在将多个第一类对象聚合到第二类对象时,需要额外设计出用于记录将第一类对象聚合到第二类对象过程中的具体聚合情况的元数据,也就是本实施例中将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,该聚合映射关系能够采用预定的数据结构,准确指示出第一类对象聚合后的第二类对象,以及第二类对象下所聚合的各个第一类对象。
此时,由于第一类对象和第二类对象之间的聚合映射关系采用预定的数据结构表示,可能无法兼容内部存储端上原有的存储结构,因此如果将第一类对象和第二类对象之间的聚合映射关系在内部存储端上存储时,为了适配该聚合映射关系所采用的数据结构,则需要额外对内部存储端原有的存储结构进行更改,而更改操作过于繁琐,因此本实施例采用额外设置的外部数据库来存储将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,外部数据库能够满足该聚合映射关系所采用的各类数据结构,进而无需对内部存储端上原有的存储结构进行更改,从而支持内部存储端上原生的存储接口。
在本实施例中,外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据。
进一步的,在将第一类对象聚合到第二类对象的过程中,内部存储端主要负责存储第二类对象的具体内容数据,而第二类对象可能由多个第一类对象聚合而成,此时第二类对象的具体内容数据则为所聚合的各个第一类对象的内容数据,因此为了确保第一类对象到第二类对象的成功聚合,本实施例会通过分析Ceph文件系统所支持的最小操作粒度,在内部存储端上预先分配出相应大小的存储空间,作为各个第二类对象的总体聚合空间,该第二类对象的总体聚合空间均高于Ceph文件系统所支持的最小操作粒度,以确保对象操作的准确度;同时,在第一类对象聚合到第二类对象的过程中,可以将第一类对象的内容数据准确添加到预先为聚合后的第二类对象所分配的总体聚合空间,使得第二类对象的总体聚合空间内能够存储该第二类对象所聚合的各个第一类对象的内容数据,从而保证内部存储端仅关注第二类对象的存储工作,避免第一类对象的单独操作,提高第二类对象所聚合的各个第一类对象的操作准确性。
此时,根据用户需求对于所存储的第一类对象会存在相应的写入、读取、删除和更改等各项操作,为了保证外部数据库和内部存储端上存储信息在各项操作下的动态更新,本实施例会通过代理服务端实时检测用户是否对第一类对象存在某项操作需求,代理服务端如果接收到第一类对象的操作请求,则对应更新该操作请求在外部数据库和内部存储端下指向的存储信息。
具体的,如果代理服务端接收到用户作用于第一类对象上的操作请求,则直接在外部数据库和内部存储端下查找出该操作请求所指向的各个存储信息,也就是外部数据库中存储的该操作请求所指向的与本次操作的第一类对象相关的聚合映射关系,以及内部存储端中存储的在本次操作的第一类对象聚合后的第二类对象的总体聚合空间内存储的本次操作的第一类对象的内容数据,进而对在外部数据库和内部存储端下查找出的该操作请求所指向的存储信息进行与本次操作相关的更新,以保证外部数据库和内部存储端上存储信息在各项操作下的动态更新,从而提高对象操作的准确性。
具体的,为了明确指示第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,使得在执行第一类对象的任意操作时,能够准确查找出第一类对象聚合后的第二类对象,以及第二类对象所聚合的各个第一类对象,本实施例可以从面向第一类对象的第一键值对集合和面向第二类对象的第二键值对集合来分别表示第一类对象和第二类对象之间的聚合映射关系。
此时,第一键值对集合面向对象存储平台所写入的各个第一类对象,分别通过多个第一键值对来对应存储每一第一类对象和该第一类对象聚合后的第二类对象之间的聚合映射关系,第二键值对集合面向对象存储平台在内部存储端上分配有总体聚合空间的各个第二类对象,分别通过多个第二键值对来存储每一第二类对象下所聚合的各个第一类对象的元数据。
具体的,第一键值对集合中每一第一键值对的键为已经写入的各个第一类对象的对象标识,值为对应键名下的第一类对象聚合后的第二类对象的对象标识和该键名下的第一类对象在聚合后的第二类对象中的聚合位置,该聚合位置可以通过第一类对象的内容数据在聚合后的第二类对象的总体聚合空间内的位置偏移(offset)和第一类对象的内容数据的整体长度(length)来共同表示;同时,第二键值对集合中每一第二键值对的键为内部存储端230上所分配的各个第二类对象的对象标识,值为对应键名下的第二类对象所聚合的各个第一类对象的元数据。
示例性的,将第一类对象i聚合到第二类对象j后,第一键值对集合中会新增一个第一个键值对(key,value),此时该第一键值对中的key值为第一类对象i的对象标识,该第一键值对中的value值由第一类对象i聚合后的第二类对象j的对象标识、第一类对象i的内容数据在第二类对象j的总体聚合空间内的存储位置偏移(offset)和第一类对象i的数据长度(length);同时,第二键值对集合下的面向第二类对象j的第二键值对的value值中会新增该第一类对象i的元数据。
此外,根据用户需求对于第一类对象会存在写入、读取、删除和覆盖写这四项操作,以下对于本实施例中第一类对象的每一操作过程进行详细的解释说明:
1)针对第一类对象的写入操作,如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息,具体可以包括:如果接收到第一类对象的写入操作请求,则在外部数据库下存储的可聚合列表中筛选出目标第二类对象,并在目标第二类对象的总体聚合空间内追加本次写入的第一类对象的内容数据,同时在外部数据库中存储本次写入的第一类对象和目标第二类对象之间的聚合映射关系。
具体的,由于本次写入的第一类对象需要聚合到在内部存储端上已经分配有总体聚合空间的某个第二类对象下,因此首先需要在内部存储端上已经分配有总体聚合空间的各个第二类对象中筛选出符合本次写入的第一类对象的聚合要求的目标第二类对象;为了保证所筛选出的目标第二类对象的准确性,本实施例会在外部数据库上维护一个可聚合列表,该可聚合列表中包括支持继续聚合第一类对象的第二类对象,也就是第二类对象的总体聚合空间内除已经聚合的第一类对象所占用的空间外,还存在相应的剩余空间来支持继续追加新的第一类对象的内容数据。
此时,通过代理服务端接收到第一类对象的写入操作请求时,会首先分析本次写入的第一类对象的数据长度与外部数据库中维护的可聚合列表中的各个第二类对象的实际剩余空间的适配度,进而在该可聚合列表中筛选出符合本次写入的第一类对象的聚合要求的目标第二类对象,并将本次写入的第一类对象的内容数据追加到该目标第二类对象的总体聚合空间内,同时分析本次写入的第一类对象的内容数据在该目标第二类对象的总体聚合空间内的位置偏移和数据长度,进而在外部数据库中的第一键值对集合中新增一个第一键值对,该第一键值对中的key值为本次写入的第一类对象的对象标识,该第一键值对中的value值由本次写入的第一类对象聚合后的目标第二类对象的对象标识、本次写入的第一类对象的内容数据在目标第二类对象的总体聚合空间内的存储位置偏移(offset)和本次写入的第一类对象的数据长度(length);同时,在外部数据库中的第二键值对集合中查找出本次写入的第一类对象聚合后的目标第二类对象所在的第二键值对,在该第二键值对的value值中新增本次写入的第一类对象的元数据,如本次写入的第一类对象的对象标识和所在的第一键值对中的内容等。
2)针对第一类对象的读取操作,如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息,具体可以包括:如果接收到第一类对象的读取操作请求,则根据本次读取的第一类对象和第二类对象之间的聚合映射关系,在本次读取的第一类对象聚合后的第二类对象的总体聚合空间内读取本次读取的第一类对象的内容数据,并采用本次读取的第一类对象的循环冗余校验码对该内容数据进行校验。
具体的,为了保证所读取的第一类对象的准确性,本实施例会在外部数据库220中所存储的面向第一类对象的第一键值对集合中的各个第一键值对的值中还存有对应键名下的第一类对象的循环冗余校验码(crc),以便对后续读取出的第一类对象的内容数据进行校验。
此时,通过代理服务端接收到第一类对象的读取操作请求时,首先采用本次读取的第一类对象的对象标识在外部数据库中存储的第一键值对集合中查找出本次读取的第一类对象所在的第一键值对,进而在该第一键值对的value值中确定出本次读取的第一类对象聚合后的第二类对象以及本次读取的第一类对象在聚合后的第二类对象中的聚合位置,从而在内部存储端上为该第二类对象分配的总体聚合空间内的该聚合位置处读取出相应的内容数据,同时采用循环冗余校验算法对读取出的内容数据进行校验,并将校验结果与在第一键值对集合中预先存储的本次读取的第一类对象的循环冗余校验码进行比对,如果校验无误则将读取出的内容数据作为本次读取的第一类对象的内容数据,从而反馈给用户。
3)针对第一类对象的删除操作,如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息,具体可以包括:如果接收到第一类对象的删除操作请求,则删除外部数据库中本次删除的第一类对象和第二类对象之间的聚合映射关系,并修改本次删除的第一类对象聚合后的第二类对象的剩余聚合指标。
具体的,为了准确记录第二类对象所聚合的有效第一类对象,本实施例还会在外部数据库中存储各个第二类对象的剩余聚合指标,以指示第二类对象所聚合的有效第一类对象的大小。
此时,通过代理服务端接收到第一类对象的删除操作请求时,首先在外部数据库中所存储的第一键值对集合中采用本次删除的第一类对象的对象标识查找出本次删除的第一类对象所在的第一键值对,进而确定本次删除的第一类对象聚合后的第二类对象,并删除本次删除的第一类对象所在的第一键值对,同时在第二键值对集合中采用本次删除的第一类对象聚合后的第二类对象的对象标识查找出该第二类对象所在的第二键值对,并在该第二键值对的value值中删除本次删除的第一类对象的元数据;此时,由于不同第一类对象的数据长度不同,使得本次删除的第一类对象在聚合后的第二类对象的总体聚合空间的存储位置无法增加新的第一类对象,因此当前可以不删除本次需要删除的第一类对象在聚合后的第二类对象的总体聚合空间内存储的内容数据,仅需要在外部数据库中对应更新本次删除的第一类对象聚合后的第二类对象的剩余聚合指标,以指示该第二类对象所聚合的有效第一类对象,后续可以通过回收服务端在第二类对象的聚合空洞空间超出预设空洞阈值执行整体回收,提高第一类对象删除的准确性。
4)针对第一类对象的覆盖写操作,如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息,具体可以包括:如果接收到第一类对象的覆盖写操作请求,则删除外部数据库中本次覆盖写指向的原有第一类对象和第二类对象之间的聚合映射关系,并修改原有第一类对象聚合后的第二类对象的剩余聚合指标,同时在外部数据库下存储的可聚合列表中筛选出目标第二类对象,并在目标第二类对象的总体聚合空间内追加本次覆盖写指向的新的第一类对象的内容数据,同时在外部数据库中存储新的第一类对象和目标第二类对象之间的聚合映射关系。
具体的,本实施例中的覆盖写操作主要为对于当前要求写入的第一类对象,对象存储平台中存在某个已经写入的第一类对象与该第一类对象的对象标识相同,但内容数据不同,此时可以将覆盖写操作作为删除操作和写入操作的组合,也就是通过代理服务端接收到第一类对象的覆盖写操作请求时,首先对已经写入的原有第一类对象执行相应的删除操作,在删除成功后,再次对当前要求写入的新的第一类对象执行相应的写入操作,从而保证覆盖写操作的准确执行。
S420,实时检测第二类对象的聚合空洞空间,对聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息。
具体的,由于将多个第一类对象聚合到第二类对象后,在内部存储端上第二类对象的总体聚合空间内会按照一定聚合顺序来对应存储所聚合的各个第一类对象的内容数据,此时如果通过代理服务端根据用户需求来删除某个第一类对象,会在该第一类对象聚合后的第二类对象的总体聚合空间内相应删除该第一类对象的内容数据,此时该第二类对象的总体聚合空间内会出现相应存储空缺,而由于不同第一类对象的内容数据也不同,因此无法在第二类对象的总体聚合空间内的存储空缺位置再次添加新的第一类对象,使得第二类对象的总体聚合空间无法被完全使用;为了解决上述问题,本实施例会通过回收服务端来负责筛选出第二类对象所聚合的第一类对象中在根据用户需求进行删除后剩余的有效第一类对象,并从内部存储端为该第二类对象分配的总体聚合空间内读取出各个有效第一类对象的内容数据,进而将各个有效第一类对象的内容数据迁移,也就是重新聚合到一个新的第二类对象中,并对应更新外部数据库中存储的各个有效第一类对象相关的聚合映射关系。
此时,由于第一类对象在删除后,会对应删除外部数据库中所存储的该第一类对象相关的聚合映射关系,使得外部数据库中所存储的聚合映射关系指向的第一类对象为当前未被删除的第一类对象,因此本实施例会通过回收服务端实时分析外部数据库中存储的第一类对象和第二类对象之间的聚合映射关系,从而针对每一第二类对象,判断该第二类对象下所聚合的删除后剩余的各个第一类对象在该第二类对象的总体聚合空间内的聚合位置之间是否存在断层,将该断层作为第二类对象的聚合空洞空间,如果某一第二类对象的聚合空洞空间超出预设空洞阈值,说明该第二类对象所聚合的第一类对象中存在大部分被删除的情况,此时通过分析外部数据库中还存储的第一类对象和第二类对象之间的聚合映射关系,确定出每一第二类对象所聚合的删除后还剩余的各个有效第一类对象,此时需要将各个有效第一类对象迁移到一个新的第二类对象下,也就是将各个有效第一类对象重新聚合到新的第二类对象下,因此可以通过回收服务端将聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给代理服务端,进而通过代理服务端针对每一有效第一类对象重新执行相应的写入操作,从而将各个有效第一类对象聚合到新的第二类对象中,进而删除聚合空洞空间超出预设空洞阈值的第二类对象在外部数据库中关联的聚合映射关系,也就是各个有效第一类对象和该第二类对象之间的聚合映射关系,并删除聚合空洞空间超出预设空洞阈值的第二类对象在内部存储端上分配的总体聚合空间,从而保证第二类对象的总体聚合空间的完全使用。
示例性的,本实施例中对聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息,具体可以包括:根据聚合空洞空间超出预设空洞阈值的第二类对象相关的聚合映射关系确定该第二类对象所聚合的各个有效第一类对象,并对每一有效第一类对象重新执行相应的写入操作,同时删除外部数据库下该第二类对象相关的聚合映射关系,以及内部存储端下为该第二类对象分配的总体聚合空间。
具体的,为了保证回收操作的准确性,本实施例还会在外部数据库中维护一个可回收列表,该可回收列表中包括无法继续聚合第一类对象的第二类对象,也就是第二类对象的总体聚合空间被已经聚合的第一类对象完全占用,不存在相应的剩余空间来支持继续追加新的第一类对象的内容数据。
此时,由于外部数据库上维护的可回收列表中的每一第二类对象的总体聚合空间均已被所聚合的第一类对象完全占用,此时由于第一类对象会根据用户需求执行相应的删除操作,并对应修改删除的第一类对象聚合后的第二类对象的剩余聚合指标,使得该剩余聚合指标能够指示该第二类对象在删除相应聚合的第一类对象后,该第二类对象的总体聚合空间内的聚合空洞空间,因此如果可回收列表中某个第二类对象的剩余聚合指标超出预设指标阈值,则说明该第二类对象下的聚合空洞空间超出预设空洞阈值,进而通过回收服务端对该第二类对象执行相应的回收操作,从而保证回收操作的准确性。
示例性的,为了提高第二类对象的回收效率,本实施例会采用分布式架构设置回收服务端,使得回收服务端上配置有回收进程,该回收进程可以包括调度线程和至少一个工作线程。
具体的,在将第一类对象聚合到第二类对象的过程中,通过调度线程实时检测外部数据库中存储的面向第一类对象的第一键值对集合和面向第二类对象的第二键值对集合,针对每一第二类对象,判断该第二类对象下所聚合的各个有效第一类对象在该第二类对象的总体聚合空间内的聚合位置之间是否存在断层,将该断层作为第二类对象的聚合空洞空间,实时判断各个第二类对象的聚合空洞空间是否超出预设空洞阈值。
示例性的,为了保证回收操作的准确性,本实施例还会在外部数据库中存储每一第二类对象的剩余聚合指标,在第二类对象所聚合的某一第一类对象被删除后,实时修改该第二类对象的剩余聚合指标,以指示第二类对象所聚合的有效第一类对象的大小;此时,外部数据库上维护的可回收列表中的每一第二类对象的总体聚合空间均已被所聚合的第一类对象完全占用,而由于第一类对象会根据用户需求执行相应的删除操作,并对应修改删除的第一类对象聚合后的第二类对象的剩余聚合指标,使得该剩余聚合指标能够指示该第二类对象在删除相应聚合的第一类对象后,该第二类对象的总体聚合空间内的聚合空洞空间,因此通过调度线程实时检测可回收列表中每一第二类对象的剩余聚合指标是否超出预设指标阈值,如果可回收列表中的某个第二类对象的剩余聚合指标超出预设指标阈值,说明该第二类对象下的聚合空洞空间超出预设空洞阈值。
进一步的,通过调度线程在检测出聚合空洞空间超出预设空洞阈值的第二类对象,生成该第二类对象的回收任务,并在全部的工作线程中选出当前任务量较低的工作线程,将该第二类对象的回收任务发送给所选出的工作线程来执行具体的回收操作;通过该工作线程接收到某个第二类对象的回收任务时,可以分析外部数据库中存储的面向第二类对象的第二键值对集合中该回收任务对应的第二类对象所在的第二键值对,从而确定出该第二键值对中该第二类对象所聚合的删除后还剩余的各个有效第一类对象,进而按照各个有效第一类对象所在的第一键值对中记录的该有效第一类对象在聚合后的该第二类对象的总体聚合空间内的聚合位置,依次读取出本次回收的第二类对象所聚合的各个有效第一类对象的内容数据,并将各个有效第一类对象依次转发给代理服务端,通过代理服务端针对每一有效第一类对象重新执行相应的写入操作,从而将各个有效第一类对象聚合到新的第二类对象中,进而删除聚合空洞空间超出预设空洞阈值的第二类对象在外部数据库中关联的聚合映射关系,也就是各个有效第一类对象和该第二类对象之间的聚合映射关系,如各个有效第一类对象所在的第一键值对和该第二类对象所在的第二键值对中存储的各个有效第一类对象的元数据;同时,通过该工作线程还会删除聚合空洞空间超出预设空洞阈值的第二类对象在内部存储端上所分配的总体聚合空间,从而保证第二类对象的总体聚合空间的完全使用。
此外,为了保证内部存储端上所分配的第二类对象实时满足第一类对象的聚合请求,本实施例还会通过调度线程实时检测内部存储端上所分配的第二类对象的数量,在内部存储端上分配的第二类对象数量低于分配阈值时,及时在内部存储端上重新分配出新的第二类对象,并为新的第二类对象设定对应的总体聚合空间,以保证内部存储端上持续存在第二类对象来聚合各个第一类对象。
本实施例提供的技术方案,需要将第一类对象聚合到第二类对象时,直接在外部数据库中存储第一类对象和第二类对象之间的聚合映射关系,并在内部存储端上为第二类对象所分配的总体聚合空间内直接存储该第二类对象所聚合的各个第一类对象的内容数据,此时第一类对象下的聚合映射关系和自身的内容数据能够实现分区存储,从而优化第一类对象的存储结构,使得第一类对象的聚合存储能够兼容内部存储端的原有存储设计,无需为了适应第一类对象和第二类对象之间的聚合映射关系的存储结构而更改内部存储端的原有存储结构,同时代理服务端能够根据第一类对象的操作请求,对应更新该操作请求在外部数据库和内部存储端下指向的存储信息,实现外部数据库和内部存储端下存储信息随着第一类对象操作的动态更新,从而提高第一类对象存储的准确性。
实施例五
图5为本发明实施例五提供的一种对象操作装置的结构示意图,设置于上述实施例提供的对象存储平台中,具体的,如图5所示,该装置可以包括:
第一类对象操作模块510,用于如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息;
第二类对象回收模块520,用于实时检测第二类对象的聚合空洞空间,对聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端上分配有第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器。
本实施例提供的技术方案,需要将第一类对象聚合到第二类对象时,直接在外部数据库中存储第一类对象和第二类对象之间的聚合映射关系,并在内部存储端上为第二类对象所分配的总体聚合空间内直接存储该第二类对象所聚合的各个第一类对象的内容数据,此时第一类对象下的聚合映射关系和自身的内容数据能够实现分区存储,从而优化第一类对象的存储结构,使得第一类对象的聚合存储能够兼容内部存储端的原有存储设计,无需为了适应第一类对象和第二类对象之间的聚合映射关系的存储结构而更改内部存储端的原有存储结构,同时代理服务端能够根据第一类对象的操作请求,对应更新该操作请求在外部数据库和内部存储端下指向的存储信息,实现外部数据库和内部存储端下存储信息随着第一类对象操作的动态更新,从而提高第一类对象存储的准确性。
本实施例提供的对象操作装置可适用于上述任意实施例提供的对象操作方法,具备相应的功能和有益效果。
实施例六
图6为本发明实施例六提供的一种服务器的结构示意图,如图6所示,该服务器包括处理器60、存储装置61和通信装置62;服务器中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;服务器中的处理器60、存储装置61和通信装置62可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储装置61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的对象操作方法对应的程序指令/模块。处理器60通过运行存储在存储装置61中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述对象操作方法。
存储装置61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置62可用于实现各设备之间的网络连接或者移动数据连接。
本实施例提供的一种服务器可用于执行上述任意实施例提供的对象操作方法,具备相应的功能和有益效果。
实施例七
本发明实施例七还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的对象操作方法。该方法具体可以包括如下步骤:
如果接收到第一类对象的操作请求,则对应更新操作请求在外部数据库和内部存储端下指向的存储信息;
实时检测第二类对象的聚合空洞空间,对聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,内部存储端上分配有所述第二类对象的总体聚合空间,第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的媒体资源的处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述对象操作装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种对象存储平台,其特征在于,包括:至少一个代理服务端、外部数据库和内部存储端,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器;其中,
所述代理服务端如果接收到所述第一类对象的操作请求,则对应更新该操作请求在所述外部数据库和所述内部存储端下指向的存储信息;
所述外部数据库还存储有可聚合列表,所述可聚合列表中包括支持继续聚合第一类对象的第二类对象;
所述代理服务端如果接收到第一类对象的写入操作请求,则在所述可聚合列表中筛选出目标第二类对象,并在所述目标第二类对象的总体聚合空间内追加本次写入的第一类对象的内容数据,同时在所述外部数据库中存储本次写入的第一类对象和目标第二类对象之间的聚合映射关系。
2.根据权利要求1所述的对象存储平台,其特征在于,所述第一类对象和第二类对象之间的聚合映射关系分别由面向第一类对象的第一键值对集合和面向第二类对象的第二键值对集合表示;
所述第一键值对集合中每一第一键值对的键为第一类对象的对象标识,值为对应键名下的第一类对象聚合后的第二类对象的对象标识和该键名下的第一类对象在聚合后的第二类对象中的聚合位置;
所述第二键值对集合中每一第二键值对的键为第二类对象的对象标识,值为对应键名下的第二类对象所聚合的各个第一类对象的元数据。
3.根据权利要求2所述的对象存储平台,其特征在于,所述第一键值对的值还包括对应键名下的第一类对象的循环冗余校验码;
所述代理服务端如果接收到第一类对象的读取操作请求,则根据本次读取的第一类对象和第二类对象之间的聚合映射关系,在本次读取的第一类对象聚合后的第二类对象的总体聚合空间内读取本次读取的第一类对象的内容数据,并采用本次读取的第一类对象的循环冗余校验码对该内容数据进行校验。
4.根据权利要求1-3任一项所述的对象存储平台,其特征在于,还包括回收服务端;其中,
所述回收服务端根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象的聚合空洞空间,将所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象依次转发给所述代理服务端,由所述代理服务端针对每一有效第一类对象重新执行相应的写入操作,并删除该第二类对象在所述外部数据库中关联的聚合映射关系,以及该第二类对象在所述内部存储端上分配的总体聚合空间。
5.根据权利要求4所述的对象存储平台,其特征在于,所述外部数据库还存储有所述第二类对象的剩余聚合指标和可回收列表,所述可回收列表中包括无法继续聚合第一类对象的第二类对象;
所述代理服务端如果接收到第一类对象的删除操作请求,则删除所述外部数据库中本次删除的第一类对象和第二类对象之间的聚合映射关系,并修改本次删除的第一类对象聚合后的第二类对象的剩余聚合指标;
所述回收服务端如果检测到所述可回收列表中第二类对象的剩余聚合指标超出预设指标阈值,则确定该第二类对象下的聚合空洞空间超出预设空洞阈值。
6.根据权利要求4所述的对象存储平台,其特征在于,所述回收服务端上配置有回收进程,所述回收进程包括调度线程和至少一个工作线程;其中,
所述回收服务端通过所述调度线程根据第一类对象和第二类对象之间的聚合映射关系实时检测第二类对象下的聚合空洞空间,并针对所述聚合空洞空间超出预设空洞阈值的第二类对象,生成对应的回收任务发送给对应的工作线程;
所述回收服务端通过所述工作线程在接收到第二类对象的回收任务时,读取出本次回收的第二类对象所聚合的各个有效第一类对象并依次转发给所述代理服务端,由所述代理服务端针对每一有效第一类对象重新执行相应的写入操作,同时删除本次回收的第二类对象在所述外部数据库中关联的聚合映射关系,以及本次回收的第二类对象在所述内部存储端上分配的总体聚合空间。
7.根据权利要求6所述的对象存储平台,其特征在于,所述调度线程还用于在所述内部存储端上分配的第二类对象数量低于分配阈值时,在所述内部存储端上为新的第二类对象分配对应的总体聚合空间。
8.根据权利要求4所述的对象存储平台,其特征在于,所述对象存储平台设置为接入层、存储层和重写层三层,所述代理服务端配置于接入层,所述外部数据库和所述内部存储端配置于存储层,所述回收服务端配置于重写层。
9.一种对象操作方法,其特征在于,应用于权利要求1-8任一项所述的对象存储平台中,包括:
如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息;
实时检测第二类对象的聚合空洞空间,对所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器;
其中,所述如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息,包括:
如果接收到第一类对象的写入操作请求,则在所述外部数据库下存储的可聚合列表中筛选出目标第二类对象,并在所述目标第二类对象的总体聚合空间内追加本次写入的第一类对象的内容数据,同时在所述外部数据库中存储本次写入的第一类对象和目标第二类对象之间的聚合映射关系。
10.根据权利要求9所述的方法,其特征在于,如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息,包括:
如果接收到第一类对象的读取操作请求,则根据本次读取的第一类对象和第二类对象之间的聚合映射关系,在本次读取的第一类对象聚合后的第二类对象的总体聚合空间内读取本次读取的第一类对象的内容数据,并采用本次读取的第一类对象的循环冗余校验码对该内容数据进行校验。
11.根据权利要求9所述的方法,其特征在于,如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息,包括:
如果接收到第一类对象的删除操作请求,则删除所述外部数据库中本次删除的第一类对象和第二类对象之间的聚合映射关系,并修改本次删除的第一类对象聚合后的第二类对象的剩余聚合指标。
12.根据权利要求9所述的方法,其特征在于,如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息,包括:
如果接收到第一类对象的覆盖写操作请求,则删除所述外部数据库中本次覆盖写指向的原有第一类对象和第二类对象之间的聚合映射关系,并修改所述原有第一类对象聚合后的第二类对象的剩余聚合指标,同时在所述外部数据库下存储的可聚合列表中筛选出目标第二类对象,并在所述目标第二类对象的总体聚合空间内追加本次覆盖写指向的新的第一类对象的内容数据,同时在所述外部数据库中存储所述新的第一类对象和目标第二类对象之间的聚合映射关系。
13.根据权利要求9所述的方法,其特征在于,对所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息,包括:
根据所述聚合空洞空间超出预设空洞阈值的第二类对象相关的聚合映射关系确定该第二类对象所聚合的各个有效第一类对象,并对每一有效第一类对象重新执行相应的写入操作,同时删除所述外部数据库下该第二类对象相关的聚合映射关系,以及所述内部存储端下为该第二类对象分配的总体聚合空间。
14.一种对象操作装置,其特征在于,设置于权利要求1-8任一项所述的对象存储平台中,包括:
第一类对象操作模块,用于如果接收到第一类对象的操作请求,则对应更新所述操作请求在外部数据库和内部存储端下指向的存储信息;
第二类对象回收模块,用于实时检测第二类对象的聚合空洞空间,对所述聚合空洞空间超出预设空洞阈值的第二类对象所聚合的各个有效第一类对象重新执行相应的写入操作,并删除该第二类对象在外部数据库和内部存储端下关联的存储信息;
其中,所述外部数据库存储有将第一类对象聚合到第二类对象后,第一类对象和第二类对象之间的聚合映射关系,所述内部存储端上分配有所述第二类对象的总体聚合空间,所述第二类对象的总体聚合空间内存储该第二类对象所聚合的各个第一类对象的内容数据,所述第一类对象为操作粒度无法支持对象完整操作的对象,所述第二类对象为操作粒度支持对象完整操作,且用于聚合所述第一类对象的容器;
其中,所述第一类对象操作模块,具体用于:
如果接收到第一类对象的写入操作请求,则在所述外部数据库下存储的可聚合列表中筛选出目标第二类对象,并在所述目标第二类对象的总体聚合空间内追加本次写入的第一类对象的内容数据,同时在所述外部数据库中存储本次写入的第一类对象和目标第二类对象之间的聚合映射关系。
15.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求9-13中任一所述的对象操作方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求9-13中任一所述的对象操作方法。
CN202010379076.5A 2020-05-07 2020-05-07 一种对象存储平台以及对象操作方法、装置和服务器 Active CN111581157B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010379076.5A CN111581157B (zh) 2020-05-07 2020-05-07 一种对象存储平台以及对象操作方法、装置和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010379076.5A CN111581157B (zh) 2020-05-07 2020-05-07 一种对象存储平台以及对象操作方法、装置和服务器

Publications (2)

Publication Number Publication Date
CN111581157A CN111581157A (zh) 2020-08-25
CN111581157B true CN111581157B (zh) 2023-06-23

Family

ID=72124727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010379076.5A Active CN111581157B (zh) 2020-05-07 2020-05-07 一种对象存储平台以及对象操作方法、装置和服务器

Country Status (1)

Country Link
CN (1) CN111581157B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546273B (zh) * 2022-02-22 2023-08-04 苏州浪潮智能科技有限公司 聚合特性兼容多站点同步的方法、系统、设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558537A (zh) * 2018-11-20 2019-04-02 深圳智链物联科技有限公司 一种聚合平台的数据处理方法及装置
CN110032543A (zh) * 2019-04-15 2019-07-19 苏州浪潮智能科技有限公司 一种存储文件系统的管理方法
CN110147398B (zh) * 2019-04-25 2020-05-15 北京字节跳动网络技术有限公司 一种数据处理方法、装置、介质和电子设备
CN110716696A (zh) * 2019-09-27 2020-01-21 新华三信息安全技术有限公司 对象处理方法及相关装置

Also Published As

Publication number Publication date
CN111581157A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
US9575976B2 (en) Methods and apparatuses to optimize updates in a file system based on birth time
US20200226100A1 (en) Metadata query method and apparatus
CN107066498B (zh) 键值kv存储方法和装置
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US11099937B2 (en) Implementing clone snapshots in a distributed storage system
US10565075B2 (en) Storage device and block storage method based on the storage device
CN110399333B (zh) 删除快照的方法、设备和计算机程序产品
CN111708755A (zh) 数据迁移方法、装置、系统、电子设备以及可读存储介质
US9734620B2 (en) Apparatus and method for graphics state management
CN111198856A (zh) 文件管理方法、装置、计算机设备和存储介质
WO2024099448A1 (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN112631953A (zh) 固态硬盘数据trim方法、装置、电子设备及存储介质
CN111581157B (zh) 一种对象存储平台以及对象操作方法、装置和服务器
CN111488128B (zh) 一种元数据的更新方法、装置、设备及介质
CN111610936B (zh) 一种对象存储平台以及对象聚合方法、装置和服务器
CN111984196B (zh) 一种文件迁移方法、装置、设备及可读存储介质
CN107133334B (zh) 基于高带宽存储系统的数据同步方法
US10209909B1 (en) Storage element cloning in presence of data storage pre-mapper
CN115756838A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
US11748203B2 (en) Multi-role application orchestration in a distributed storage system
CN112783835A (zh) 索引管理方法、装置及电子设备
KR101861851B1 (ko) 저장 장치의 메모리 컨트롤러가 수행하는 청크 할당 방법 및 메모리 컨트롤러
CN111881064A (zh) 一种全闪存储系统中访问请求的处理方法、装置及设备
CN115344539B (zh) 用于分布式数据库的日志空间回收方法和装置
CN117009439B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231009

Address after: 31a, 15th floor, building 30, maple commercial city, bangrang Road, Brazil

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.