CN108776578A - 一种快速合并对象的方法和系统 - Google Patents

一种快速合并对象的方法和系统 Download PDF

Info

Publication number
CN108776578A
CN108776578A CN201810554756.9A CN201810554756A CN108776578A CN 108776578 A CN108776578 A CN 108776578A CN 201810554756 A CN201810554756 A CN 201810554756A CN 108776578 A CN108776578 A CN 108776578A
Authority
CN
China
Prior art keywords
data
index
data segment
information
combining objects
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.)
Granted
Application number
CN201810554756.9A
Other languages
English (en)
Other versions
CN108776578B (zh
Inventor
V·W·陈
蒋建涛
盛滢
吴永凯
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.)
Unisplendour Western Digital Co., Ltd.
Original Assignee
Nanjing Purple Cloud Mdt Infotech 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 Nanjing Purple Cloud Mdt Infotech Ltd filed Critical Nanjing Purple Cloud Mdt Infotech Ltd
Priority to CN201810554756.9A priority Critical patent/CN108776578B/zh
Publication of CN108776578A publication Critical patent/CN108776578A/zh
Application granted granted Critical
Publication of CN108776578B publication Critical patent/CN108776578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

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

一种快速合并对象的方法和系统
技术领域
本发明属于对象存储技术领域,具体涉及一种快速合并对象的方法和系统。
背景技术
对象存储是一种基于对象的存储形态,在基于对象存储的存储系统或服务中,对象(Object)是存储的基本数据单位,用户上传的数据以对象的形式存储在一个或多个容器(Bucket,桶)中。对象存储采用扁平化结构管理所有数据,容器和对象都有一个全局唯一的ID,用户/应用经过认证接入后,只需要根据ID就可以访问容器/对象及相关的数据(Data)、元数据(metadata)和对象属性(Attribute),解决了文件系统复杂目录树结构在海量数据情况下的数据查找耗时长的问题,这使得对象存储具备极强的扩展性。同时也能更好的满足特定非结构化数据(例如视频、录音、图片等)的存储要求。
在一些场景下,需要将对象存储中的多个对象合并成一个对象。目前业界通常使用的方法是通过S3API中提供的MultipartUploadCopy相关接口,将多个对象拷贝并合并为一个对象。但是该方法需要在对象存储设备内部完整拷贝所有数据,对象越大合并时间越长,而且对分块对象有很多限制,例如,每个待合并的分块对象(part)必须大于等于5MB且小于等于5GB,part总数不能超过10000,且合并后整个对象的大小不能超过5TB等,这些限制约束了当前对象合并的应用场景。
发明内容
发明目的:针对现有技术的不足,本发明提出一种快速合并对象的方法,能实现秒级合并,且对待合并的对象和合并后对象没有任何限制。
本发明的另一目的在于提供一种相应的能够快速合并对象的系统。
技术方案:本发明所述的一种快速合并对象的方法,基于一种新的对象结构来合并对象,所述新的对象结构为:以一个索引对象和至少一个数据对象构成一个向用户提供服务的完整对象,所述至少一个数据对象用于存储数据,索引对象用于记录对象的基本信息以及至少一个数据对象中的数据在整个数据段中的位置。在合并对象时,读取待合并对象的索引对象,基于索引对象中记录的信息进行整理合并。
具体地,索引对象包括索引头信息和数据段信息,所述索引头信息包括:对象标识:表示该对象是否为索引对象;数据总长度:表示完整对象中所有数据对象的总长度;数据段个数:表示完整对象中数据段的个数。所述数据段信息包括:数据偏移:表示该数据段在整个数据中的偏移;数据对象中的偏移:表示该数据段在对应的数据对象中的偏移;数据段长度:表示该数据段的长度。
基于上述索引对象格式,合并对象的操作包括以下步骤:读取待合并对象的索引对象;合并索引对象中的数据段信息,并将这些信息按照索引对象信息格式写入新的索引对象中;删除被合并对象的索引对象。
其中,在写入新索引对象时,索引头信息中数据段个数和数据总长度分别为需要合并的对象的索引对象的索引头信息中数据段个数之和和数据总长度之和;数据段信息中各数据对象的数据偏移根据合并顺序来计算,取值为前一数据对象的数据偏移和数据段长度之和。
一种快速合并对象的系统,包括客户端和对象存储设备,对象存储设备具有存储具有上述新的对象结构的对象,客户端基于用户的合并请求执行对象合并操作。客户端包括存储器和处理器,存储器存有计算机程序,所述程序被处理器执行时能够实现上述合并对象操作所包括的步骤。
有益效果:本发明的方法在对象合并过程中只需要通过读取对象的索引对象数据段信息,即可进行整理合并,不需要处理对象数据,索引对象相对真实对象大小是非常小的,能快速合并多个对象,实现秒级合并,且对待合并的对象和合并后对象大小没有任何限制。
附图说明
图1是根据本发明实施例的对象结构的对象组成示意图;
图2是根据本发明实施例的索引对象格式示意图;
图3是根据本发明实施例的对象合并场景下索引对象中数据段结构图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
参照图1,根据本发明实施例提供的一种对象存储方式的对象组成示意图,一个完整的对象包括一个索引对象和至少一个数据对象,数据存储于这些数据对象中,索引对象用于记录该完整对象的基本信息以及数据对象中的数据在整个数据段中的位置。索引对象名为对外提供服务的对象名,索引对象包括索引头信息和数据段信息,索引头信息中提供了对象的基本信息,包含对象大小等,数据段信息记录了数据段与数据对象中的数据的对应关系。图2示出了索引对象的结构,其中,0至32字节是索引对象头信息,后面是数据段信息,每个数据对象的数据段信息也占用32字节,具体地,索引头信息包括:
标识:4字节,用于判断是索引对象还是数据对象;
版本:4字节,用于表示索引对象的版本;
索引长度:4字节,用于表示索引对象的总长度;
校验码:4字节,用于表示索引对象的校验码,检查索引对象的完整性;
数据总长度:8字节,用于表示数据对象的总长度;
标志:4字节,用于表示对象属性,例如可共享读、正常关闭等;
数据段个数:4字节,用于表示该完整对象中的数据段个数。
数据段信息包括:
数据对象名:16字节,用于表示数据段对应的数据对象名;
数据偏移:8字节,用于表示该数据段在整个数据中的起始位置;
数据对象中的偏移:4字节,用于表示该数据段在对应的数据对象中的起始位置;
数据段长度:4字节,用于表示该数据段的长度。
基于上述对象结构,本发明的方法在合并对象时,通过读取待合并对象的索引对象,基于索引对象中记录的信息进行整理合并即可,不需要处理数据对象中的数据,索引对象的大小相对于真实对象而言是非常小的,从而能够实现秒级合并。
合并对象的前提是对象已经存在,即已按照上述对象结构创建了对象。创建对象的过程为:先创建一个同名的索引对象,然后再创建数据对象,针对数据特别大的对象,会将对象切割成固定大小的数据对象。数据对象可以4MB、8MB、16MB、32MB或者更大的数据分片粒度进行切割,在索引对象中记录每个数据段对应的数据对象及其数据对应的位置,并更新数据总长度,其中,数据对象的数据偏移从0开始递增,下一个数据对象的数据偏移根据上一数据对象的数据偏移和数据段长度得出,为二者之和;数据对象中的偏移均为0。如果对象小于等于数据分片粒度大小,数据对象大小为对象数据实际大小,不会切割。
合并对象包括以下步骤:读取待合并对象的索引对象;合并索引对象中的数据段信息,并将这些信息按照索引对象信息格式写入新的索引对象中;删除被合并对象的索引对象。
其中,在写入新索引对象时,索引头信息中数据段个数和数据总长度分别为需要合并的对象的索引对象的索引头信息中数据段个数之和和数据总长度之和;数据段信息中各数据对象的数据偏移根据合并顺序来计算,取值为前一数据对象的数据偏移和数据段长度之和;数据段信息中其余信息不变。
图3为根据本发明实施例提供的对象结构来快速合并对象时索引对象中数据段结构图。如图3所示,有对象1和对象2两个对象需要合并,对象1大小为8MB,有2个数据段,对象2大小为6MB,也有2个数据段。对象1和对象2合并后,生成对象3,对象3中数据段为4个。数据段1和数据段2与对象1中的数据段1和数据段2相同。数据段3对应数据对象3,数据偏移为8MB,数据对象中的偏移为0,数据长度为4MB。数据段4对应数据对象4,数据偏移为12MB,数据对象中的偏移为0,数据长度为2MB。
一种快速合并对象的系统,包括客户端和对象存储设备,对象存储设备用于存储具有上述新的对象结构的对象,客户端基于用户的合并请求执行对象合并操作。客户端包括存储器和处理器,存储器存有计算机程序,所述程序被处理器执行时能够实现以下步骤:读取合并对象对应的索引对象中的数据,将数据段信息进行合并,重新写入一个新的索引对象,删除合并对象对应的索引对象。
其中,所述程序在写入新索引对象时,索引头信息中数据段个数和数据总长度分别为需要合并的对象的索引对象的索引头信息中数据段个数之和和数据总长度之和;数据段信息中各数据对象的数据偏移根据合并顺序来计算,取值为前一数据对象的数据偏移和数据段长度之和;其余信息不变。

