一种对象存储系统实现稀疏写的方法、装置及电子设备与流程

文档序号:26139641发布日期:2021-08-03 14:23阅读:99来源:国知局
一种对象存储系统实现稀疏写的方法、装置及电子设备与流程

本发明涉及计算机技术领域,尤其涉及一种对象存储系统实现稀疏写的方法、装置及电子设备。



背景技术:

随着互联网应用的迅猛发展,pb级甚至eb级的海量数据存储变得尤为重要。对象存储系统作为一种新型的分布式存储系统,对象是对象存储系统中的基本实体,通过提供基于对象的访问接口,可存储任意类型的数据,比如:图片、视频、音频、文本等。对象存储系统有效解决了传统存储共享能力有限、扩展性差等问题。

但是,目前现有的对象存储系统只支持同步数据的顺序写入,其并不支持数据的稀疏写入,从而造成数据传输速度较慢,分布式对象存储系统对接nfs的存储性能较差的问题。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明目的就是为了弥补已有技术的缺陷,提供一种对象存储系统实现稀疏写的方法、装置及电子设备,以解决现有技术中对象存储系统不支持数据的稀疏写入的问题。

第一方面,为解决上述技术问题,本发明提供一种对象存储系统实现稀疏写的方法,包括:

s1,接收客户端发送的数据存储请求,其中,所述数据存储请求中包括目标用户输入的待存储的数据片段;

s2,计算所述待存储的数据片段对应的对象分片和内部偏移,并将数据片段写入对应的对象分片,同时记录数据片段的偏移和长度;

s3,当接收完所述客户端发送的所有数据存储请求后,根据已记录的数据片段对应的偏移和数据长度,确定出多个所述待存储数据片段之间的空白数据片段,并根据所述空白数据片段的偏移和数据长度,为其设置对象分片,以使所述空白数据片段对应的对象分片与所述待存储的数据片段对应的对象分片组成所述目标对象。

可选的,所述步骤s1中的所述数据存储请求还包括:用于标识数据片段的存储位置的偏移和数据长度。

可选的,所述步骤s2中的所述对象分片设置在所述对象存储系统中,以用于存储数据;所述数据片段的偏移是数据片段在目标对象中的地址与目标对象的起始地址之间的位置偏移;所述内部偏移为所述数据片段在所述对象分片中的地址与所述对象分片的起始地址之间的位置偏移。

可选的,在所述步骤s3之后所述方法还包括:

s4:更新所述目标对象的元数据,以将所述目标对象包含的元数据存储在所述对象存储系统中。

可选的,在所述步骤s4之后,所述方法还包括:

s5:接收客户端发送的数据读取请求,所述数据读取请求中包括待读取数据片段的偏移和数据长度;

s6:根据所述待读取数据片段的偏移和数据长度,确定所述待读取数据片段所在的对象分片和内部偏移,并根据确定出的对象分片中存储的数据,向所述客户端发送相应的响应信息。

可选的,所述响应信息包括第一响应信息和第二响应信息;

所述步骤s6,包括:

s6.1:判断所述对象分片中存储的数据是否为空白数据片段;

s6.2:若判断结果为是,则所述对象存储系统向所述客户端发送第一响应信息;其中,所述第一响应信息包括数据零;

s6.3:若判断结果为否,则所述对象存储系统向所述客户端发送第二响应信息;其中,所述第二响应信息包括所述对象分片中存储的数据片段。

可选的,在所述步骤s213之后,以及在所述步骤3之前,所述方法还包括:

s214:判断所述客户端发送的数据存储请求是否接受完毕。

第二方面,基于如上所述的对象存储系统实现稀疏写的方法,本发明还提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权如上所述的对象存储系统实现稀疏写的方法。

第三方面,为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述对象存储系统实现稀疏写的方法的步骤。

与现有技术相比,本发明的技术方案至少具有以下有益效果之一:

