一种对象存储方法、装置、设备及存储介质

文档序号:1815426 发布日期:2021-11-09 浏览:3次 >En<

阅读说明:本技术 一种对象存储方法、装置、设备及存储介质 (Object storage method, device, equipment and storage medium ) 是由 陶桐桐 武模仁 于 2021-06-30 设计创作,主要内容包括:本发明公开了一种对象存储方法、装置、设备及存储介质,该方法包括:确定对象存储服务中当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象;将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的元数据信息及操作日志信息实现当前对象的同步;桶索引分片与桶索引日志分片是一一对应的。可见,本申请不再将对象的操作日志信息写入到对象对应的桶索引分片中,而是单独桶索引日志分片中,从而通过这种方式使得桶索引分片变小,有效提高了数据同步的速度。(The invention discloses an object storage method, device, equipment and storage medium, wherein the method comprises the following steps: determining a storage bucket of a current object to be written in the object storage service as a current bucket, and determining an object to be written in the current bucket as a current object; writing a current object into a current bucket, writing metadata information of the current object into a bucket index fragment of the current bucket, and writing operation log information written into the current object into a bucket index log fragment corresponding to the bucket index fragment written with the metadata information of the current object, so as to realize synchronization of the current object based on the corresponding metadata information and the operation log information; the bucket index shards are in one-to-one correspondence with the bucket index log shards. Therefore, the method and the device have the advantages that operation log information of the object is not written into the bucket index fragment corresponding to the object any more, but is written into the bucket index log fragment alone, so that the bucket index fragment is reduced through the method, and the data synchronization speed is effectively improved.)

一种对象存储方法、装置、设备及存储介质

技术领域

本发明涉及对象存储技术领域,更具体地说,涉及一种对象存储方法、装置、设备及存储介质。

背景技术

在大数据时代,对象存储服务(Object Storage Service,OSS)是一种新兴的海量、安全、低成本、高可靠的云存储服务,适合存放非结构化的数据,例如:视频,图片,文档等。在异地容灾场景下,往往依赖于对象的操作日志信息,进行不同站点间的数据同步。所以针对对象存储服务中的存储桶实现对象的写操作时,不仅会在存储桶对应桶索引分片(bucket_index)上记录对象的元数据信息,同时需要在桶索引分片上记录对象的操作日志信息(bucket_index_log)信息,便于进行数据的同步。由于元数据信息及操作日志信息均需要存储至桶索引分片中,随着存储桶内对象越来越多,达到上亿级别,每个存储桶的桶索引分片上记录的元数据信息和操作日志信息就会越来越多,进而导致在实现同步时导致同步速度较慢。

发明内容

本发明的目的是提供一种对象存储方法、装置、设备及存储介质,能够有效提高数据同步的速度。

为了实现上述目的,本发明提供如下技术方案:

一种对象存储方法,包括:

如果需要向对象存储服务的任意存储桶中写入对象,则确定当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象;

将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的所述元数据信息及所述操作日志信息实现当前对象的同步;其中,所述桶索引分片与所述桶索引日志分片是一一对应的。

优选的,还包括:

如果需要对当前桶中的当前对象进行修改或者删除,则对相应桶索引分片中包含的当前对象的元数据信息进行对应的修改或者删除,并将对当前对象进行修改或者删除的操作日志信息写入至、包含有对当前对象进行写入的操作日志信息的桶索引日志分片中。

优选的,还包括:

判断所述对象存储服务是否为多站点场景,如果是,则执行将当前对象的操作日志信息写入至相应桶索引日志分片中的步骤,如果否,则确定无需将当前对象的操作日志信息写入至相应桶索引日志分片中。

优选的,基于相应的所述元数据信息及所述操作日志信息实现当前对象的同步之后,还包括:

将当前对象的操作日志信息从相应的桶索引日志分片中删除。

一种对象存储装置,包括:

确定模块,用于:如果需要向对象存储服务的任意存储桶中写入对象,则确定当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象;

写入模块,用于:将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的所述元数据信息及所述操作日志信息实现当前对象的同步;其中,所述桶索引分片与所述桶索引日志分片是一一对应的。

优选的,还包括:

更新模块,用于:如果需要对当前桶中的当前对象进行修改或者删除,则对相应桶索引分片中包含的当前对象的元数据信息进行对应的修改或者删除,并将对当前对象进行修改或者删除的操作日志信息写入至、包含有对当前对象进行写入的操作日志信息的桶索引日志分片中。

优选的,还包括:

判断模块,用于:判断所述对象存储服务是否为多站点场景,如果是,则指示所述写入模块或者所述更新模块执行将当前对象的操作日志信息写入至相应桶索引日志分片中的步骤,如果否,则确定无需将当前对象的操作日志信息写入至相应桶索引日志分片中。

优选的,还包括:

删除模块,用于:基于相应的所述元数据信息及所述操作日志信息实现当前对象的同步之后,将当前对象的操作日志信息从相应的桶索引日志分片中删除。

一种对象存储设备,包括:

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

