CN110531933B - 数据处理方法及服务器 - Google Patents

数据处理方法及服务器 Download PDF

Info

Publication number
CN110531933B
CN110531933B CN201910783316.5A CN201910783316A CN110531933B CN 110531933 B CN110531933 B CN 110531933B CN 201910783316 A CN201910783316 A CN 201910783316A CN 110531933 B CN110531933 B CN 110531933B
Authority
CN
China
Prior art keywords
target object
storage system
target
server
fragment number
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
CN201910783316.5A
Other languages
English (en)
Other versions
CN110531933A (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.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data 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 Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN201910783316.5A priority Critical patent/CN110531933B/zh
Publication of CN110531933A publication Critical patent/CN110531933A/zh
Application granted granted Critical
Publication of CN110531933B publication Critical patent/CN110531933B/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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种数据处理方法及服务器,该方法为:服务器基于追加写请求,确定存储系统中是否存在目标对象;若不存在,将待追加对象存储至存储系统;若存在,更新目标对象的分片号;基于目标对象的当前分片号,创建rados对象,将待追加对象的数据写入rados对象;将rados对象存储至存储系统,并更新目标对象当前的manifest结构体,将目标对象中的元数据和xattr属性上传至目标对象的头对象中。本方案中,向目标对象上传待追加对象时,以分片的形式将待追加对象追加写在目标对象后。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负荷。

Description

数据处理方法及服务器
技术领域
本发明涉及数据存储技术领域,具体涉及一种数据处理方法及服务器。
背景技术
随着科学技术的发展,分布式对象存储系统逐渐应用于不同领域,例如视频监控领域和视频直播领域。
目前向分布式对象存储系统上传数据对象的方式为:在上传数据对象后,数据对象对应的内容是固定的,即只能读取数据对象中的内容,但是不能修改数据对象中的内容。若数据对象新增内容,则需要上传同名的数据对象覆盖原先上传的数据对象。但是一方面,每次上传同名的数据对象覆盖原先上传的数据对象时,都会重复上传原先已有的内容,浪费网络资源和上传时间。另一方面,客户端每次需要读取数据对象的内容时,先从服务器读取数据对象的元数据信息,并判断数据对象中的内容是否发生变化,若发生变化再读取数据对象中的内容,会过多占用服务器的资源,加大服务器的负载。
因此,目前向分布式对象存储系统上传数据对象的方式存在浪费网络资源、上传时间长和服务器负荷大等问题。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法及服务器,以解决目前向分布式对象存储系统上传数据对象的方式存在浪费网络资源、上传时间长和服务器负荷大等问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种数据处理方法,应用于服务器,所述方法包括:
服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;
若不存在,将所述待追加对象存储至所述存储系统;
若存在,更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;
基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;
将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;
将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
优选的,所述基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,包括:
利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息;
基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。
优选的,所述更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数,包括:
获取所述目标对象的头对象中的分片号;
将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。
优选的,确定存储系统中存在目标对象之后,还包括:
判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同;
若相同,判断所述目标对象的类型是否为可追加类型;
若所述目标对象的类型为可追加类型,执行更新所述目标对象的分片号这一步骤。
优选的,确定存储系统中不存在目标对象之后,还包括:
确定所述待追加对象的追加位置数据大小是否等于0;
若是,执行将所述待追加对象存储至所述存储系统这一步骤。
本发明实施例第二方面公开一种服务器,所述服务器包括:
确定单元,用于基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,若不存在,执行第一存储单元,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;
所述第一存储单元,用于将所述待追加对象存储至所述存储系统;
所述更新单元,用于更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;
创建单元,用于基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;
第二存储单元,用于将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;
上传单元,用于将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
优选的,所述确定单元具体用于:利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息,并基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。
优选的,所述更新单元具体用于:获取所述目标对象的头对象中的分片号,将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。
优选的,若存储系统中存在目标对象,所述服务器还包括:
第一判断单元,用于判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同,若相同,执行第二判断单元;
所述第二判断单元,用于判断所述目标对象的类型是否为可追加类型,若是,执行所述更新单元。
优选的,若存储系统中不存在目标对象,所述服务器还包括:
第三判断单元,用于确定所述待追加对象的追加位置数据大小是否等于0,若是,执行所述第一存储单元。
基于上述本发明实施例提供的一种数据处理方法及服务器,该方法为:服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象;若不存在,将待追加对象存储至存储系统中;若存在,更新目标对象的分片号;基于目标对象的当前分片号,创建rados对象,将待追加对象的数据写入rados对象;将rados对象存储至存储系统,并更新目标对象当前的manifest结构体,将目标对象中的元数据和xattr属性上传至目标对象的头对象中。本方案中,向可追加类型的目标对象上传待追加对象时,以分片的形式将待追加对象追加写在目标对象后面,并更新目标对象的manifest结构体。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负载。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据处理方法的流程图;
图2为本发明实施例提供的目标对象的结构示意图;
图3为本发明实施例提供的客户端、服务器和存储系统的交互逻辑图;
图4为本发明实施例提供的一种服务器的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前向分布式对象存储系统上传数据对象的方式为:在上传数据对象后,数据对象对应的内容是固定的,即只能读取数据对象中的内容,但是不能修改数据对象中的内容。若数据对象新增内容,则需要上传同名的数据对象覆盖原先上传的数据对象。这样会造成网络资源浪费、增加数据上传时间和增加服务器的负荷。
因此,本发明实施例提供一种数据处理方法及服务器,向目标对象上传待追加对象时,以分片的形式将待追加对象追加写在目标对象后面。不需要重复上传目标对象原有的内容,以节省网络资源、降低上传时间和服务器负荷。
需要说明的是,本发明实施例中涉及的目标对象和待追加对象各自对应的manifest结构体,manifest结构体记录每个分片对应的属性信息,所述manifest结构体包括但不仅限于以下属性:
start_part_num:用于表示当前分片在所有分片中的位置。
start_ofs:表示当前分片在整个rgw对象中的起始偏移位置。
part_size:表示当前分片的尺寸。
stripe_max_size:表示分片中每个条带对象的最大尺寸,例如:最大尺寸为4M。
需要说明的是,服务器向存储系统中存储分片时,所述服务器根据stripe_max_size将该分片均匀的分为多个条带对象,并将多个条带对象存储至所述存储系统中。
参见图1,示出了本发明实施例提供的一种数据处理方法的流程图,所述数据处理方法应用于服务器,所述数据处理方法包括以下步骤:
步骤S101:服务器接收客户端发送的追加写请求。
在具体实现步骤S101的过程中,当客户端需向目标对象中追加写待追加对象时,所述客户端向所述服务器发送追加写请求,所述追加写请求中至少携带:目标桶、待追加对象和所述目标对象的对象名。
需要说明的是,所述客户端发送的追加写请求分为请求头、请求方法和请求体,所述请求体中携带所述待追加对象对应的数据。
步骤S102:所述服务器基于所述追加写请求,确定存储系统中是否存在所述目标对象。若不存在,执行步骤S103,若存在,执行步骤S104。
在具体实现步骤S102的过程中,所述服务器利用所述目标桶和所述目标对象的对象名,获取所述目标对象的头对象的状态信息。基于所述目标对象的头对象的状态信息中的标志,确定存储系统中是否存在所述目标对象。
需要说明的是,所述客户端将对象上传至存储系统后,该对象会被划分为一个头对象和多个尾对象的形式存储,前述的头对象和尾对象统称为rados对象。
步骤S103:所述服务器将所述待追加对象存储至所述存储系统中。
需要说明的是,若所述存储系统中不存在所述目标对象,说明所述待追加对象是首次向所述存储系统中追加写数据,则所述待追加对象的追加位置数据的大小为0。
优选的,所述服务器确定存储系统中不存在所述目标对象之后,确定所述待追加对象的追加位置数据大小是否等于0,若不等于0,所述服务器向所述客户端反馈用于指示追加写错误的信息,若等于0,执行所述步骤S103。
在具体实现步骤S103的过程中,所述服务器将所述待追加对象的start_part_num设置为1,并生成所述待追加对象的前缀信息(prefix),并初始化所述待追加对象的manifest结构体的各个属性信息。
进一步需要说明的是,将所述待追加对象存储至所述存储系统之后,在下一次向所述存储系统中的所述待追加对象追加写数据时,所述待追加对象相当于目标对象。
步骤S104:所述服务器更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数。
需要说明的是,向所述目标对象中追加写所述待追加对象时,需确定追加位置,通常为向所述目标对象的尾部添加所述待追加对象。而所述待追加对象的追加位置数据的大小与所述目标对象的大小相等。
因此,优选的,确定存储系统中存在所述目标对象之后,判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同,若不同,所述服务器向所述客户端反馈用于指示追加写错误的信息,若相同,判断所述目标对象的类型是否为可追加类型。若所述目标对象为可追加类型,执行所述步骤S104,若所述目标对象的类型不是可追加类型,所述服务器向所述客户端反馈用于指示追加写错误的信息。
在具体实现步骤S104的过程中,所述服务器从所述目标对象的头对象中获取分片号和manifest结构体中的信息,例如获取所述目标对象的prefix。将所述分片号加1后赋值给start_part_num,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号,初始化所述目标对象的manifest结构体的各个属性信息。
需要说明的是,所述前缀信息用于给rados对象命名。
步骤S105:所述服务器基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象。
在具体实现步骤S105的过程中,所述服务器基于所述目标对象的当前分片号,结合manifest结构体中的stripe_max_size和part_size的取值,创建rados对象。所述服务器从所述请求体中读取所述待追加对象对应的数据,将所述待追加对象对应的数据写入所述rados对象中。
步骤S106:所述服务器将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体。
在具体实现步骤S106的过程中,所述服务器将所述待追加对象对应的数据写入所述rados对象中后,所述服务器将所述rados对象存储至所述存储系统中。优选的,所述存储系统可为分布式对象存储系统。
在进一步实现的过程中,由前述内容可知,所述manifest结构体记录每个分片对应的属性信息。当在步骤S102中确定存储系统中存在所述目标对象时,即在执行步骤S104后,所述目标对象的manifest结构体中相应的属性信息会发生变化,所述服务器更新所述目标对象的manifest结构体中相应的属性信息,例如:所述服务器将所述分片号加1后赋值给start_part_num后,将start_part_num写入所述目标对象的头对象中。
步骤S107:所述服务器将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
在具体实现步骤S107的过程中,所述服务器将所述目标对象更新后的元数据和xattr属性上传至所述目标对象的头对象中。
优选的,采用上述步骤S101至步骤S107中涉及的方式向目标对象中追加写待追加对象后,所述客户端周期性获取所述目标对象的第一长度,并比较所述第一长度与前一次获取的所述目标对象的第二长度,若所述第一长度比第二长度大,说明有新数据写入所述目标对象,所述客户端利用读操作获取该新数据。
在本发明实施例中,向可追加类型的目标对象上传待追加对象时,确定存储系统中是否存在目标对象,若不存在,将待追加对象存储至存储系统中;若存在,以分片的形式将待追加对象追加写在目标对象后面,并更新目标对象的manifest结构体。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负载。
为更好解释说明上述图1涉及的目标对象,以及上述图1涉及的客户端、服务器和存储系统的交互,通过图2和图3进行举例说明。
参见图2,示出了本发明实施例提供的目标对象的结构示意图,在所述图2中,所述目标对象的分片号为3,即所述目标对象包括3个分片,分别为:part1、part2和part3。
参见图3,示出了本发明实施例提供的客户端、服务器和存储系统的交互逻辑图,在所述图3中,所述客户端301向所述服务器302发送追加写请求。所述服务器302根据所述追加写请求,创建rados对象。所述服务器302将待追加对象对应的数据写入所述rados对象中,并将所述rados对象存储至存储系统303。
需要说明的是,所述图3中的具体执行原理,请参见上述图1中各个步骤的内容,在此不再赘述。
在本发明实施例中,向可追加类型的目标对象上传待追加对象时,以分片的形式将待追加对象追加写在目标对象后面,并更新目标对象的manifest结构体。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负载。
与上述本发明实施例提供的一种数据处理方法相对应,参见图4,本发明实施例还提供一种服务器的结构框图,所述服务器包括:确定单元401、第一存储单元402、更新单元403、创建单元404、第二存储单元405和上传单元406。
确定单元401,用于基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,若不存在,执行第一存储单元402,若存在,执行更新单元403,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名。
在具体实现中,所述确定单元401具体用于:利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息,并基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。
第一存储单元402,用于将所述待追加对象存储至所述存储系统。
更新单元403,用于更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数。
在具体实现中,所述更新单元403具体用于:获取所述目标对象的头对象中的分片号,将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。
创建单元404,用于基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象。
第二存储单元405,用于将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号。
上传单元406,用于将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
在本发明实施例中,向可追加类型的目标对象上传待追加对象时,确定存储系统中是否存在目标对象,若不存在,将待追加对象存储至存储系统中,若存在,以分片的形式将待追加对象追加写在目标对象后面,并更新目标对象的manifest结构体。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负载。
优选的,结合图4,若存储系统中存在目标对象,所述服务器还包括:第一判断单元和第二判断单元,具体执行过程为:
第一判断单元,用于判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同,若相同,执行第二判断单元。
第二判断单元,用于判断所述目标对象的类型是否为可追加类型,若是,执行所述更新单元403。
优选的,结合图4,若存储系统中不存在目标对象,所述服务器还包括:第三判断单元,具体执行过程为:
第三判断单元,用于确定所述待追加对象的追加位置数据大小是否等于0,若是,执行所述第一存储单元402。
综上所述,本发明实施例提供一种数据处理方法及服务器,该方法为:服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象;若不存在,将待追加对象存储至存储系统中;若存在,更新目标对象的分片号;基于目标对象的当前分片号,创建rados对象,将待追加对象的数据写入rados对象;将rados对象存储至存储系统,并更新目标对象当前的manifest结构体,将目标对象中的元数据和xattr属性上传至目标对象的头对象中。本方案中,向可追加类型的目标对象上传待追加对象时,以分片的形式将待追加对象追加写在目标对象后面,并更新目标对象的manifest结构体。不需要重复上传目标对象原有的内容,节省网络资源、减少上传时间和降低服务器负载。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据处理方法,其特征在于,应用于服务器,所述方法包括:
服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;
若不存在,将所述待追加对象存储至所述存储系统;
若存在,更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;
基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;
将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;
将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
2.根据权利要求1所述的方法,其特征在于,所述基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,包括:
利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息;
基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。
3.根据权利要求1所述的方法,其特征在于,所述更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数,包括:
获取所述目标对象的头对象中的分片号;
将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。
4.根据权利要求1所述的方法,其特征在于,确定存储系统中存在目标对象之后,还包括:
判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同;
若相同,判断所述目标对象的类型是否为可追加类型;
若所述目标对象的类型为可追加类型,执行更新所述目标对象的分片号这一步骤。
5.根据权利要求1所述的方法,其特征在于,确定存储系统中不存在目标对象之后,还包括:
确定所述待追加对象的追加位置数据大小是否等于0;
若是,执行将所述待追加对象存储至所述存储系统这一步骤。
6.一种服务器,其特征在于,所述服务器包括:
确定单元,用于基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,若不存在,执行第一存储单元,若存在,执行更新单元,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;
所述第一存储单元,用于将所述待追加对象存储至所述存储系统;
所述更新单元,用于更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;
创建单元,用于基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;
第二存储单元,用于将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;
上传单元,用于将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。
7.根据权利要求6所述的服务器,其特征在于,所述确定单元具体用于:利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息,并基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。
8.根据权利要求6所述的服务器,其特征在于,所述更新单元具体用于:获取所述目标对象的头对象中的分片号,将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。
9.根据权利要求6所述的服务器,其特征在于,若存储系统中存在目标对象,所述服务器还包括:
第一判断单元,用于判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同,若相同,执行第二判断单元;
所述第二判断单元,用于判断所述目标对象的类型是否为可追加类型,若是,执行所述更新单元。
10.根据权利要求6所述的服务器,其特征在于,若存储系统中不存在目标对象,所述服务器还包括:
第三判断单元,用于确定所述待追加对象的追加位置数据大小是否等于0,若是,执行所述第一存储单元。
CN201910783316.5A 2019-08-23 2019-08-23 数据处理方法及服务器 Active CN110531933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910783316.5A CN110531933B (zh) 2019-08-23 2019-08-23 数据处理方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910783316.5A CN110531933B (zh) 2019-08-23 2019-08-23 数据处理方法及服务器

Publications (2)

Publication Number Publication Date
CN110531933A CN110531933A (zh) 2019-12-03
CN110531933B true CN110531933B (zh) 2022-06-17

Family

ID=68662670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910783316.5A Active CN110531933B (zh) 2019-08-23 2019-08-23 数据处理方法及服务器

Country Status (1)

Country Link
CN (1) CN110531933B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111245933A (zh) * 2020-01-10 2020-06-05 上海德拓信息技术股份有限公司 一种基于日志的对象存储追加写实现方法
CN111641700B (zh) * 2020-05-25 2023-04-28 上海德拓信息技术股份有限公司 基于Ceph对象存储元数据的管理及检索的实现方法
CN114327249A (zh) * 2020-10-10 2022-04-12 华为云计算技术有限公司 对象存储服务的数据修改方法、服务节点、客户端及设备
CN113126923B (zh) * 2021-04-21 2022-05-27 山东英信计算机技术有限公司 分布式对象存储的追加上传方法、系统、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567443A (zh) * 2011-10-25 2012-07-11 无锡城市云计算中心有限公司 一种分布式文件系统数据分片换段的方法
CN105302488A (zh) * 2015-10-27 2016-02-03 浪潮(北京)电子信息产业有限公司 一种存储系统的数据写入方法及系统
WO2018019255A1 (zh) * 2016-07-26 2018-02-01 中兴通讯股份有限公司 文件写入方法及装置
CN109511008A (zh) * 2018-11-27 2019-03-22 成都索贝数码科技股份有限公司 一种基于对象存储支持视音频文件内容追加的方法
CN109669632A (zh) * 2018-12-10 2019-04-23 浪潮电子信息产业股份有限公司 基于分布式对象存储系统的元数据写入方法、装置及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209363B2 (en) * 2007-10-09 2012-06-26 Cleversafe, Inc. File system adapted for use with a dispersed data storage network
US8244938B2 (en) * 2010-11-23 2012-08-14 International Business Machines Corporation Sliding write window mechanism for writing data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567443A (zh) * 2011-10-25 2012-07-11 无锡城市云计算中心有限公司 一种分布式文件系统数据分片换段的方法
CN105302488A (zh) * 2015-10-27 2016-02-03 浪潮(北京)电子信息产业有限公司 一种存储系统的数据写入方法及系统
WO2018019255A1 (zh) * 2016-07-26 2018-02-01 中兴通讯股份有限公司 文件写入方法及装置
CN109511008A (zh) * 2018-11-27 2019-03-22 成都索贝数码科技股份有限公司 一种基于对象存储支持视音频文件内容追加的方法
CN109669632A (zh) * 2018-12-10 2019-04-23 浪潮电子信息产业股份有限公司 基于分布式对象存储系统的元数据写入方法、装置及介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
VAOFS: A Verifiable Append-Only File System for Regulatory Compliance;Da Xiao等;《2009 Eighth International Conference on Grid and Cooperative Computing》;20091006;第325-330页 *
基于HTML5大文件断点续传的实现方案;王莉敏等;《计算机与现代化》;20160331(第03期);第91-95页 *

Also Published As

Publication number Publication date
CN110531933A (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
CN110531933B (zh) 数据处理方法及服务器
EP3021218B1 (en) Upgrade packet generation method, server, software upgrade method, and mobile terminal
CN110780897B (zh) 一种代码变更方法以及装置
CN110647514B (zh) 一种元数据更新方法、装置及元数据服务器
CN108810125B (zh) 物理节点的服务发现方法及系统
US10983718B2 (en) Method, device and computer program product for data backup
KR20070037542A (ko) 추가 속성을 가지는 노드를 이용하는 장치 관리 방법 및장치 관리 클라이언트
CN105653209A (zh) 一种对象存储数据传输方法及装置
CN108255989A (zh) 图片存储方法、装置、终端设备及计算机存储介质
CN112631953A (zh) 固态硬盘数据trim方法、装置、电子设备及存储介质
CN113467722B (zh) 一种分布式存储系统的数据迁移方法及装置
CN105988890B (zh) 信息的备份方法及装置
CN116893781A (zh) 一种数据存储方法、装置、设备及可读存储介质
US8793228B2 (en) File system including a file header area and a file data area
CN111356982A (zh) 程序处理方法、设备及存储介质
CN107368355B (zh) 虚拟机的动态调度方法和装置
CN110708355A (zh) 一种文件上传的方法、系统、设备及可读存储介质
CN106993026B (zh) 一种ftp服务器新增文件检测下载方法及装置
WO2018014801A1 (zh) 镜像文件的处理
CN109978678B (zh) 一种参数管理方法及相关设备
CN112463305A (zh) 一种云端虚拟化gpu的管理方法、系统及相关装置
CN112748868A (zh) 数据存储方法和装置
CN115878639B (zh) 二级缓存的一致性处理方法及分布式服务系统
CN111949617A (zh) 一种聚合文件对象头管理方法、系统、终端及存储介质
CN107168685B (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