在本发明提供的对象存储系统实现稀疏写的方法中,可以在对象任意位置写入任意长度的数据,写入的数据不要求具有连续性,支持随机写,稀疏写,支持数据修改。并且,本发明提供的方法中对象存储系统,其通过记录已写的数据及定位信息,且在目标对象写完成时,计算出空白数据段及其空白对象分片,并创建空白对象分片,在读的时候会用数据零补齐返回,最终实现对象存储系统的数据稀疏写入,进而避免了数据读/写放大问题,也无需对待存储的数据进行迁移或转移,从而能有效的提高对象存储系统的性能。

附图说明

图1是本发明提供的一种对象存储系统实现稀疏写的方法的流程示意图。

图2是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。

首先,对本申请中的术语进行解释:

nfs(networkfilesystem):网络文件系统;

io(input/output):输入输出;

对象是数据和数据属性的综合体(类似文件),是对象存储系统的基本存储单元;

对象存储的文件网关是基于对象存储系统为用户提供nfs、cifs等标准存储协议的文件存储服务。

承如背景技术所述,目前现有的对象存储系统只支持同步数据的顺序写入,其并不支持数据的稀疏写入,从而造成数据传输速度较慢,分布式对象存储系统对接nfs的存储性能较差的问题。

为此,本发明提供了一种对象存储系统实现稀疏写的方法及电子设备,以解决现有技术中对象存储系统不支持数据的稀疏写入的问题。

下面通过具体实施例,对本发明进行详细说明。

如图1所示,本发明提供的对象存储系统实现稀疏写的方法可以包括如下步骤:

s1,接收客户端发送的数据存储请求,其中,所述数据存储请求中包括目标用户输入的待存储的数据片段。

其中,所述数据存储请求还可以包括:用于标识数据片段的存储位置的偏移和数据长度。

在本实施例中,目标用户可以通过客户端中安装的对象存储系统挂载点,访问对象存储系统。而目标用户通过对象存储系统挂载点对对象存储系统的访问可以是数据上传操作(写操作),也可以是数据读取操作,因此,针对目标用户的不同操作方式,客户端向对象存储系统发送的数据请求可以分为数据存储请求和数据读取请求。

示例性的,在本发明实施例中,先是对对象存储系统进行稀疏写操作,之后,再对其进行对象读取操作。具体的,在所述对象存储系统接收到所述客户端发送的所述数据存储请求之后,其可以对该请求进行解析,并根据解析得到数据执行相应的步骤。

s2,计算出所述待存储的数据片段对应的对象分片和内部偏移,并将数据片段写入对应的对象分片,同时记录数据片段的偏移和长度。

其中,所述对象分片设置在所述对象存储系统中,以用于存储数据;所述内部偏移为所述数据片段在所述对象分片中的地址与所述对象分片的起始地址之间的位置偏移。

在本实施例中,所述对象存储系统的后端可以将所述目标用户写入的所述待存储的数据片段,根据该数据片段的偏移和数据长度计算出该待存储的数据在对象存储系统中的对象中的内部偏移地址,以及其需要多大的对象分片方可将其存储在内,并直接将该待存储的数据片段写入到对象分片内。之后,记录所述待存储的数据片段的偏移和数据长度。

可选的,所述步骤s2中的所述对象分片设置在所述对象存储系统中,以用于存储数据;所述内部偏移为所述数据片段在所述对象分片中的地址与所述对象分片的起始地址之间的位置偏移。

可选的,在所述步骤3之前,所述方法还包括:

s214,判断所述客户端发送的数据存储请求是否接受完毕。

s3,当接收完所述客户端发送的所有数据存储请求后,根据已记录的数据片段对应的偏移和数据长度,确定出多个所述待存储数据片段之间的空白数据片段,并根据所述空白数据片段的偏移和数据长度,为其设置对象分片,以使所述空白数据片段对应的对象分片与所述待存储的数据片段对应的对象分片组成所述目标对象。

