CN117591031A - 一种对象存储方法及系统 - Google Patents
一种对象存储方法及系统 Download PDFInfo
- Publication number
- CN117591031A CN117591031A CN202311636801.2A CN202311636801A CN117591031A CN 117591031 A CN117591031 A CN 117591031A CN 202311636801 A CN202311636801 A CN 202311636801A CN 117591031 A CN117591031 A CN 117591031A
- Authority
- CN
- China
- Prior art keywords
- storage partition
- storage
- target
- partition
- disk
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000005192 partition Methods 0.000 claims abstract description 291
- 238000013507 mapping Methods 0.000 claims abstract description 29
- 230000015654 memory Effects 0.000 claims description 29
- 238000013508 migration Methods 0.000 claims description 6
- 230000005012 migration Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
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
技术领域
本说明书涉及计算机技术领域,尤其涉及一种对象存储方法及系统。
背景技术
随着计算机、互联网和数字媒体等的进一步普及,以非结构化数据为主的信息急剧增加。非结构化数据可以是指数据结构不规则,没有预定义数据模型的数据。例如,文档、文本、图片、图像和音频/视频信息等。这些非结构化数据是企业重要的信息资产,对企业的业务运作、市场拓宽、日常办公等方面起到重要的作用。为了避免非结构化数据的丢失,需要对非结构化数据进行备份。
目前,非结构化数据的存储方法通常为对象存储。在对象存储中,对象存储容器用于存储对象。由于在对象存储的过程中,对象存储容器中的对象元数据仅能存储在预先设定的固定磁盘中,导致对象存储容器中所能存储的对象元数据的存储数量受到磁盘的容量限制。
当对象存储容器中的对象元数据的存储数量达到磁盘的容量上限时,需要新建一个对象存储容器用于存储对象元数据。由于各个对象存储容器之间的数据并不互通,在检索对象时,需要对各个对象存储容器进行遍历,导致检索的效率较低。
发明内容
本说明书提供一种对象存储方法、装置、电子设备及机器可读存储介质,以提高检索对象的效率。
本说明书采用下述技术方案:
本说明书提供了一种对象存储方法,用于存储对象的对象存储容器包含至少一个存储分区;所述至少一个存储分区与至少一个磁盘建立了映射关系;包括:
获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据;
确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区;
将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
可选地,所述存储容器为Bucket存储桶。
可选地,所述对象包括非结构化数据。
可选地,所述对象存储方法应用于至少一个存储节点,所述存储节点上搭载了至少一个磁盘,所述磁盘用于存储与所述目标对象对应的目标对象元数据的副本。
可选地,在获取待存储的目标对象之前,包括:
按照预设的组合规则,对各个存储节点中的磁盘进行排列组合,得到至少一个磁盘组合,其中,所述磁盘组合中的各个磁盘属于不同的存储节点;
通过哈希算法,计算与所述对象存储容器对应的哈希值;
基于所述哈希值,建立所述至少一个存储分区与所述至少一个存储节点搭载的一个磁盘之间的映射关系。
可选地,确定与所述至少一个存储分区对应的对象标识范围,包括:
按照对象标识对所述对象存储容器中存储的对象进行排序;
基于所述对象存储容器中存储的对象的排序之后的顺序,确定与所述至少一个存储分区对应的对象标识范围。
可选地,所述对象存储容器支持对包含的存储分区进行扩展;
在将所述目标对象元数据存储到所述目标存储分区中的各个磁盘之前,所述方法还包括:
如果确定所述目标存储分区中的对象的数量大于设定数量阈值,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区;
将所述目标存储分区中存储的预设数量的对象元数据迁移到扩展存储分区,并同时向所述目标存储分区与所述扩展存储分区写入目标对象元数据;
在迁移完成后,确定与所述目标存储分区对应的第一对象标识范围,以及与所述扩展存储分区对应的第二对象标识范围,并将所述目标存储分区中的位于所述第一对象标识范围以外的对象标识对应的对象元数据进行删除,以及将所述扩展存储分区中的位于所述第二对象标识范围以外的对象标识对应的对象元数据进行删除。
可选地,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区,包括:
根据所述至少一个存储分区与至少一个磁盘之间的映射关系,确定与所述至少一个存储分区之间未存在映射关系的候选磁盘;
按照预设的组合规则,对各个存储节点中的候选磁盘进行排列组合,得到至少一个候选磁盘组合;
通过哈希算法,计算与所述对象存储容器对应的哈希值;
基于所述哈希值,建立所述至少一个扩展存储分区与至少一个候选磁盘之间的映射关系,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区。
可选地,所述方法还包括:
确定与所述目标存储分区相邻的存储分区,作为相邻存储分区;
如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值大于第一设定差值阈值,将所述目标存储分区的对象迁移到所述相邻存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不大于第一设定差值阈值时停止。
可选地,所述方法还包括:
如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值小于第二设定差值阈值,将所述相邻存储分区的对象迁移到所述目标存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不小于第二设定差值阈值时停止。
本说明书提供了一种对象存储系统,用于存储对象的对象存储容器包含至少一个存储分区;所述至少一个存储分区与至少一个磁盘建立了映射关系;所述系统包括:
获取模块,用于获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据;
查询模块,用于确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区;
存储模块,用于将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
本说明书提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述对象存储方法。
本说明书提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述对象存储方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的对象存储方法中,从与至少一个存储分区对应的对象标识范围中,查询与目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区,将目标对象元数据存储到目标存储分区中的各个磁盘。本方法可以根据检索对象的对象标识,确定检索对象所在的存储分区,对该存储分区进行遍历,从而提高检索对象的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1是一示例性的实施例示出的一种对象存储方法的流程图;
图2是一示例性的实施例示出的一种确定与存储分区对应的对象标识范围的示意图;
图3是一示例性的实施例示出的一种负载平衡的示意图;
图4是一示例性的实施例示出的另一种负载平衡的示意图;
图5是一示例性的实施例示出的对象存储系统所在电子设备的结构示意图;
图6是一示例性的实施例示出的一种对象存储系统的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在实际应用中,由于在对象存储的过程中,对象存储容器中的对象元数据仅能存储在预先设定的固定磁盘中,导致对象存储容器中所能存储的对象元数据的存储数量受到磁盘的容量限制。
当对象存储容器中的对象元数据的存储数量达到磁盘的容量上限时,需要新建一个对象存储容器用于存储对象元数据。由于各个对象存储容器之间的数据并不互通,在检索对象时,需要对各个对象存储容器进行遍历,导致检索的效率较低。
基于此,本说明书提出了一种对象存储容器包含至少一个存储分区,将对象元数据存储到与对象标识所位于的对象标识范围对应的存储分区中的各个磁盘的技术方案,以在检索对象时,仅需对与对象标识所位于的对象标识范围对应的存储分区进行遍历,提高了检索的效率。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1是一示例性的实施例示出的一种对象存储方法的流程图,具体包括以下步骤:
S100:获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据。
在本说明书实施例中,对象存储方法的执行主体可以是对象存储系统。对象存储系统的物理载体可以是服务器集群。为了便于描述,下面仅以对象存储系统为执行主体,对本说明书提供的对象存储方法进行说明。
在本说明书实施例中,对象存储系统包含有至少一个存储节点,存储节点上搭载了至少一个磁盘,存储节点可以是指服务器等电子设备。用于存储对象的对象存储容器包含至少一个存储分区。至少一个存储分区与至少一个磁盘建立了映射关系。
其中,对象存储系统可以按照预设的组合规则,对各个存储节点中的磁盘进行排列组合,得到至少一个磁盘组合,其中,磁盘组合中的各个磁盘属于不同的存储节点。
然后,对象存储系统可以通过哈希算法,计算与对象存储容器对应的哈希值。
最后,对象存储系统可以基于哈希值,建立至少一个存储分区与至少一个存储节点搭载的一个磁盘之间的映射关系。
例如,假设对象存储系统中包含有三个存储节点(0001、0002、0003),每个存储节点包含有两个磁盘(A、B)。按照预设的组合规则,对各个存储节点中的磁盘进行排列组合,得到八个磁盘组合。磁盘组合包括:(1)0001A、0002A、0003A。(2)0001A、0002A、0003B。(3)0001A、0002B、0003A。(4)0001A、0002B、0003B。(5)0001B、0002A、0003A。(6)0001B、0002A、0003B。(7)0001B、0002B、0003A。(8)0001B、0002B、0003B。
然后,对象存储系统可以通过哈希算法,计算与对象存储容器对应的哈希值。基于哈希值,建立至少一个存储分区与至少一个存储节点搭载的一个磁盘之间的映射关系。假设与哈希值对应的磁盘组合为0001A、0002A、0003A。则确定出的与第一个存储分区存在映射关系的磁盘组合为0001A、0002A、0003A。
在本说明书实施例中,对象存储系统还可以通过哈希算法,计算与对象存储容器对应的哈希槽。
接着,对象存储系统可以基于哈希槽,建立至少一个存储分区与至少一个存储节点搭载的一个磁盘之间的映射关系。
在本说明书实施例中,对象存储系统可以获取待存储的目标对象,这里提到的目标对象包括:与目标对象对应的目标对象标识和与目标对象对应的目标对象元数据。这里提到的对象标识可以是指对象在对象存储容器中的唯一标识。这里提到的对象元数据可以是指与对象相关属性的描述,例如,对象写入时间,对象大小、对象类型等。
其中,存储容器可以为Bucket存储桶。对象可以包括非结构化数据。非结构化数据可以是指数据结构不规则,没有预定义数据模型的数据。例如,文档、文本、图片、图像和音频/视频信息等。当然,对象还可以包括结构化数据。
需要说明的是,磁盘可以用于存储与目标对象对应的目标对象元数据的副本。
S102:确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区。
在本说明书实施例中,对象存储系统可以确定与至少一个存储分区对应的对象标识范围,并从与至少一个存储分区对应的对象标识范围中,查询与目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区。
具体的,对象存储系统可以按照对象标识对对象存储容器中存储的对象进行排序。例如,按照字母顺序(A-Z)对对象存储容器中存储的对象进行排序。然后,对象存储系统可以基于对象存储容器中存储的对象的排序之后的顺序,确定与至少一个存储分区对应的对象标识范围。具体如图2所示。
图2是一示例性的实施例示出的一种确定与存储分区对应的对象标识范围的示意图。
在图2中,对象存储容器中包含四个存储分区,根据对象标识F、K、Q,确定与对象存储容器中的存储分区对应的对象标识范围,得到与第一存储分区对应的对象标识范围(A-F)、与第二存储分区对应的对象标识范围(F-K)、与第三存储分区对应的对象标识范围(K-Q)、与第四存储分区对应的对象标识范围(Q-Z)。
需要说明的是,用于存储对象的对象存储容器维护了与至少一个存储分区对应的对象标识范围。对象存储系统可以获取维护的与至少一个存储分区对应的对象标识范围,以用于后续将对象元数据存储到存储分区中的各个磁盘。
S104:将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
在实际应用中,当对象存储容器中的对象元数据的存储数量达到磁盘的容量上限时,需要新建一个对象存储容器用于存储对象元数据。由于各个对象存储容器之间的数据并不互通,在检索对象时,需要对各个对象存储容器进行遍历,导致检索的效率较低。并且,在更改对象存储容器内的参数设置时,需要对多个对象存储容器进行更改,较为繁琐。
因此,对象存储系统可以将目标对象元数据存储到目标存储分区中的各个磁盘。在检索对象时,确定检索对象所在的存储分区,对该存储分区进行遍历,无需遍历整个对象存储容器,从而提高检索对象的效率。并且,由于无需新建对象存储容器,在更改对象存储容器内的参数设置时,仅需更改一次对象存储容器内的参数设置。
进一步的,对象存储容器包含有多个存储分区,可以同时写入或读取多个存储分区,提高了执行业务的效率。
在实际应用中,当对象存储容器中的一个存储分区中的对象的数量大于设定数量阈值时,对象存储系统需要对对象存储容器包含的该存储分区进行扩展。但是,在迁移对象元数据的过程中,无法确定是将目标对象元数据存储到目标存储分区,还是将目标对象元数据存储到扩展存储分区。
基于此,对象存储系统可以将目标对象元数据同时存储到目标存储分区和扩展存储分区,并在迁移完成后,将目标存储分区中的位于第一对象标识范围以外的对象标识对应的对象元数据进行删除,以及将扩展存储分区中的位于第二对象标识范围以外的对象标识对应的对象元数据进行删除。
在本说明书实施例中,对象存储容器支持对包含的存储分区进行扩展。在将目标对象元数据存储到目标存储分区中的各个磁盘之前,如果确定目标存储分区中的对象的数量大于设定数量阈值,在对象存储容器中构建与目标存储分区对应的扩展存储分区。
然后,将目标存储分区中存储的预设数量的对象元数据迁移到扩展存储分区,并同时向目标存储分区与扩展存储分区写入目标对象元数据。
接着,在迁移完成后,确定与目标存储分区对应的第一对象标识范围,以及与扩展存储分区对应的第二对象标识范围,并将目标存储分区中的位于第一对象标识范围以外的对象标识对应的对象元数据进行删除,以及将扩展存储分区中的位于第二对象标识范围以外的对象标识对应的对象元数据进行删除。
例如,假设设定数量阈值为一亿,预设数量为五千万,与目标存储分区对应的对象标识范围为(F-K),迁移的最后一个对象元数据的对象标识为H。如果确定目标存储分区中的对象的数量大于一亿,将目标存储分区中存储的五千万的对象元数据,按照从小到大的字母顺序依次迁移到扩展存储分区。同时向目标存储分区与扩展存储分区写入目标对象元数据。
在迁移完成后,确定与目标存储分区对应的第一对象标识范围(F-H),以及与扩展存储分区对应的第二对象标识范围(H-K)。将目标存储分区中的位于(F-H)以外的对象标识对应的对象元数据进行删除,以及将扩展存储分区中的位于(H-K)以外的对象标识对应的对象元数据进行删除。
在本说明书实施例中,在对象存储容器中构建与目标存储分区对应的扩展存储分区的方法如下:
首先,对象存储系统可以根据至少一个存储分区与至少一个磁盘之间的映射关系,确定与至少一个存储分区之间未存在映射关系的候选磁盘。
然后,对象存储系统可以按照预设的组合规则,对各个存储节点中的候选磁盘进行排列组合,得到至少一个候选磁盘组合。
接着,对象存储系统可以通过哈希算法,计算与对象存储容器对应的哈希值。
最后,对象存储系统可以基于哈希值,建立至少一个扩展存储分区与至少一个候选磁盘之间的映射关系,在对象存储容器中构建与目标存储分区对应的扩展存储分区。
例如,假设对象存储系统中包含有三个存储节点(0001、0002、0003),每个存储节点包含有三个磁盘(A、B、C)。目标存储分区与磁盘组合为0001A、0002A、0003A存在映射关系。那么,在确定与扩展存储分区存在映射关系的磁盘组合时,需要排除包含有0001A、0002A、0003A这三块磁盘。也就是说,确定与至少一个存储分区之间未存在映射关系的候选磁盘为0001B、0002B、0003B、0001C、0002C、0003C。按照预设的组合规则,对各个存储节点中的候选磁盘进行排列组合,得到八个候选磁盘组合。候选磁盘组合包括:(1)0001B、0002B、0003B。(2)0001B、0002B、0003C。(3)0001B、0002C、0003B。(4)0001B、0002C、0003C。(5)0001C、0002B、0003B。(6)0001C、0002B、0003C。(7)0001C、0002C、0003B。(8)0001C、0002C、0003C。
然后,对象存储系统可以通过哈希算法,计算与对象存储容器对应的哈希值。基于哈希值,建立至少一个扩展存储分区与至少一个候选磁盘之间的映射关系,在对象存储容器中构建与目标存储分区对应的扩展存储分区(0001B、0002B、0003B)。
在实际应用中,由于对象的对象标识的随机性,可能出现对象存储容器中的单个存储分区中的对象的数量过多,导致该存储分区的负载压力较大的情况。
基于此,对象存储系统可以对目标对象元数据所存储的目标存储分区进行负载监测,如果确定目标存储分区的负载压力较大,且目标存储分区的负载压力大于相邻存储分区的负载压力,将目标存储分区中的对象元数据迁移到相邻的存储分区中。
在本说明书实施例中,对象存储系统可以确定与目标存储分区相邻的存储分区,作为相邻存储分区。
如果确定目标存储分区中存储的对象与相邻存储分区中存储的对象的数量的差值大于第一设定差值阈值,将目标存储分区的对象迁移到相邻存储分区,直到目标存储分区与相邻存储分区之间的对象的数量的差值不大于第一设定差值阈值时停止。这里提到的第一设定差值阈值可以是指设定的数值,也可以是指设定的比值。具体如图3所示。
图3是一示例性的实施例示出的一种负载平衡的示意图。
在图3中,与目标存储分区对应的对象标识范围为(F1-Hn),相邻存储分区对应的对象标识范围为(I1-Kn)。如果确定目标存储分区中存储的对象与相邻存储分区中存储的对象的数量的差值大于第一设定差值阈值,将目标存储分区中的对象标识为Hn的对象元数据迁移到相邻存储分区中,并重新确定出与目标存储分区对应的对象标识范围为(F1-Hn-1),相邻存储分区对应的对象标识范围为(Hn-Kn),直到目标存储分区与相邻存储分区之间的对象的数量的差值不大于第一设定差值阈值时停止。
如果确定目标存储分区中存储的对象与相邻存储分区中存储的对象的数量的差值小于第二设定差值阈值,将相邻存储分区的对象迁移到目标存储分区,直到目标存储分区与相邻存储分区之间的对象的数量的差值不小于第二设定差值阈值时停止。这里提到的第二设定差值阈值可以是指设定的数值,也可以是指设定的比值。具体如图4所示。
图4是一示例性的实施例示出的另一种负载平衡的示意图。
在图4中,与目标存储分区对应的对象标识范围为(F1-Hn),相邻存储分区对应的对象标识范围为(I1-Kn)。如果确定目标存储分区中存储的对象与相邻存储分区中存储的对象的数量的差值小于第二设定差值阈值,将相邻存储分区中的对象标识为I1的对象元数据迁移到目标存储分区中,并重新确定出与目标存储分区对应的对象标识范围为(F1-I1),相邻存储分区对应的对象标识范围为(I2-Kn),直到目标存储分区与相邻存储分区之间的对象的数量的差值不小于第二设定差值阈值时停止。
可以看出,在迁移对象元数据的过程中,优先迁移对象标识与存储分区对应的对象标识范围最接近的对象元数据。上述方法可以平衡各存储分区之间的负载,使得对象在各存储分区中均匀分布。
从上述方法中可以看出,从与至少一个存储分区对应的对象标识范围中,查询与目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区,将目标对象元数据存储到目标存储分区中的各个磁盘。本方法可以根据检索对象的对象标识,确定检索对象所在的存储分区,对该存储分区进行遍历,从而提高检索对象的效率。
并且,在更改对象存储容器内的参数设置时,无需新建对象存储容器,仅需更改一次对象存储容器内的参数设置。
进一步的,对象存储容器包含有多个存储分区,可以同时写入或读取多个存储分区,提高了执行业务的效率。
与上述对象存储方法的实施例对应的,本说明书还提供了一种对象存储系统的实施例。
请参见图5,图5是一示例性的实施例示出的一种对象存储系统所在电子设备的结构图。在硬件层面,该设备包括处理器5、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图6,图6是一示例性的实施例示出的一种对象存储系统的框图。该对象存储系统可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。其中,所述对象存储系统可以包括:
获取模块600,用于获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据;
查询模块602,用于确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区;
存储模块604,用于将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
可选的,所述存储容器为Bucket存储桶。
可选的,所述对象包括非结构化数据。
可选的,所述对象存储方法应用于至少一个存储节点,所述存储节点上搭载了至少一个磁盘,所述磁盘用于存储与所述目标对象对应的目标对象元数据的副本。
可选的,所述获取模块600,具体还用于按照预设的组合规则,对各个存储节点中的磁盘进行排列组合,得到至少一个磁盘组合,其中,所述磁盘组合中的各个磁盘属于不同的存储节点;通过哈希算法,计算与所述对象存储容器对应的哈希值;基于所述哈希值,建立所述至少一个存储分区与所述至少一个存储节点搭载的一个磁盘之间的映射关系。
可选的,所述查询模块602,具体用于按照对象标识对所述对象存储容器中存储的对象进行排序;基于所述对象存储容器中存储的对象的排序之后的顺序,确定与所述至少一个存储分区对应的对象标识范围。
可选的,所述对象存储容器支持对包含的存储分区进行扩展;所述查询模块602,具体还用于如果确定所述目标存储分区中的对象的数量大于设定数量阈值,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区;将所述目标存储分区中存储的预设数量的对象元数据迁移到扩展存储分区,并同时向所述目标存储分区与所述扩展存储分区写入目标对象元数据;在迁移完成后,确定与所述目标存储分区对应的第一对象标识范围,以及与所述扩展存储分区对应的第二对象标识范围,并将所述目标存储分区中的位于所述第一对象标识范围以外的对象标识对应的对象元数据进行删除,以及将所述扩展存储分区中的位于所述第二对象标识范围以外的对象标识对应的对象元数据进行删除。
可选的,所述查询模块602,具体还用于根据所述至少一个存储分区与至少一个磁盘之间的映射关系,确定与所述至少一个存储分区之间未存在映射关系的候选磁盘;按照预设的组合规则,对各个存储节点中的候选磁盘进行排列组合,得到至少一个候选磁盘组合;通过哈希算法,计算与所述对象存储容器对应的哈希值;基于所述哈希值,建立所述至少一个扩展存储分区与至少一个候选磁盘之间的映射关系,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区。
可选的,所述存储模块604,具体还用于确定与所述目标存储分区相邻的存储分区,作为相邻存储分区;如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值大于第一设定差值阈值,将所述目标存储分区的对象迁移到所述相邻存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不大于第一设定差值阈值时停止。
可选的,所述存储模块604,具体还用于如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值小于第二设定差值阈值,将所述相邻存储分区的对象迁移到所述目标存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不小于第二设定差值阈值时停止。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书还提供了一种计算机可读存储介质的实施例。所述计算机可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,可以实现本说明书中任意一个实施例提供的所述非结构化数据的存储方法。
本说明书实施例提供的计算机可读存储介质具体可以包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)、EPROM(Erasable Programmable Read-OnlyMemory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable ProgrammableRead-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光纤卡片。也就是,可读存储介质包括可以存储或传输信息的可读介质。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (13)
1.一种对象存储方法,其特征在于,用于存储对象的对象存储容器包含至少一个存储分区;所述至少一个存储分区与至少一个磁盘建立了映射关系;所述方法包括:
获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据;
确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区;
将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
2.如权利要求1所述的方法,其特征在于,所述存储容器为Bucket存储桶。
3.如权利要求1所述的方法,其特征在于,所述对象包括非结构化数据。
4.如权利要求1所述的方法,其特征在于,所述对象存储方法应用于至少一个存储节点,所述存储节点上搭载了至少一个磁盘,所述磁盘用于存储与所述目标对象对应的目标对象元数据的副本。
5.如权利要求4所述的方法,其特征在于,在获取待存储的目标对象之前,包括:
按照预设的组合规则,对各个存储节点中的磁盘进行排列组合,得到至少一个磁盘组合,其中,所述磁盘组合中的各个磁盘属于不同的存储节点;
通过哈希算法,计算与所述对象存储容器对应的哈希值;
基于所述哈希值,建立所述至少一个存储分区与所述至少一个存储节点搭载的一个磁盘之间的映射关系。
6.如权利要求1所述的方法,其特征在于,确定与所述至少一个存储分区对应的对象标识范围,包括:
按照对象标识对所述对象存储容器中存储的对象进行排序;
基于所述对象存储容器中存储的对象的排序之后的顺序,确定与所述至少一个存储分区对应的对象标识范围。
7.如权利要求1所述的方法,其特征在于,所述对象存储容器支持对包含的存储分区进行扩展;
在将所述目标对象元数据存储到所述目标存储分区中的各个磁盘之前,所述方法还包括:
如果确定所述目标存储分区中的对象的数量大于设定数量阈值,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区;
将所述目标存储分区中存储的预设数量的对象元数据迁移到扩展存储分区,并同时向所述目标存储分区与所述扩展存储分区写入目标对象元数据;
在迁移完成后,确定与所述目标存储分区对应的第一对象标识范围,以及与所述扩展存储分区对应的第二对象标识范围,并将所述目标存储分区中的位于所述第一对象标识范围以外的对象标识对应的对象元数据进行删除,以及将所述扩展存储分区中的位于所述第二对象标识范围以外的对象标识对应的对象元数据进行删除。
8.如权利要求7所述的方法,其特征在于,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区,包括:
根据所述至少一个存储分区与至少一个磁盘之间的映射关系,确定与所述至少一个存储分区之间未存在映射关系的候选磁盘;
按照预设的组合规则,对各个存储节点中的候选磁盘进行排列组合,得到至少一个候选磁盘组合;
通过哈希算法,计算与所述对象存储容器对应的哈希值;
基于所述哈希值,建立所述至少一个扩展存储分区与至少一个候选磁盘之间的映射关系,在所述对象存储容器中构建与所述目标存储分区对应的扩展存储分区。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定与所述目标存储分区相邻的存储分区,作为相邻存储分区;
如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值大于第一设定差值阈值,将所述目标存储分区的对象迁移到所述相邻存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不大于第一设定差值阈值时停止。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
如果确定所述目标存储分区中存储的对象与所述相邻存储分区中存储的对象的数量的差值小于第二设定差值阈值,将所述相邻存储分区的对象迁移到所述目标存储分区,直到所述目标存储分区与所述相邻存储分区之间的对象的数量的差值不小于第二设定差值阈值时停止。
11.一种对象存储系统,其特征在于,用于存储对象的对象存储容器包含至少一个存储分区;所述至少一个存储分区与至少一个磁盘建立了映射关系;所述系统包括:
获取模块,用于获取待存储的目标对象,所述目标对象包括:与所述目标对象对应的目标对象标识和与所述目标对象对应的目标对象元数据;
查询模块,用于确定与所述至少一个存储分区对应的对象标识范围,并从与所述至少一个存储分区对应的对象标识范围中,查询与所述目标对象标识所位于的对象标识范围对应的存储分区,作为目标存储分区;
存储模块,用于将所述目标对象元数据存储到所述目标存储分区中的各个磁盘。
12.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1至10任一项所述的方法。
13.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311636801.2A CN117591031A (zh) | 2023-11-30 | 2023-11-30 | 一种对象存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311636801.2A CN117591031A (zh) | 2023-11-30 | 2023-11-30 | 一种对象存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591031A true CN117591031A (zh) | 2024-02-23 |
Family
ID=89919817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311636801.2A Pending CN117591031A (zh) | 2023-11-30 | 2023-11-30 | 一种对象存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591031A (zh) |
-
2023
- 2023-11-30 CN CN202311636801.2A patent/CN117591031A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984020B2 (en) | System and method for supporting large queries in a multidimensional database environment | |
CN104794123B (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN112988761B (zh) | 区块链数据存储方法及装置、电子设备 | |
US11868328B2 (en) | Multi-record index structure for key-value stores | |
CN103942301A (zh) | 一种面向多数据类型访问应用的分布式文件系统 | |
CN102955808A (zh) | 一种数据获取方法和分布式文件系统 | |
CN110889424B (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
CN103902693A (zh) | 一种读优化的内存数据库t树索引结构的方法 | |
CN111752941A (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
US9292553B2 (en) | Queries for thin database indexing | |
CN117591031A (zh) | 一种对象存储方法及系统 | |
CN115576947A (zh) | 一种数据管理方法、装置、组合库、电子设备及存储介质 | |
CN112905607B (zh) | 区块链数据存储方法及装置、电子设备 | |
CN112307272B (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
CN114691612A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN115167762A (zh) | 数据分层存储方法及装置 | |
CN110880005B (zh) | 向量索引建立方法及装置和向量检索方法及装置 | |
CN108073596B (zh) | 一种olap数据库的数据删除方法及装置 | |
CN111258955A (zh) | 一种文件读取方法和系统、存储介质、计算机设备 | |
CN117540056B (zh) | 数据查询的方法、装置、计算机设备和存储介质 | |
CN114328420A (zh) | 对象元数据存储方法及装置 | |
CN103810209B (zh) | 一种保存数据的方法及系统 | |
CN114003607A (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 |