Claims (6)

1.一种快速合并对象的方法,其特征在于,所述方法基于一种新的对象结构来合并对象,所述新的对象结构为:以一个索引对象和至少一个数据对象构成一个向用户提供服务的完整对象,所述至少一个数据对象用于存储数据,所述索引对象用于记录对象的基本信息以及所述至少一个数据对象中的数据在整个数据段中的位置;在合并对象时,读取待合并对象的索引对象,基于索引对象中记录的信息进行整理合并。
2.根据权利要求1所述一种快速合并对象的方法,其特征在于,所述索引对象包括索引头信息和数据段信息,其中,
所述索引头信息包括:对象标识:表示该对象是否为索引对象;数据总长度:表示完整对象中所有数据对象的总长度;数据段个数:表示完整对象中数据段的个数;
所述数据段信息包括:数据偏移:表示该数据段在整个数据中的偏移;数据对象中的偏移:表示该数据段在对应的数据对象中的偏移;数据段长度:表示该数据段的长度。
3.根据权利要求2所述一种快速合并对象的方法,其特征在于,合并对象的操作包括以下步骤:读取待合并对象的索引对象;合并索引对象中的数据段信息,并将这些信息按照索引对象信息格式写入新的索引对象中;删除被合并对象的索引对象。
4.根据权利要求3所述一种快速合并对象的方法,其特征在于,在写入新索引对象时,索引头信息中数据段个数和数据总长度分别为需要合并的对象的索引对象的索引头信息中数据段个数之和和数据总长度之和;数据段信息中各数据对象的数据偏移根据合并顺序来计算,取值为前一数据对象的数据偏移和数据段长度之和。
5.一种快速合并对象的系统,其特征在于,包括客户端和对象存储设备,所述对象存储设备用于存储具有根据权利要求1或2中所述的对象结构的对象,所述客户端基于用户的合并请求执行对象合并操作,其中,
所述客户端包括存储器和处理器,存储器存有计算机程序,所述程序被处理器执行时能够实现以下步骤:读取待合并对象的索引对象;合并索引对象中的数据段信息,并将这些信息按照索引对象信息格式写入新的索引对象中;删除被合并对象的索引对象。
6.根据权利要求5所述的一种快速合并对象的系统,其特征在于,所述程序在写入新索引对象时,索引头信息中数据段个数和数据总长度分别为需要合并的对象的索引对象的索引头信息中数据段个数之和和数据总长度之和;数据段信息中各数据对象的数据偏移根据合并顺序来计算,取值为前一数据对象的数据偏移和数据段长度之和。
CN201810554756.9A 2018-06-01 2018-06-01 一种快速合并对象的方法和系统 Active CN108776578B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810554756.9A CN108776578B (zh) 2018-06-01 2018-06-01 一种快速合并对象的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810554756.9A CN108776578B (zh) 2018-06-01 2018-06-01 一种快速合并对象的方法和系统

