混合数据查找方法技术

技术编号:18939807 阅读:27 留言:0更新日期:2018-09-15 10:55
提供一种在包括多个存储设备的分布式环境中存储数据的方法,所述方法包括:接收存储所述数据的请求;通过将散列计算函数应用于与所述数据相关联的值来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应;基于所述权重选择所述多个块中的块;以及将所述数据存储在对应存储设备中,所述对应存储设备与所选择的块相对应。

Mixed data lookup method

Provided is a method for storing data in a distributed environment including a plurality of storage devices, including: receiving a request for storing the data; calculating a hash value by applying a hash calculation function to a value associated with the data; dividing the hash value into a plurality of weights, each weighting and a plurality of blocks. A block corresponds to a block; a block in the plurality of blocks is selected based on the weight; and the data is stored in a corresponding storage device corresponding to the selected block.

【技术实现步骤摘要】
混合数据查找方法相关申请的交叉引用本申请要求2017年3月1日递交的题为“HYBRIDDATALOOKUPMETHODS”的美国临时申请No.62/465,684的优先权和权益,其全部内容以引用方式并入于此。
根据本专利技术的实施例的一个或多个方面涉及分布式数据存储系统,并且更具体地涉及管理分布式环境中的数据(例如,通过使用键值固态驱动器(KVSSD))。
技术介绍
相关的分布式数据存储系统以不同的方式使用散列函数的输出来处理数据放置和缓存。相关技术文件系统使用基于信息节点(inode)的元数据来管理空间。这涉及将映射(文件系统标识(ID),文件中的偏移量)转换为设备逻辑块地址。读/写期间的元数据管理直接涉及对底层设备执行输入/输出(IO),导致更高的用户IO延迟。
技术实现思路
根据本专利技术的实施例的各方面涉及使用基于权重的方法来管理分布式环境中的数据的方法。根据本专利技术的实施例,提供一种在包括多个存储设备的分布式环境中存储数据的方法,所述方法包括:接收存储所述数据的请求;通过将散列计算函数应用于与所述数据相关联的值来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应;基于所述权重选择所述多个块中的块;以及将所述数据存储在对应存储设备中,所述对应存储设备与所选择的块相对应。所述分布式环境还可以包括多个存储设备空缺,所述多个存储设备空缺中的每一个指示用于添加未来的存储设备的保留地点。所述多个块中的每一个块可以与所述多个存储设备中的一个或所述多个存储设备空缺中的一个相对应。选择所述块可以包括:确定所述多个块中的最高权重的块;确定所述最高权重的块是与所述多个存储设备中的一个还是与所述多个存储设备空缺中的一个相对应;当所述最高权重的块与所述多个存储设备中的一个相对应时,选择所述最高权重的块;以及当所述最高权重的块与所述多个存储设备空缺中的一个相对应时:确定与所述多个存储设备相对应的所述多个块当中的具有最高权重的块;以及选择所述与所述多个存储设备相对应的所述多个块当中的具有最高权重的块。可以向所述多个存储设备和多个存储设备空缺中的每一个分配设备标识(ID),所述设备ID指示所述多个存储设备添加到所述分布式环境的顺序或者未来的多个存储设备将填充所述分布式环境中的所述多个存储设备空缺的顺序。每个所述块可以包括块ID,所述块ID等于与所述块对应的所述多个存储设备中的一个存储设备的设备ID或与所述块对应的所述多个存储设备空缺中的一个存储设备空缺的设备ID。当所述最高权重的块与所述多个存储设备中的一个相对应时,可以将所述数据存储在所述对应存储设备中的跳容器中,所述跳容器的对应跳数值等于零。当所述最高权重的块与所述存储设备空缺中的一个相对应时,可以将所述数据存储在所述对应存储设备中的跳容器中,所述跳容器的对应跳数值等于:所述最高权重的块的块ID减去分配给任何一个所述存储设备的最高设备ID。与特定跳容器相对应的跳数值可以指示:在将所述特定跳容器中的数据移动到新的存储设备之前要将另外多少个存储设备添加到所述分布式环境。所述方法还可以包括:确定与所述多个存储设备相对应的所述多个块中的第二高权重的块;以及将所述数据的副本存储在第二对应存储设备中,所述第二对应存储设备与所述第二高权重的块相对应。在所述分布式环境中,当接收到数据读取请求时,可以并行读取存储在所述对应存储设备中的所述数据的一部分和存储在所述第二对应存储设备中的所述数据的所述副本的不同部分。所述多个存储设备可以是键值固态驱动器(KVSSD)。所述跳容器可以是KVSSD容器。在每个所述KVSSD中,与同一块ID相关联的数据可以存储在同一KVSSD容器中。将所述散列值分割成多个权重可以包括:将所述散列值分割成长度均为Y比特的X个相等长度的值,其中X等于块的总数,Y等于所述散列值的以比特为单位的长度除以X,X和Y是整数。所述块的总数可以等于所述多个存储设备的总数与所述多个存储设备空缺的总数之和。所述多个存储设备可以是键值固态驱动器(KVSSD)。与所述数据相关联的值可以是所述数据的逻辑块地址(LBA)和所述数据的逻辑单元号(LUN)中的一个。根据本专利技术的实施例,提供一种将新的存储设备添加到包括多个存储设备的分布式环境中的方法,每个所述存储设备包括一个或多个跳容器,每个跳容器具有对应跳数值,所述方法包括:将位于所述多个存储设备中的每个存储设备的对应跳数值等于1的跳容器中的所有数据传送到所述新的存储设备。所述方法还可以包括:移除所述多个存储设备中的每个存储设备的对应跳数值等于1的跳容器;以及将大于零的所有对应跳数值减1。所述方法还可以包括:使用散列函数对与所传送的数据相对应的值进行散列计算;以及基于所述散列计算将所传送的数据存储在所述新的存储设备的一个或多个跳容器中。所述分布式环境可以包括多个存储设备空缺。存储所传送的数据可以包括:通过将散列计算函数应用于所述数据来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应,每个块与所述多个存储设备中的一个或所述多个存储设备空缺中的一个相对应;确定最高权重的块;确定所述最高权重的块是与所述新的存储设备还是与所述多个存储设备空缺中的一个相对应;当所述最高权重的块与所述新的存储设备相对应时,将所传送的数据存储在所述一个或多个跳容器中的跳数值为零的跳容器中;以及当所述最高权重的块与所述多个存储设备空缺中的一个相对应时,将所述数据存储在所述一个或多个跳容器中的如下跳容器中:所述跳容器的对应跳数值等于所述最高权重的块的块ID减去所述新的存储设备的设备ID。与特定跳容器相对应的跳数值可以指示:在将所述特定跳容器中的数据移动到新的存储设备之前要将另外多少个存储设备添加到所述分布式环境。在执行所述方法的同时,所述新的存储设备可以能够接受读取请求和写入请求。根据本专利技术的实施例,提供一种包括多个存储设备的分布式数据存储系统,其中,当要将数据存储到所述分布式数据存储系统时,通过将散列计算函数应用于与所述数据相关联的值来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应;选择所述多个块中的块;以及将所述数据存储在对应存储设备中,所述对应存储设备与所选择的块相对应。所述分布式数据存储系统还可以包括多个存储设备空缺,指示用于添加未来的多个存储设备的保留地点。所述多个存储设备中的每一个可以包括多个跳容器,并且每个跳容器可以具有对应跳数值,所述对应跳数值指示在移动所述数据之前需要添加的未来存储设备的数量。每一个块可以与所述多个存储设备中的一个或所述多个存储设备空缺中的一个相对应。当选择所述块时,可以确定所述多个块中的最高权重的块,并且可以确定所述最高权重的块是与所述多个存储设备中的一个还是与所述多个存储设备空缺中的一个相对应。当所述最高权重的块与所述多个存储设备中的一个相对应时,可以选择所述最高权重的块作为所选择的块;以及当所述最高权重的块与所述多个存储设备空缺中的一个相对应时,可以确定与所述多个存储设备相对应的所述多个块当中的具有最高权重的块,以及可以选择与所述多个存储设备相对应的所述多个块当中的具有最高权重的块作为所选择的块。当将新的存储设备添加到所述多个存储设备时,可以将位于所述多个存储设备中的每本文档来自技高网...