在本实施例中,当所述客户端在写数据完成(同步/提交数据)的时候,其也可以进行同步数据操作。之后,所述对象存储系统的后端可以根据已记录的所述待存储的数据片段的偏移和数据长度,得到哪些已记录的数据片段之间需要插入空白数据片段,并计算出哪些对象分片之间需要插入空白对象分片,即,根据所述得到的空白对象分片信息(包括偏移和长度)创建空白对象分片。由此可知,整个对象由对象分片和空白对象分片组成,而空白对象分片在被读取的时候会自动返回数据零。

进一步的,在所述步骤s3之后,本发明提供的对象存储系统实现稀疏写方法还可以包括:

s4:更新所述目标对象的元数据,以将所述目标对象包含的元数据存储在所述对象存储系统中。

在本实施例中,对象存储系统可以实现数据的稀疏写是通过记录已写入存储的数据片段的信息(包括偏移和长度),且在目标对象写完成时,计算出空白数据段及其空白对象分片,并创建空白对象分片,在读的时候会用数据零补齐返回。

进一步的,当所述对象存储系统接收到所述客户端发送的请求为数据读取请求时,则表明其要对所述对象存储系统进行数据读取操作,为此,本发明的一具体实施方式中具体描述了如何对所述对象存储系统进行对象读取的实现方式,具体包括如下步骤:

s5,接收客户端发送的数据读取请求,所述数据读取请求中包括待读取数据片段的偏移和数据长度。

s6,根据所述待读取数据片段的偏移和数据长度,确定所述待读取数据片段所在的对象分片和内部偏移,并根据确定出的对象分片中存储的数据,向所述客户端发送相应的响应信息。

其中,所述响应信息可以包括第一响应信息和第二响应信息;

在本实施例中,所述步骤s6具体包括:s6.1,判断所述对象分片中存储的数据是否为空白数据片段;s6.2,若判断结果为是,则所述对象存储系统向所述客户端发送第一响应信息;其中,所述第一响应信息包括数据零;s6.3,若判断结果为否,则所述对象存储系统向所述客户端发送第二响应信息;其中,所述第二响应信息包括所述对象分片中存储的数据片段。

由于在本发明提供的对象存储系统实现稀疏写的方法中,可以在对象任意位置写入任意长度的数据,写入的数据不要求具有连续性,支持随机写,稀疏写,支持数据修改。并且,本发明提供的方法中对象存储系统,其实通过记录已写的数据及定位信息,且在目标对象写完成时,计算出空白数据段及其空白对象分片,并创建空白对象分片,在读的时候会用数据零补齐返回,最终实现对象存储系统的数据稀疏写入,进而避免了数据读/写放大问题,也无需对待存储的数据进行迁移或转移,从而能有效的提高对象存储系统的性能。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且方法或用途相同,都应当视为属于本发明的保护范围。

综上,在本发明提供的对象存储系统实现稀疏写的方法中,可以在对象任意位置写入任意长度的数据,写入的数据不要求具有连续性,支持随机写,稀疏写,支持数据修改。并且,本发明提供的方法中对象存储系统,其通过记录已写的数据及定位信息,且在目标对象写完成时,计算出空白数据段及其空白对象分片,并创建空白对象分片,在读的时候会用数据零补齐返回,最终实现对象存储系统的数据稀疏写入,进而避免了数据读/写放大问题,也无需对待存储的数据进行迁移或转移,从而能有效的提高对象存储系统的性能。

并且,本发明实施例还提供了一种电子设备,如图2所示,包括处理器201、通信接口202、存储器203和通信总线204,其中,处理器201,通信接口202,存储器203通过通信总线204完成相互间的通信,

存储器201,用于存放计算机程序;

处理器202,用于执行存储器202上所存放的程序时,实现如上介绍的对象存储系统实现稀疏写的方法。

另外,处理器201执行存储器203上所存放的程序而实现的应用设置方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。

上述终端的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的对象存储系统实现稀疏写的方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一对象存储系统实现稀疏写的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1