处理器,用于执行所述计算机程序时实现如上任一项所述对象存储方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项对象存储方法的步骤。

本发明提供了一种对象存储方法、装置、设备及存储介质,该方法包括:如果需要向对象存储服务的任意存储桶中写入对象,则确定当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象;将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的所述元数据信息及所述操作日志信息实现当前对象的同步;所述桶索引分片与所述桶索引日志分片是一一对应的。本申请为对象存储服务的存储桶设置互相对应的桶索引分片及桶索引日志分片后,在向存储桶中写入对象时,会将对象的元数据信息及操作日志信息分别存储至存储桶互相对应的桶索引分片及桶索引日志分片中,以供需要时进行同步。可见,本申请不再将对象的操作日志信息写入到对象对应的桶索引分片中,而是单独写入一个新的对象,即桶索引日志分片中,从而通过这种方式使得桶索引分片变小,有效提高了数据同步的速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种对象存储方法的流程图;

图2为本发明实施例提供的一种对象存储方法中写对象的流程图;

图3为本发明实施例提供的一种对象存储装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,其示出了本发明实施例提供的一种对象存储方法的流程图,具体可以包括:

S11:如果需要向对象存储服务的任意存储桶中写入对象,则确定当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象。

其中,存储桶为对象存储服务中的存储单位,如果需要向任意存储桶中写入对象,则可以确定当前需要向存储桶中写入的对象及需要写入对象的存储桶分别为当前对象及当前桶,进而针对当前桶及当前对象实现相应的对象写操作。需要说明的是,对象存储服务中每个存储桶通常可以设置有多个桶索引分片,用于实现相应信息的存储,而本申请实施例中在创建存储桶时,需要创建存储桶对应桶索引分片,以及和桶索引分片(如可以将其分别表示为bucket_index.0,bucket_index.1…bucket_index.127)对应量的桶索引日志分片(如可以将其分别表示为bucket_index.log.0,bucket_index.log.1…bucket_index.log.127),也即桶索引日志分片与桶索引分片是一一对应的,且桶索引日志分片与桶索引分片中包含的信息(包括元数据信息及操作日志信息)所对应的对象应是一致的。另外,桶索引分片及桶索引日志分片均可以是omap的结构。

S12:将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的元数据信息及操作日志信息实现当前对象的同步;其中,桶索引分片与桶索引日志分片是一一对应的。

在确定出当前对象及当前桶后,本申请实施例可以将当前对象写入至当前桶中,相应的还需要将当前对象的元数据信息及操作日志信息分别写入至当前桶的且互相对应的桶索引分片及桶索引日志分片中,从而将对象的元数据信息写在桶索引分片上,将对象的操作日志信息写在对应的桶索引日志分片上,在需要实现同步时,先根据桶索引分片获取对象的元数据信息,然后根据对应的桶索引日志分片获取对象的操作日志信息,进而基于获取到的元数据信息及操作日志信息实现数据同步,另外还可以基于桶索引分片及相应桶索引日志分片中的信息(包括元数据信息及操作日志信息)实现扩容等操作,而基于上述信息实现扩容(包含数据重构)与现有技术中对应技术方案的实现原理一致,在此不再赘述。其中,元数据信息为描述数据的数据;操作日志信息则为描述所做的操作(如写入、删除等)的数据;而本申请实施例中将元数据信息及操作日志信息分别写入至相应桶索引分片及桶索引日志分片中,具体可以是将元数据信息和操作日志信息通过哈希计算存储在相应的分片(分片包括桶索引分片及桶索引日志分片)上。

本申请为对象存储服务的存储桶设置互相对应的桶索引分片及桶索引日志分片后,在向存储桶中写入对象时,会将对象的元数据信息及操作日志信息分别存储至存储桶互相对应的桶索引分片及桶索引日志分片中,以供需要时进行同步。可见,本申请不再将对象的操作日志信息写入到对象对应的桶索引分片中,而是单独写入一个新的对象,即桶索引日志分片中,从而通过这种方式使得桶索引分片变小,有效提高了数据同步的速度。

本发明实施例提供的一种对象存储方法,还可以包括:

如果需要对当前桶中的当前对象进行修改或者删除,则对相应桶索引分片中包含的当前对象的元数据信息进行对应的修改或者删除,并将对当前对象进行修改或者删除的操作日志信息写入至、包含有对当前对象进行写入的操作日志信息的桶索引日志分片中。

本申请实施例中在将当前对象、当前对象的元数据信息及操作日志信息写入至当前桶中之后,如果需要对当前桶中的当前对象进行修改或者删除,则在对当前桶中的当前对象进行修改或者删除的同时,还需要将当前对象的元数据信息进行与对当前对象的修改相对应的修改,或者对当前对象的元数据信息进行与当前对象的删除相对应的删除,同时还需要将对当前对象进行修改或者删除的操作日志信息写入至相应的桶索引日志分片中,使得当前对象的元数据信息及操作日志信息与当前对象的情况保持一致,进而保证基于当前对象的元数据信息及操作日志信息实现同步等操作的有效性及准确性。

本发明实施例提供的一种对象存储方法,还可以包括:

判断对象存储服务是否为多站点场景,如果是,则执行将当前对象的操作日志信息写入至相应桶索引日志分片中的步骤,如果否,则确定无需将当前对象的操作日志信息写入至相应桶索引日志分片中。

如果当前是在多站点场景(即异地容灾场景)下,则需要在不同站点间实现对象的同步,因此需要将当前对象的操作日志信息写入至相应的桶索引日志分片中,以保证后续基于操作日志信息有效实现相应的对象同步等操作;否则,无需将当前对象的操作日志信息写入至相应的桶索引日志分片中,以避免对桶索引日志分片的无用占用。

本发明实施例提供的一种对象存储方法,基于相应的元数据信息及操作日志信息实现当前对象的同步之后,还可以包括:

将当前对象的操作日志信息从相应的桶索引日志分片中删除。

对于已经同步过的对象,其操作日志信息已经不需再使用了,因此可以通过直接对比桶索引日志分片,将已经不需再使用的操作日志信息裁剪掉,也即将不需再使用的操作日志从其所在的桶索引日志分片中删除,从而可以更大限度的减少保存的omap长度。

在一种具体实现方式中,本发明实施例提供的一种对象存储方法具体可以包括:

创建存储桶时,创建和桶索引分片(bucket_index.0,bucket_index.1…bucket_index.127)对应量的桶索引日志分片(bucket_index.log.0,bucket_index.log.1…bucket_index.log.127);

对象写删时,会更改桶索引分片(bucket_index.x)中的相应记录;同时,将相关的操作日志信息写到对应的桶索引日志分片(bucket_index.log.x)中,用于后期同步;

对象同步时,通过桶索引分片(bucket_index.x)找到对象的元数据信息,然后从对应的桶索引日志分片(bucket_index.log.x)中获取对象的操作日志信息,然后进行同步;

对于已经同步过的对象,其操作日志信息是无用的,可以通过直接对比不同站点间的桶索引日志分片(bucket_index.log.x),然后裁剪掉无用的对象的操作日志信息,可以更大限度的减少保存的omap长度;

桶索引日志分片(bucket_index.log.x)和桶索引分片(bucket_index.x)的写过程可以如图2所示,其中的对象信息为对象的元数据信息,对象操作信息为对象的操作日志信息,具体写过程可以包括:判断是否为多站点场景(异地容灾),如果否,就不写桶索引日志分片,否则,在桶索引分片(bucket_index.x)上记录对象的元数据信息后,在桶索引日志分片(bucket_index.log.x)上记录对象的操作日志信息。

可见,本申请在异地容灾场景下,将对象的元数据信息写在桶索引分片上,将对象的操作日志信息写在和桶索引分片对应的桶索引日志分片上,从而通过对象操作日志信息重分布方式,不再将对象操作日志信息写入到对象对应的桶索引分片中,而是单独写入一个新的对象中,使得桶索引分片变小,提高了数据重构和数据同步的速度,而且不会影响原有的对象读写性能,有利于在故障恢复和多站点场景下的性能优化;另外,将操作日志信息从桶索引分片中剥离出来,减少桶索引分片中的omap大小,且有利于操作日志信息的裁剪。

本发明实施例还提供了一种对象存储装置,如图3所示,可以包括:

确定模块11,用于:如果需要向对象存储服务的任意存储桶中写入对象,则确定当前需写入对象的存储桶为当前桶,需写入当前桶的对象为当前对象;

写入模块12,用于:将当前对象写入至当前桶中,将当前对象的元数据信息写入至当前桶的桶索引分片上,并将对当前对象进行写入的操作日志信息写入至、与写入当前对象元数据信息的桶索引分片相对应的桶索引日志分片中,以供基于相应的元数据信息及操作日志信息实现当前对象的同步;其中,桶索引分片与桶索引日志分片是一一对应的。

本发明实施例提供的一种对象存储装置,还可以包括:

更新模块,用于:如果需要对当前桶中的当前对象进行修改或者删除,则对相应桶索引分片中包含的当前对象的元数据信息进行对应的修改或者删除,并将对当前对象进行修改或者删除的操作日志信息写入至、包含有对当前对象进行写入的操作日志信息的桶索引日志分片中。

本发明实施例提供的一种对象存储装置,还可以包括:

判断模块,用于:判断对象存储服务是否为多站点场景,如果是,则指示写入模块或者更新模块执行将当前对象的操作日志信息写入至相应桶索引日志分片中的步骤,如果否,则确定无需将当前对象的操作日志信息写入至相应桶索引日志分片中。

本发明实施例提供的一种对象存储装置,还可以包括:

删除模块,用于:基于相应的元数据信息及操作日志信息实现当前对象的同步之后,将当前对象的操作日志信息从相应的桶索引日志分片中删除。

本发明实施例还提供了一种对象存储设备,可以包括:

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

处理器,用于执行计算机程序时实现如上任一项对象存储方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项对象存储方法的步骤。

需要说明的是,本发明实施例提供的一种对象存储装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种对象存储方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据处理方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类