Publications (2)

Publication Number Publication Date
CN108776578A true CN108776578A (zh) 2018-11-09
CN108776578B CN108776578B (zh) 2021-10-26

Family

ID=64026500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810554756.9A Active CN108776578B (zh) 2018-06-01 2018-06-01 一种快速合并对象的方法和系统

Country Status (1)

Country Link
CN (1) CN108776578B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825715A (zh) * 2019-11-08 2020-02-21 上海德拓信息技术股份有限公司 基于Ceph对象存储的多对象数据秒合的实现方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901620A (zh) * 2010-07-28 2010-12-01 复旦大学 视频内容索引文件的自动产生、编辑方法与应用
CN102096679A (zh) * 2009-12-15 2011-06-15 北大方正集团有限公司 一种索引段合并和写入磁盘的方法及装置
CN102598019A (zh) * 2009-09-09 2012-07-18 弗森-艾奥公司 用于分配存储的设备、系统和方法
US20120198197A1 (en) * 2011-02-01 2012-08-02 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US20130232153A1 (en) * 2012-03-02 2013-09-05 Cleversafe, Inc. Modifying an index node of a hierarchical dispersed storage index
CN103678638A (zh) * 2013-12-20 2014-03-26 厦门雅迅网络股份有限公司 一种基于磁盘的对象缓存方法
CN103778188A (zh) * 2013-12-31 2014-05-07 网秦(北京)科技有限公司 用于在库文件中查询和/或维护数据的方法和设备
CN104572670A (zh) * 2013-10-15 2015-04-29 方正国际软件(北京)有限公司 一种小文件的存储、查询及删除方法和系统
CN104731921A (zh) * 2015-03-26 2015-06-24 江苏物联网研究发展中心 Hadoop分布式文件系统针对日志型小文件的存储和处理方法
CN105912696A (zh) * 2016-04-25 2016-08-31 中国互联网络信息中心 一种基于对数归并的dns索引创建方法及查询方法
CN106446099A (zh) * 2016-09-13 2017-02-22 国家超级计算深圳中心(深圳云计算中心) 一种分布式云存储方法、系统及其上传下载方法
CN106575255A (zh) * 2014-05-09 2017-04-19 前田建设工业株式会社 信息处理装置、信息处理方法以及程序
US20170123714A1 (en) * 2015-10-31 2017-05-04 Netapp, Inc. Sequential write based durable file system
JP2018007278A (ja) * 2017-10-11 2018-01-11 株式会社東芝 復号方法及び復号装置

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102598019A (zh) * 2009-09-09 2012-07-18 弗森-艾奥公司 用于分配存储的设备、系统和方法
CN102096679A (zh) * 2009-12-15 2011-06-15 北大方正集团有限公司 一种索引段合并和写入磁盘的方法及装置
CN101901620A (zh) * 2010-07-28 2010-12-01 复旦大学 视频内容索引文件的自动产生、编辑方法与应用
US20120198197A1 (en) * 2011-02-01 2012-08-02 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US20130232153A1 (en) * 2012-03-02 2013-09-05 Cleversafe, Inc. Modifying an index node of a hierarchical dispersed storage index
CN104572670A (zh) * 2013-10-15 2015-04-29 方正国际软件(北京)有限公司 一种小文件的存储、查询及删除方法和系统
CN103678638A (zh) * 2013-12-20 2014-03-26 厦门雅迅网络股份有限公司 一种基于磁盘的对象缓存方法
CN103778188A (zh) * 2013-12-31 2014-05-07 网秦(北京)科技有限公司 用于在库文件中查询和/或维护数据的方法和设备
CN106575255A (zh) * 2014-05-09 2017-04-19 前田建设工业株式会社 信息处理装置、信息处理方法以及程序
CN104731921A (zh) * 2015-03-26 2015-06-24 江苏物联网研究发展中心 Hadoop分布式文件系统针对日志型小文件的存储和处理方法
US20170123714A1 (en) * 2015-10-31 2017-05-04 Netapp, Inc. Sequential write based durable file system
CN105912696A (zh) * 2016-04-25 2016-08-31 中国互联网络信息中心 一种基于对数归并的dns索引创建方法及查询方法
CN106446099A (zh) * 2016-09-13 2017-02-22 国家超级计算深圳中心(深圳云计算中心) 一种分布式云存储方法、系统及其上传下载方法
JP2018007278A (ja) * 2017-10-11 2018-01-11 株式会社東芝 復号方法及び復号装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825715A (zh) * 2019-11-08 2020-02-21 上海德拓信息技术股份有限公司 基于Ceph对象存储的多对象数据秒合的实现方法
CN110825715B (zh) * 2019-11-08 2020-11-03 上海德拓信息技术股份有限公司 基于Ceph对象存储的多对象数据秒合的实现方法