【技术保护点】
1.一种在包括多个存储设备的分布式环境中存储数据的方法,所述方法包括:接收存储所述数据的请求;通过将散列计算函数应用于与所述数据相关联的值来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应;基于所述权重选择所述多个块中的块;以及将所述数据存储在对应存储设备中,所述对应存储设备与所选择的块相对应。

【技术特征摘要】
2017.03.01 US 62/465,684;2017.05.08 US 15/589,8331.一种在包括多个存储设备的分布式环境中存储数据的方法,所述方法包括:接收存储所述数据的请求;通过将散列计算函数应用于与所述数据相关联的值来计算散列值;将所述散列值分割成多个权重,每个权重与多个块中的一个块相对应;基于所述权重选择所述多个块中的块;以及将所述数据存储在对应存储设备中,所述对应存储设备与所选择的块相对应。2.根据权利要求1所述的方法,其中所述分布式环境还包括多个存储设备空缺,所述多个存储设备空缺中的每一个指示用于添加未来的存储设备的保留地点,其中所述多个块中的每一个块与所述多个存储设备中的一个或所述多个存储设备空缺中的一个相对应,以及其中,选择所述块包括:确定所述多个块中的最高权重的块;确定所述最高权重的块是与所述多个存储设备中的一个还是与所述多个存储设备空缺中的一个相对应;当所述最高权重的块与所述多个存储设备中的一个相对应时,选择所述最高权重的块;以及当所述最高权重的块与所述多个存储设备空缺中的一个相对应时:确定所述多个块当中的与所述多个存储设备相对应的具有最高权重的块;以及选择所述多个块当中的与所述多个存储设备相对应的具有最高权重的块。3.根据权利要求2所述的方法,其中向所述多个存储设备和多个存储设备空缺中的每一个分配设备标识ID,所述设备ID指示所述多个存储设备添加到所述分布式环境的顺序或者未来的多个存储设备将填充所述分布式环境中的所述多个存储设备空缺的顺序,其中每个所述块包括块ID,所述块ID等于所述多个存储设备中的与所述块对应的一个存储设备的设备ID或所述多个存储设备空缺中的与所述块对应的一个存储设备空缺的设备ID,其中当所述最高权重的块与所述多个存储设备中的一个相对应时,将所述数据存储在所述对应存储设备中的跳容器中,所述跳容器的对应跳数值等于零,以及其中当所述最高权重的块与所述存储设备空缺中的一个相对应时,将所述数据存储在对应存储设备中的跳容器中,所述跳容器的对应跳数值等于:所述最高权重的块的块ID减去分配给任何一个所述存储设备的最高设备ID。4.根据权利要求3所述的方法,其中,与特定跳容器相对应的跳数值指示:在将所述特定跳容器中的数据移动到新的存储设备之前要将另外多少个存储设备添加到所述分布式环境。5.根据权利要求3所述的方法,还包括:确定所述多个块中的与所述多个存储设备相对应的第二高权重的块;以及将所述数据的副本存储在第二对应存储设备中,所述第二对应存储设备与所述第二高权重的块相对应,其中,在所述分布式环境中,当接收到数据读取请求时,并行读取存储在所述对应存储设备中的所述数据的一部分和存储在所述第二对应存储设备中的所述数据的所述副本的不同部分。6.根据权利要求3所述的方法,其中所述多个存储设备是键值固态驱动器KVSSD,其中所述跳容器是KVSSD容器,以及其中,在每个所述KVSSD中,与同一块ID相关联的数据存储在同一KVSSD容器中。7.根据权利要求1所述的方法,其中将所述散列值分割成多个权重包括:将所述散列值分割成长度均为Y比特的X个相等长度值,其中X等于块的总数,Y等于所述散列值的以比特为单位的长度除以X,X和Y是整数,以及其中,所述块的总数等于所述多个存储设备的总数与所述多个存储设备空缺的总数之和。8.根据权利要求1所述的方法,其中所述多个存储设备是键值固态驱动器KVSSD。9.根据权利要求1所述的方法,其中与所述数据相关联的值是所述数据的逻辑块地址LBA和所述数据的逻辑单元号LUN中的一个。10.一种将新的存储设...

【专利技术属性】
技术研发人员:贡内斯瓦拉·马里朴迪库马尔·坎特蒂
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

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

1