CN109254729A - 一种对象存储的方法和装置 - Google Patents

一种对象存储的方法和装置 Download PDF

Info

Publication number
CN109254729A
CN109254729A CN201810973422.5A CN201810973422A CN109254729A CN 109254729 A CN109254729 A CN 109254729A CN 201810973422 A CN201810973422 A CN 201810973422A CN 109254729 A CN109254729 A CN 109254729A
Authority
CN
China
Prior art keywords
node
memory
dummy node
dummy
storage
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.)
Granted
Application number
CN201810973422.5A
Other languages
English (en)
Other versions
CN109254729B (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.)
Hangzhou Sequoia Polytron Technologies Inc
Original Assignee
Hangzhou Sequoia Polytron Technologies Inc
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 Hangzhou Sequoia Polytron Technologies Inc filed Critical Hangzhou Sequoia Polytron Technologies Inc
Priority to CN201810973422.5A priority Critical patent/CN109254729B/zh
Publication of CN109254729A publication Critical patent/CN109254729A/zh
Application granted granted Critical
Publication of CN109254729B publication Critical patent/CN109254729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation

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

本申请提供一种对象存储的方法和装置,包括:根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。解决了哈希环倾斜,使得每个存储节点负载均衡,同时降低了运算成本。

Description

一种对象存储的方法和装置
技术领域
本申请涉及存储领域,特别涉及一种对象存储的方法和装置。
背景技术
随着互联网行业的发展,拍字节(PB)级甚至艾字节(EB)级的数据存储越来越普遍,存储方式由传统的集中存储服务器存放方式发展为分布式存储方式。对象存储作为一种新型的分布式存储方式,共享能力强、扩展性好,提供基于对象的访问接口。
对象是对象存储中的基本实体,具体地,作为一个实施例,对象可以为文本、图像、视频、音频等。
在对象存储中,通常采用一致性哈希方法实现对对象的存取,具体为:对分布式存储系统中存储节点的某种属性进行哈希运算,计算结果对应到哈希环上相应位置,对于一个给定的对象,通过哈希函数对对象的键做运算,根据运算结果来定位其所在哈希环上的点,再从这个点出发沿哈希环顺时针方向遇到的第一个存储节点就是给定的对象对应的存储节点。
但是,在一个分布式存储系统中,存储节点的数量有限,且存储节点在哈希环上的分布也由哈希方法计算得到,在哈希环上分布不均匀,这会导致发生哈希环倾斜,使得每个存储节点的负载不均衡。对象实际存储过程中,除了需要对对象的键进行哈希运算,根据运算结果来定位其对应哈希环上的点,还需要从这个点出发沿哈希环顺时针方向找到最近的存储节点,运算成本高。
发明内容
有鉴于此,本申请提供一种对象存储的方法和装置。
具体地,本申请是通过如下技术方案实现的:
本发明提供一种对象存储的方法,所述方法应用于分布式存储系统,包括:
根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。
在本发明一种具体实施方式中,所述M为:所述L的N倍,
L、M、N为正整数。
在本发明一种具体实施方式中,从所述M个虚拟节点中确定该存储节点对应的虚拟节点包括:
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,其中,每个存储节点对应的虚拟节点数量相同或者不同;
在本发明一种具体实施方式中,所述确定对象在所述哈希环上的目标位置包括:
对所述对象的键进行哈希运算得到第一结果;
将所述第一结果与所述M进行取余运算,得到第二结果;
将所述哈希环上与所述第二结果对应的位置确定为目标位置。
在本发明一种具体实施方式中,当所述分布式存储系统新增存储节点时,该方法进一步包括:从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点;
当所述分布式存储系统已有的存储节点被删除时,该方法进一步包括:将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
本发明实施例还提供一种对象存储的装置,所述装置应用于分布式存储系统,包括:
虚拟节点生成单元,用于根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
哈希环生成单元,用于利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;
确定单元,用于针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
存储处理单元,用于在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。
在本发明一种具体实施方式中,所述M为:所述L的N倍,
L、M、N为正整数。
在本发明一种具体实施方式中,所述确定单元从所述M个虚拟节点中确定该存储节点对应的虚拟节点包括:
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,其中,每个存储节点对应的虚拟节点数量相同或者不同;
在本发明一种具体实施方式中,所述存储处理单元确定所述对象在所述哈希环上的目标位置包括:
对所述对象的键进行哈希运算得到第一结果;
将所述第一结果与所述M进行取余运算,得到第二结果;
将所述哈希环上与所述第二结果对应的位置确定为目标位置。
在本发明一种具体实施方式中,所述装置还包括:
更新单元,用于当所述分布式存储系统新增存储节点时,从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点;
当所述分布式存储系统已有的存储节点被删除时,将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
本申请中,哈希环上每一个点一一对应虚拟节点,将虚拟节点按照一定方式对应每一个存储节点,解决了哈希环倾斜,使得每个存储节点负载均衡。对象实际存储过程中,需要先对对象的键进行哈希运算,根据运算结果来定位其对应哈希环上的点,即对应到虚拟节点,再由已经构建的虚拟节点与存储节点的对应关系,定位对应的存储节点,降低了运算成本。
附图说明
图1是本发明实施例一种对象存储方法流程图;
图2是本发明实施例一种对象存储的方法的流程示意图;
图3是本发明实施例一种哈希环示意图;
图4是本发明实施例一种新增存储节点时对象存储方法流程示意图;
图5是本发明实施例一种已有的存储节点被删除时对象存储方法流程示意图;
图6是本发明实施例一种对象存储的装置的一种结构示意图;
图7是本发明实施例更新单元示意图。
具体实施方式
在分布式存储系统中,针对存储节点数量有限,存储节点在哈希环上位置分布不均匀的问题,图1所示一种对象存储方法提出如下方案,包括以下步骤:
步骤S101,通过哈希运算,依据每个存储节点特征参数生成多个虚拟节点;
依据每个存储节点特征参数,对该特征参数做相应的运算,得到多个基于特征参数的值,再对这些值进行哈希运算,对应到哈希环上相应位置,每个存储节点生成多个虚拟节点。
作为一个实施例,指定存储节点特征参数为IP地址,指定对IP地址做的相应运算是对存储节点的IP地址加数字后缀,对所述IP地址加数字后缀进行哈希运算,假定,哈希环上点的个数为Z,则将哈希运算结果对Z取余,结果必定落到哈希环上某个位置。采用这种方式,改变数字后缀,每个存储节点生成多个虚拟节点。作为一个实施例,这里设定的存储节点特征参数为IP地址,对特征参数做的相应运算为对IP地址加数字后缀,本申请并不具体限定。
步骤S102,每一个存储节点与依据其特征参数生成的多个虚拟节点,建立映射关系;
根据步骤S101,每个存储节点生成多个虚拟节点,对应的,建立存储节点与依据其特征参数生成的多个虚拟节点的映射关系。
步骤S103,存储对象时,确定所述对象在哈希环上的位置,并在哈希环上确定其对应的虚拟节点;
存储对象时,对所述对象的键进行哈希运算,假定,哈希环上点的个数为Z,将所述哈希运算的值对Z取余,将所述取余结果对应到哈希环上的相应位置;
将从该相应位置沿哈希环按顺时针方向遇到的第一个虚拟节点确定为该存储对象对应的虚拟节点。
步骤S104,查找与该虚拟节点有映射关系的存储节点并将所述对象存储到该存储节点;
根据步骤S103,确定存储对象对应的虚拟节点后,参照S102已建立的存储节点与虚拟节点的映射关系,确定存储对象的存储节点,将该存储对象存储到该存储节点。
至此完成图1实施例一种对象存储方法的描述。
本实施例提供了现有的一种对象存储方法,引入了虚拟节点的概念,使得每个存储节点对应哈希环上的多个虚拟节点。在原有映射关系“对象—存储节点”中间增加一层虚拟节点,变为“对象—虚拟节点—存储节点”。
在加入虚拟节点足够多时,可以一定程度上改善存储节点在哈希环上位置分布不均匀的问题,但是效果有限。虚拟节点在哈希环上对应的位置是依据每一个存储节点特征参数通过哈希算法得到的,其在哈希环上分布仍然是不均匀的,不可避免哈希环倾斜。而且,虚拟节点在哈希环上位置的确定过程中需要多次哈希运算,给系统增加了大量的计算成本。
为了解决哈希环倾斜、系统计算成本高的问题,本发明实施例提供了图2所示的一种对象存储的方法,将哈希环上每一个点一一对应虚拟节点,均匀分布,虚拟节点按照一定方式对应到存储节点,避免哈希环倾斜,同时节省计算成本。
为了使本领域的技术人员更好地理解本发明实施例提供的技术方案,下面结合附图和具体实施方式对本发明实施例提供的技术方案作进一步的详细说明。
参见图2,图2为本发明提供的一种对象存储的方法的流程示意图,该方法应用于分布式存储系统。
如图2所示,该流程示意图包括以下步骤:
步骤S201,根据分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
所述M为所述L的N倍,L、M、N为正整数。
得到计算M的计算公式:M=L*N,L、M、N均为整数,*表示乘积。
N可以由用户自定义。下面通过一个例子进行描述:
假如分布式存储系统支持的最大存储节点数量L为512,N为1024,则虚拟节点个数M=512*1024,即M为219
步骤S202,利用M个虚拟节点生成哈希环;
前述已经确定虚拟节点的个数为M个,使用M个点组成哈希环,使得哈希环被分成M个位置,M个位置与M个虚拟节点一一对应,每个位置对应一个虚拟节点,哈希环的正上方为起点代表0,沿顺时针方向直到M-1。下面通过一个例子进行描述:
假如虚拟节点个数M为219,使用219个点组成哈希环,每个哈希环上的点对应一个虚拟节点,一一对应。哈希环的正上方为起点代表0(0和219重叠),0右侧代表1,以此类推,顺时针方向依次为2、3、4、……直到219-1。参见图3,图3指出了哈希环上数值点以及其分布规律。
步骤S203,针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
在本申请中,作为一个实施例,针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,其中,每个存储节点对应的虚拟节点数量可以相同,也可以不同。下文详细描述如何从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,这里暂不赘述。
作为一个实施例,每一个存储节点对应的虚拟节点在哈希环上的位置可以是连续的,也可以是不连续的,本发明对此不做限定。
以上是对步骤S203的描述。
步骤S204,在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点;
作为一个实施例,上述确定所述对象在所述哈希环上的目标位置,具体包括:
对所述对象的键进行哈希运算得到第一结果;
将所述第一结果与所述M进行取余运算,得到第二结果;
将所述哈希环上与所述第二结果对应的位置确定为目标位置。
至此,完成对图2实施例一种对象存储的方法的描述。
上述步骤S203中如何从M个虚拟节点中为各个存储节点确定对应的虚拟节点,本申请给出两种实现方式:
方式1:
在本方式1中,依据各个存储节点的存储特征参数为各个存储节点确定对应的虚拟节点。作为一个实施例,这里的存储特征参数可包括存储处理能力、存储容量。
下面以存储特征参数为存储处理能力、存储容量为例进行描述:
在应用中,当存储节点的存储处理能力强、存储容量大,则存储节点对应的虚拟节点数量就多,反之,当存储节点的存储处理能力弱、存储容量小,则存储节点对应的虚拟节点数量就少。
基于此,本方式1就可依据各个存储节点的存储特征参数为各个存储节点确定对应的虚拟节点,以实现存储处理能力强、存储容量大的存储节点,对应较多的虚拟节点,存储处理能力弱、存储容量小的存储节点,对应较少的虚拟节点,达到更好地利用存储节点的系统配置的目的。下面通过一个例子对方式1进行描述:
假如虚拟节点个数为219,由219个点组成哈希环,存储节点的个数为16个。若16个存储节点中的前8个存储节点的存储处理能力和存储容量是后8个存储处理能力和存储容量的3倍,则前8个存储处理能力强、存储容量大的存储节点,每个可对应49152个虚拟节点,后8个存储处理能力弱、存储容量小的存储节点,每个可对应16384个虚拟节点。
至此,完成方式1的描述。
方式2:
在本方式2中,按照均分方式将虚拟节点均分给各个存储节点。
这里的均分方式在一种情况下存储节点数量可以整除虚拟节点数量,下面举一个例子进行描述:
假如虚拟节点个数为219,219个点组成哈希环,若存储节点的个数为16个,根据计算式219/16,/表示除,即每个存储节点对应5243个虚拟节点。
在另一种情况下,存储节点数量不能整除虚拟节点数量,但虚拟节点分配给各个存储节点需满足最大均分原则,下面举一个例子进行描述:
假如虚拟节点个数为219,219个点组成哈希环,存储节点的个数为100个,根据计算式219/100,/表示除,计算得5242,余数为88,则88个存储节点每个存储节点对应5243个虚拟节点,12个存储节点每个对应5242个虚拟节点,满足最大均分原则。
至此,完成方式2的描述。
上述实施例,仅是以两种方式为例对如何从M个虚拟节点中为各个存储节点确定对应的虚拟节点进行说明,在实际应用中,可根据分布式存储系统的特点和实际需要灵活确定所采取的方式,本发明对此不需要进行限定。
另外,一个分布式存储系统,存储节点可能会发生变化,可能会有新增存储节点加入分布式存储系统,也可能会有存储节点被分布式存储系统删除。当分布式存储系统新增存储节点时,需将原有的存储节点对应的一部分虚拟节点对应到新增的存储节点。当存储节点被分布式存储系统删除时,删除的存储节点对应的虚拟节点应对应到剩余的存储节点。下面结合图4、图5和具体实施方式对本发明实施例提供的技术方案作进一步的详细说明。
参见图4,图4为本发明实施例一种新增存储节点时对象存储方法流程示意图。该流程图可包括以下步骤:
步骤S401,从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点;
步骤S402,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点。
作为一种实施例,若步骤S203,从所述M个虚拟节点中确定该存储节点对应的虚拟节点采用的是方式2,则步骤S401也可以采用方式2,从分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,按照步骤S402,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点。下面通过一个例子进行描述:
假如虚拟节点个数为219,219个点组成哈希环,存储节点的个数为100,假如步骤S203采用方式2,则88个存储节点每个存储节点对应5243个虚拟节点,12个存储节点每个对应5242个虚拟节点,满足最大均分原则,假如新增28个存储节点,采用方式2相同算法,则增加存储节点后每个存储节点对应4096个虚拟节点,原100个存储节点应将多余的虚拟节点对应到新增的存储节点。
从分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,作为一种实施方式,选择出的至少一个虚拟节点在哈希环上的位置可以是数值最小的连续一段。
将选择出的的虚拟节点对应到新增的存储节点之前,作为一种实施方式,可以检测新增的存储节点存储容量,确保新增存储节点有足够的存储容量。
至此,完成一种新增存储节点时对象存储方法的描述。
参见图5,图5为本发明实施例一种已有的存储节点被删除时对象存储方法流程示意图。该流程图可包括以下步骤:
步骤S501,将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
作为一种实施例,若步骤S203,从所述M个虚拟节点中确定该存储节点对应的虚拟节点采用的是方式2,则步骤S501也可以采用方式2,将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。下面通过一个例子进行描述:
假如虚拟节点个数为219,219个点组成哈希环,存储节点的个数为100个,假如步骤S203采用方式2,则88个存储节点每个存储节点对应5243个虚拟节点,12个存储节点每个对应5242个虚拟节点,满足最大均分原则,假如被删除的存储节点为36个,采用方式2相同算法,则删除存储节点后每个对应8192个虚拟节点,确定被删除的36个存储节点对应的虚拟节点,并将这些虚拟节点确定为与剩余的64个存储节点对应的虚拟节点,使得剩余的64个存储节点每个对应8192个虚拟节点。
将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点前,作为一种实施方式,可以检测剩余的存储节点存储容量,保证剩余的存储节点有足够的存储容量。
至此,完成一种已有的存储节点被删除时对象存储方法的描述。
相当于以上的方法实施例,参见图6,图6为本发明实施例提供一种对象存储的装置,包括:
虚拟节点生成单元601,用于根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
哈希环生成单元602,用于利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;
确定单元603,用于针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
存储处理单元604,用于在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。
作为一种实施例,参见图7,一种对象存储的装置还包括:
更新单元701,用于当所述分布式存储系统新增存储节点时,从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点;
当所述分布式存储系统已有的存储节点被删除时,将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
对于装置实施例而言,由于其基本相当于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种对象存储的方法,其特征在于,所述方法应用于分布式存储系统,包括:
根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。
2.根据权利要求1所述的方法,其特征在于,所述M为:所述L的N倍,
L、M、N为正整数。
3.根据权利要求1所述的方法,其特征在于,所述从M个虚拟节点中确定该存储节点对应的虚拟节点包括:
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,其中,每个存储节点对应的虚拟节点数量相同或者不同。
4.根据权利要求1所述的方法,其特征在于,所述确定对象在所述哈希环上的目标位置包括:
对所述对象的键进行哈希运算得到第一结果;
将所述第一结果与所述M进行取余运算,得到第二结果;
将所述哈希环上与所述第二结果对应的位置确定为目标位置。
5.根据权利要求1-4任一项所述的方法,其特征在于,当所述分布式存储系统新增存储节点时,该方法进一步包括:从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点;
当所述分布式存储系统已有的存储节点被删除时,该方法进一步包括:将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
6.一种对象存储的装置,其特征在于,所述装置应用于分布式存储系统,包括:
虚拟节点生成单元,用于根据所述分布式存储系统支持的最大存储节点数量L确定虚拟节点数量M;
哈希环生成单元,用于利用M个虚拟节点生成哈希环,所述哈希环被分成M个位置,M个位置与M个虚拟节点一一对应;
确定单元,用于针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中确定该存储节点对应的虚拟节点;
存储处理单元,用于在存储对象时,确定所述对象在所述哈希环上的目标位置,依据所述目标位置对应的虚拟节点将所述对象存储在对应的存储节点。
7.根据权利要求6所述的装置,其特征在于,所述M为:所述L的N倍,
L、M、N为正整数。
8.根据权利要求6所述的装置,其特征在于,所述确定单元从所述M个虚拟节点中确定该存储节点对应的虚拟节点包括:
针对所述分布式存储系统已有的每一存储节点,从所述M个虚拟节点中选择至少一个虚拟节点作为与该存储节点对应的虚拟节点,其中,每个存储节点对应的虚拟节点数量相同或者不同。
9.根据权利要求6所述的装置,其特征在于,所述存储处理单元确定所述对象在所述哈希环上的目标位置包括:
对所述对象的键进行哈希运算得到第一结果;
将所述第一结果与所述M进行取余运算,得到第二结果;
将所述哈希环上与所述第二结果对应的位置确定为目标位置。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述装置还包括:更新单元,用于当所述分布式存储系统新增存储节点时,从所述分布式存储系统已有的至少一个存储节点对应的虚拟节点中选择出至少一个虚拟节点,将选择出的虚拟节点确定为与新增的存储节点对应的虚拟节点;
当所述分布式存储系统已有的存储节点被删除时,将被删除的存储节点对应的虚拟节点确定为与剩余的至少一个存储节点对应的虚拟节点。
CN201810973422.5A 2018-08-24 2018-08-24 一种对象存储的方法和装置 Active CN109254729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810973422.5A CN109254729B (zh) 2018-08-24 2018-08-24 一种对象存储的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810973422.5A CN109254729B (zh) 2018-08-24 2018-08-24 一种对象存储的方法和装置