Also Published As

Publication number Publication date
CN108776578B (zh) 2021-10-26

Similar Documents

Publication Publication Date Title
CN106570018B (zh) 序列化与反序列化的方法、装置、系统以及电子设备
CN104731921B (zh) Hadoop分布式文件系统针对日志型小文件的存储和处理方法
CN104866497B (zh) 分布式文件系统列式存储的元数据更新方法、装置、主机
CN103488709B (zh) 一种索引建立方法及系统、检索方法及系统
US20140359233A1 (en) Read-write control method for memory, and corresponding memory and server
CN108388569B (zh) 一种快速的键值数据库的系统及建立方法
CN107958079A (zh) 聚合文件删除方法、系统、装置及可读存储介质
CN109471851B (zh) 数据处理方法、装置、服务器和存储介质
CN107045531A (zh) 一种优化hdfs小文件存取的系统及方法
CN108984686B (zh) 一种基于日志合并的分布式文件系统索引方法和装置
CN103150395B (zh) 基于ssd的文件系统目录路径解析方法
CN111061434B (zh) 基因压缩多流数据并行写入及读取方法、系统及介质
US11250888B1 (en) Flash memory and method for storing and retrieving embedded audio video data
CN104238962A (zh) 向缓存中写入数据的方法及装置
CN102567427A (zh) 一种对象数据处理方法及装置
CN107967360A (zh) 一种实时数据库文件存储方法
CN104750744A (zh) 一种基于Oracle数据库的压缩数据同步方法及装置
TWI397060B (zh) 物件導向儲存裝置之磁碟配置方法
CN111625531B (zh) 基于可编程装置的合并装置、数据合并方法及数据库系统
CN104951482B (zh) 一种操作Sparse格式的镜像文件的方法及装置
CN107368545A (zh) 一种基于MerkleTree变形算法的去重方法及装置
CN108776578A (zh) 一种快速合并对象的方法和系统
CN108446076A (zh) 基于网络摘要数据的索引创建方法和系统
CN107169057B (zh) 一种重复图片的检测方法和装置
CN106909623B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 210000 Building 7, Building A, Cloud Computing Innovation Base, Baixia High-tech Park, No. 6 Yongzhi Road, Qinhuai District, Nanjing City, Jiangsu Province

Applicant after: UNIS WDC (NANJING) Co.,Ltd.

Address before: 210000 Building 7, Building A, Cloud Computing Innovation Base, Baixia High-tech Park, No. 6 Yongzhi Road, Qinhuai District, Nanjing City, Jiangsu Province

Applicant before: NANJING UNIS INFORMATION TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220818

Address after: 210000 No. 6, Yong Zhi Road, Qinhuai District, Nanjing, Jiangsu.

Patentee after: Unisplendour Western Digital Co., Ltd.

Address before: 7 / F, building a, cloud computing innovation base, Baixia Gaoxin Park, 6 Yongzhi Road, Qinhuai District, Nanjing City, Jiangsu Province, 210000

Patentee before: UNIS WDC (NANJING) Co.,Ltd.