数据处理方法及服务器技术

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

Data processing method and server

The invention provides a data processing method and a server. The method is: the server determines whether there is a target object in the storage system based on the append write request; if not, stores the object to be appended to the storage system; if there is, updates the partition number of the target object; creates a Rados object based on the current partition number of the target object, and writes the data of the object to be appended to the Rados Object; store the Rados object to the storage system, update the current manifest structure of the target object, and upload the metadata and xattr attributes in the target object to the header object of the target object. In this scheme, when uploading the object to be added to the target object, the object to be added is written after the target object in the form of fragment. It does not need to upload the original content of the target object repeatedly, saving network resources, reducing upload time and reducing server load.

【技术实现步骤摘要】
数据处理方法及服务器
本专利技术涉及数据存储
,具体涉及一种数据处理方法及服务器。
技术介绍
随着科学技术的发展,分布式对象存储系统逐渐应用于不同领域,例如视频监控领域和视频直播领域。目前向分布式对象存储系统上传数据对象的方式为:在上传数据对象后,数据对象对应的内容是固定的,即只能读取数据对象中的内容,但是不能修改数据对象中的内容。若数据对象新增内容,则需要上传同名的数据对象覆盖原先上传的数据对象。但是一方面,每次上传同名的数据对象覆盖原先上传的数据对象时,都会重复上传原先已有的内容,浪费网络资源和上传时间。另一方面,客户端每次需要读取数据对象的内容时,先从服务器读取数据对象的元数据信息,并判断数据对象中的内容是否发生变化,若发生变化再读取数据对象中的内容,会过多占用服务器的资源,加大服务器的负载。因此,目前向分布式对象存储系统上传数据对象的方式存在浪费网络资源、上传时间长和服务器负荷大等问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种数据处理方法及服务器,以解决目前向分布式对象存储系统上传数据对象的方式存在浪费网络资源、上传时间长和服务器负荷大等问题。为实现上述目的,本专利技术实施例提供如下技术方案:本专利技术实施例第一方面公开一种数据处理方法,应用于服务器,所述方法包括:服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;若不存在,将所述待追加对象存储至所述存储系统;若存在,更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;基于所述目标对象的当前分片号,创建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为本专利技术实施例提供的一种服务器的结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,应用于服务器,所述方法包括:/n服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;/n若不存在,将所述待追加对象存储至所述存储系统;/n若存在,更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;/n基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;/n将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;/n将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于服务器,所述方法包括:
服务器基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,所述追加写请求至少包括:目标桶、待追加对象和所述目标对象的对象名;
若不存在,将所述待追加对象存储至所述存储系统;
若存在,更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数;
基于所述目标对象的当前分片号,创建rados对象,将所述待追加对象对应的数据写入所述rados对象;
将所述rados对象存储至所述存储系统,并更新所述目标对象当前的manifest结构体,所述manifest结构体至少包括当前分片号;
将所述目标对象中的元数据和xattr属性上传至所述目标对象的头对象中。


2.根据权利要求1所述的方法,其特征在于,所述基于客户端发送的追加写请求,确定存储系统中是否存在目标对象,包括:
利用所述目标桶和目标对象的对象名,获取所述目标对象的头对象的状态信息;
基于所述目标对象的头对象的状态信息,确定存储系统中是否存在所述目标对象。


3.根据权利要求1所述的方法,其特征在于,所述更新所述目标对象的分片号,使所述分片号的取值等于当前分片个数,包括:
获取所述目标对象的头对象中的分片号;
将所述分片号加1,使所述分片号的取值等于当前分片个数,得到所述目标对象的当前分片号。


4.根据权利要求1所述的方法,其特征在于,确定存储系统中存在目标对象之后,还包括:
判断所述待追加对象的追加位置数据大小是否与所述目标对象的大小相同;
若相同,判断所述目标对象的类型是否为可追加类型;
若所述目标对象的类型为可追加类型,执行更新所述目标对象的分片号这一步骤。


5.根据权利要求1所述的方法,其特征在于,确定存储系统中不存在目标对象之后,还包括:
确定所述待追加对象的追加位置数据大小是否等于0;
若是,执行将所述待追加对象存储至所述存储系统这...

【专利技术属性】
技术研发人员:李欢欢
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1