Publications (2)

Publication Number Publication Date
CN109254729A true CN109254729A (zh) 2019-01-22
CN109254729B CN109254729B (zh) 2021-11-23

Family

ID=65050254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810973422.5A Active CN109254729B (zh) 2018-08-24 2018-08-24 一种对象存储的方法和装置

Country Status (1)

Country Link
CN (1) CN109254729B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275873A (zh) * 2019-06-28 2019-09-24 重庆紫光华山智安科技有限公司 文件存储方法、装置、存储管理设备及存储介质
CN110377647A (zh) * 2019-07-30 2019-10-25 江门职业技术学院 一种基于分布式数据库需求信息查询方法及系统
CN110474978A (zh) * 2019-08-13 2019-11-19 上海陆家嘴国际金融资产交易市场股份有限公司 虚拟消息处理方调度方法、装置、计算机设备和存储介质
CN111159193A (zh) * 2019-12-27 2020-05-15 掌迅亿通(北京)信息科技有限公司 多层一致性哈希环及其在创建分布式数据库中的应用
CN111338571A (zh) * 2020-02-18 2020-06-26 腾讯科技(深圳)有限公司 任务处理方法、装置、设备及存储介质
CN111522811A (zh) * 2020-03-18 2020-08-11 大箴(杭州)科技有限公司 数据库的处理方法及装置、存储介质、终端
CN112132683A (zh) * 2020-09-18 2020-12-25 泰康保险集团股份有限公司 指令下发的方法、装置、电子设备和存储介质
CN115878331A (zh) * 2023-02-09 2023-03-31 苏州浪潮智能科技有限公司 一种数据分配方法、装置、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备
CN105187547A (zh) * 2015-09-25 2015-12-23 浪潮(北京)电子信息产业有限公司 一种负载均衡方法与系统
US20160253119A1 (en) * 2015-02-26 2016-09-01 Nec Corporation Storage system, storage method, and recording medium
CN106484542A (zh) * 2016-09-06 2017-03-08 华为技术有限公司 一种处理分布式系统中重叠节点事件的方法与装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636286A (zh) * 2015-02-06 2015-05-20 华为技术有限公司 用于数据访问的方法和设备
US20160253119A1 (en) * 2015-02-26 2016-09-01 Nec Corporation Storage system, storage method, and recording medium
CN105187547A (zh) * 2015-09-25 2015-12-23 浪潮(北京)电子信息产业有限公司 一种负载均衡方法与系统
CN106484542A (zh) * 2016-09-06 2017-03-08 华为技术有限公司 一种处理分布式系统中重叠节点事件的方法与装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275873A (zh) * 2019-06-28 2019-09-24 重庆紫光华山智安科技有限公司 文件存储方法、装置、存储管理设备及存储介质
CN110377647A (zh) * 2019-07-30 2019-10-25 江门职业技术学院 一种基于分布式数据库需求信息查询方法及系统
CN110474978A (zh) * 2019-08-13 2019-11-19 上海陆家嘴国际金融资产交易市场股份有限公司 虚拟消息处理方调度方法、装置、计算机设备和存储介质
CN110474978B (zh) * 2019-08-13 2022-07-08 未鲲(上海)科技服务有限公司 虚拟消息处理方调度方法、装置、计算机设备和存储介质
CN111159193A (zh) * 2019-12-27 2020-05-15 掌迅亿通(北京)信息科技有限公司 多层一致性哈希环及其在创建分布式数据库中的应用
CN111159193B (zh) * 2019-12-27 2023-08-29 掌迅亿通(北京)信息科技有限公司 多层一致性哈希环及其在创建分布式数据库中的应用
CN111338571A (zh) * 2020-02-18 2020-06-26 腾讯科技(深圳)有限公司 任务处理方法、装置、设备及存储介质
CN111338571B (zh) * 2020-02-18 2021-08-17 腾讯科技(深圳)有限公司 任务处理方法、装置、设备及存储介质
CN111522811A (zh) * 2020-03-18 2020-08-11 大箴(杭州)科技有限公司 数据库的处理方法及装置、存储介质、终端
CN111522811B (zh) * 2020-03-18 2023-04-07 大箴(杭州)科技有限公司 数据库的处理方法及装置、存储介质、终端
CN112132683A (zh) * 2020-09-18 2020-12-25 泰康保险集团股份有限公司 指令下发的方法、装置、电子设备和存储介质
CN115878331A (zh) * 2023-02-09 2023-03-31 苏州浪潮智能科技有限公司 一种数据分配方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN109254729B (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
CN109254729A (zh) 一种对象存储的方法和装置
CN102457571B (zh) 一种云存储中数据均衡分布方法
Azar et al. The competitiveness of on-line assignments
EP3210134B1 (en) Composite partition functions
JP5514041B2 (ja) 識別子割当て方法及びプログラム
CN103229151B (zh) 一种分区扩展方法及装置
CN105721532A (zh) 一种节点管理方法及装置
CN107797865A (zh) 用户任务处理方法及应用服务器
US10296394B2 (en) Consistent hashing
CN110275873A (zh) 文件存储方法、装置、存储管理设备及存储介质
US9485309B2 (en) Optimal fair distribution among buckets of different capacities
CN109388351A (zh) 一种分布式数据存储的方法及相关装置
CN105657064A (zh) 基于虚拟节点存储优化的Swift负载均衡方法
KR20200059136A (ko) 이더리움 샤딩 환경에서 샤드 간 트랜잭션 로드 분배 방법
Chung et al. Parallelism versus memory allocation in pipelined router forwarding engines
Czumaj et al. Simple, deterministic, constant-round coloring in congested clique and MPC
CN109617989B (zh) 用于负载分配的方法、装置、系统和计算机可读介质
CN108920282A (zh) 一种支持负载均衡的内容副本生成、放置及更新方法
CN103036796B (zh) 路由信息更新方法及装置
CN115248811B (zh) 一种可扩展的协作式区块链区块存储方法以及装置
CN108763381B (zh) 基于一致性哈希算法的分表方法及设备
JP5948494B2 (ja) 三値連想メモリにおけるクラスタへのレコードの動的配分
CN114375565B (zh) 一种文件块下载方法及装置
Golab et al. Distributed data placement via graph partitioning
CN108520025A (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