CN109992196B - 索引数据的存储方法及装置、存储系统 - Google Patents
索引数据的存储方法及装置、存储系统 Download PDFInfo
- Publication number
- CN109992196B CN109992196B CN201711482151.5A CN201711482151A CN109992196B CN 109992196 B CN109992196 B CN 109992196B CN 201711482151 A CN201711482151 A CN 201711482151A CN 109992196 B CN109992196 B CN 109992196B
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- storage units
- index data
- main
- 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.)
- Active
Links
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
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
本申请公开了一种索引数据的存储方法及装置、存储系统,属于存储技术领域。所述方法用于存储系统中的管理组件,存储系统还包括x个存储节点,且每个存储节点包括至少一个存储单元,x个存储节点共包括n个存储单元,且任意两个存储单元的存储路径不同,x≥1,n≥2,所述方法包括:根据存储单元的总数n确定主分片个数m,1<m≤n;获取索引数据;根据主分片个数m,在存储系统中的m个存储单元上存储索引数据,其中,索引数据由m个主分片数据组成,m个主分片数据分别存储在m个存储单元上。本申请解决了分布式存储系统的性能较差的问题,提高了分布式存储系统的性能,本申请用于索引数据的存储。
Description
技术领域
本申请涉及存储技术领域,特别涉及一种索引数据的存储方法及装置、存储系统。
背景技术
随着存储技术的发展,具有较高容错性的分布式存储系统得到了广泛的应用。分布式存储系统包括多个存储节点,需要存储的数据通常会划分为多个数据块分别存储在该多个存储节点上。
相关技术中,每个存储节点包括多个磁盘。在存储数据前,需要在存储节点中的磁盘上构建待存储数据的索引数据。之后,再将该待存储数据存储在索引数据指示的存储地址。
但是,随着需要存储的数据越来越多,索引数据也会越来越多,若某一磁盘上存储了较多的索引数据,则会影响该磁盘所在的存储节点的性能,进而使得整个分布式存储系统的性能较差。
发明内容
本申请提供了一种索引数据的存储方法及装置、存储系统,可以解决分布式存储系统的性能较差的问题,所述技术方案如下:
第一方面,提供了一种索引数据的存储方法,用于存储系统中的管理组件,所述存储系统还包括x个存储节点,且每个所述存储节点包括至少一个存储单元,所述x个存储节点共包括n个所述存储单元,且任意两个所述存储单元的存储路径不同,x≥1,n≥2,所述方法包括:
根据所述存储单元的总数n确定主分片个数m,1<m≤n;
获取索引数据;
根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,其中,所述索引数据由m个主分片数据组成,所述m个主分片数据分别存储在所述m个存储单元上。
可选的,所述根据所述存储单元的总数n确定主分片个数m,包括:
判断所述存储单元的总数n是否小于或等于预设数量阈值;
在所述存储单元的总数n小于或等于所述预设数量阈值时,确定m=n;
在所述存储单元的总数n大于所述预设数量阈值时,根据预设公式确定m,m<n;
可选的,在所述获取索引数据之后,所述方法还包括:
在所述存储系统中存储节点的总数大于1时,生成所述m个主分片数据中每个主分片数据的y个副本数据,1≤y<x,且在所述存储单元的总数n大于所述预设数量阈值时,n≥m+y·m;
在所述存储系统中存储生成的y·m个副本数据,使得每个所述主分片数据与其副本数据位于不同的所述存储节点上,且每个所述存储节点上存储的任意两个副本数据不同。
可选的,所述在所述存储系统中存储生成的y·m个副本数据,包括:
在所述存储单元的总数n小于或等于所述预设数量阈值时,将所述y·m个副本数据分为m组副本数据,并在所述m个存储单元上分别存储所述m组副本数据;
在所述存储单元的总数n大于所述预设数量阈值时,在所述存储系统中除所述m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
可选的,所述m个存储单元和所述y·m个存储单元位于多个存储节点上,所述多个存储节点中的每个存储节点上均存储有主分片数据。
可选的,所述获取索引数据,包括:
根据所述主分片个数以及待生成的索引数据,生成所述m个主分片数据;
所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:在所述m个存储单元上分别存储生成的所述m个主分片数据。
可选的,所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:
在所述存储系统中存储所述索引数据;
根据所述主分片个数m将所述存储系统中存储的索引数据切分为m个主分片数据;
对所述m个主分片数据中的至少一个主分片数据进行迁移,以使得所述m个主分片数据分别存储在所述m个存储单元上。
可选的,每个所述存储节点上均设置有弹性搜索ES组件,所述管理组件为任一所述存储节点上的ES组件,所述存储单元为磁盘。
第二方面,提供了一种索引数据的存储装置,其特征在于,用于存储系统中的管理组件,所述存储系统还包括x个存储节点,且每个所述存储节点包括至少一个存储单元,所述x个存储节点共包括n个所述存储单元,且任意两个所述存储单元的存储路径不同,x≥1,n≥2,所述索引数据的存储装置包括:
确定模块,用于根据所述存储单元的总数n确定主分片个数m,1<m≤n;
获取模块,用于获取索引数据;
第一存储模块,用于根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,其中,所述索引数据由m个主分片数据组成,所述m个主分片数据分别存储在所述m个存储单元上。
可选的,所述确定模块用于:
判断所述存储单元的总数n是否小于或等于预设数量阈值;
在所述存储单元的总数n小于或等于所述预设数量阈值时,确定m=n;
在所述存储单元的总数n大于所述预设数量阈值时,根据预设公式确定m,m<n;
可选的,所述索引数据的存储装置还包括:
生成模块,用于在所述存储系统中存储节点的总数大于1时,生成所述m个主分片数据中每个主分片数据的y个副本数据,1≤y<x,且在所述存储单元的总数n大于所述预设数量阈值时,n≥m+y·m;
第二存储模块,用于在所述存储系统中存储生成的y·m个副本数据,使得每个所述主分片数据与其副本数据位于不同的所述存储节点上,且每个所述存储节点上存储的任意两个副本数据不同。
可选的,所述第二存储模块用于:
在所述存储单元的总数n小于或等于所述预设数量阈值时,将所述y·m个副本数据分为m组副本数据,并在所述m个存储单元上分别存储所述m组副本数据;
在所述存储单元的总数n大于所述预设数量阈值时,在所述存储系统中除所述m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
可选的,所述m个存储单元和所述y·m个存储单元位于多个存储节点上,所述多个存储节点中的每个存储节点上均存储有主分片数据。
可选的,所述获取模块用于:
根据所述主分片个数以及待生成的索引数据,生成所述m个主分片数据;
所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:在所述m个存储单元上分别存储生成的所述m个主分片数据。
可选的,所述第一存储模块用于:
在所述存储系统中存储所述索引数据;
根据所述主分片个数m将所述存储系统中存储的索引数据切分为m个主分片数据;
对所述m个主分片数据中的至少一个主分片数据进行迁移,以使得所述m个主分片数据分别存储在所述m个存储单元上。
可选的,每个所述存储节点上均设置有弹性搜索ES组件,所述管理组件为任一所述存储节点上的ES组件,所述存储单元为磁盘。
第三方面,提供了一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现第一方面所述的索引数据的存储方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,
所述计算机程序被处理器执行时实现第一方面所述的索引数据的存储方法。
第五方面,提供了一种数据传输系统,所述数据传输系统包括:管理组件和x个存储节点,每个所述存储节点均包括具有不同存储路径的多个存储单元,
所述管理组件包括第二方面所述的索引数据的存储装置;
或者,所述管理组件包括第三方面计算机设备。
本申请提供的技术方案带来的有益效果是:
将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据均较少,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种索引数据的存储方法;
图2为本发明实施例提供的另一种索引数据的存储方法;
图3为本发明实施例提供的一种确定主分片个数的方法流程图;
图4为本发明实施例提供的一种分配数据和副本数据的存储示意图;
图5为本发明实施例提供的另一种分配数据和副本数据的存储示意图;
图6为本发明实施例提供的一种主分片数据的存储示意图;
图7为本发明实施例提供的另一种索引数据的存储方法的方法流程图;
图8为本发明实施例提供的一种索引数据的存储装置的结构示意图;
图9为本发明实施例提供的另一种索引数据的存储装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本发明实施例提供了一种存储系统,该存储系统可以包括:管理组件和x个存储节点。
其中,每个存储节点可以包括至少一个存储单元(该存储单元可以为磁盘),该x个存储节点共包括n个存储单元,且该n个存储单元中任意两个存储单元的存储路径不同,x≥1,n≥2。该管理组件可以与该x个存储节点中的每个存储节点连接。示例的,每个存储节点上可以设置有弹性搜索(英文:elasticsearch;简称:ES)组件,且该x个存储节点相互连接。该管理组件可以为该x个存储节点中任意一个存储节点上的ES组件。
图1为本发明实施例提供的一种索引数据的存储方法,该方法可以用于存储系统中的管理组件,如图1所示,该索引数据的存储方法可以包括:
步骤101、根据存储单元的总数n确定主分片个数m,1<m≤n;
步骤102、根据待生成的索引数据以及主分片个数m生成m个主分片数据,m个主分片数据组成索引数据;
步骤103、在存储系统中的m个存储单元上分别存储m个主分片数据。
综上所述,由于本发明实施例提供的索引数据的存储方法中,将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据均较少,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
图2为本发明实施例提供的另一种索引数据的存储方法,该方法可以用于存储系统中的管理组件,如图2所示,该索引数据的存储方法可以包括:
步骤201、根据存储单元的总数n确定主分片个数m,1<m≤n。
管理组件可以与存储系统中的每个存储节点连接,每个存储节点上均具有多个存储单元(如磁盘),该管理组件能够获取该存储系统中所有存储单元的总数n。之后,管理组件可以根据存储单元的总数n确定主分片个数m,以使得1<m≤n。
需要说明的是,管理组件可以通过多种实现方式确定主分片个数m,本发明实施例中将以以下一种实现方式进行举例说明。
图3为本发明实施例提供的一种确定主分片个数的方法流程图,如图3所示,步骤201可以包括:
步骤2011、判断存储单元的总数n是否小于或等于预设数量阈值。在存储单元的总数n小于或等于预设数量阈值时,执行步骤2012;在存储单元的总数n大于预设数量阈值时,执行步骤2013。
比如,存储系统包括三个存储节点,且该三个存储节点的系统物理核数分别为3、4和5,则该存储系统中存储节点的最小系统物理核数为3、4和5中的最小值3。将该最小系统物理核数代入预设数量阈值公式可以得到该预设数量阈值为5.5。
步骤2012、确定m=n。
当步骤2011中的判断结果为存储单元的总数n小于或等于预设数量阈值,则管理组件可以确定m=n。
步骤2013、根据预设公式确定m,m<n。
当步骤2011中的判断结果为存储单元的总数n大于预设数量阈值,则管理组件可以根据预设公式确定一个小于n的m。
步骤202、根据主分片个数以及待生成的索引数据,生成能够组成该索引数据的m个主分片数据。
管理组件在步骤201中已经确定了主分片个数m,因此,在步骤202中管理组件可以根据主分片个数以及待生成的索引数据,直接生成m个主分片数据,该m个主分片数据能够组成该索引数据。
步骤203、在存储系统中存储节点的总数大于1时,生成m个主分片数据中每个主分片数据的y个副本数据,1≤y<x。
需要说明的是,当存储系统包括一个存储节点时,该存储系统可以称为单节点存储系统,当存储系统包括多个存储节点,且存储节点之间通过远程过程调用(英文:RemoteProcedure Call;简称:RPC)协议相互通信时,该存储系统可以称为分布式存储系统。
当该存储系统为分布式存储系统时,管理组件可以在生成m个主分片数据后,分别生成每个主分片数据的副本数据,也即是,对每个主分片数据进行复制得到其副本数据。
可选的,管理组件可以为每个主分片数据生成至少一个副本数据。该副本数据用于防止该主分片数据无法访问时,作为备用的主分片数据。当每个主分片数据具有多个副本数据时,该存储系统的容灾效果较好。当每个主分片数据具有一个副本数据时,每个主分片数据的副本数据较少,此时,存储系统中的可用存储空间增多。
需要说明的是,在存储单元的总数n大于预设数量阈值时,每个主分片数据的副本数据的个数y需要满足:n≥m+y·m。
步骤204、在存储系统中存储生成的主分片数据和副本数据。
在存储系统中存储生成的主分片数据时,可以在存储系统中的m个存储单元上分别存储之前生成的m个主分片数据。也即是,将之前生成的m个主分片数据分别存储在不同的存储单元上。
在存储副本数据时,可以根据步骤201中确定出的存储单元的总数n与预设数量阈值的大小关系,在存储系统中对生成的副本数据进行存储。且在存储该副本数据时,需要保证每个主分片数据与其副本数据位于不同的存储节点上,且每个存储节点上存储的任意两个副本数据不同。从而保证每个副本数据均能够有效的对其主分片数据进行容灾,在每个主分片数据所在的存储节点故障时,该主分片数据的副本数据所在的存储节点还能正常工作。
一方面,在存储单元的总数n小于或等于预设数量阈值时,可以在该m个存储单元上存储生成的y·m个副本数据,并使得m个存储单元中的每个存储单元上存储有y个副本数据。也即是,将生成的y·m个副本数据划分为m组副本数据,并在该m个存储单元上分别存储m组副本数据。另一方面,在存储单元的总数n大于预设数量阈值时,在存储系统中除m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
也即是,管理组件在存储主分片数据和副本数据时,将m个主分片数据分别存储在不同的存储单元上,将y·m个副本数据也分别存储在不同的存储单元上,从而使得主分片数据和副本数据都能够均匀的存储在存储系统中的存储单元上,从而能够提高存储系统中存储单元的负载均衡程度。
需要说明的是,m个存储单元和y·m个存储单元可以位于多个存储节点上,且该多个存储节点中的每个存储节点上均可以存储有主分片数据。这样一来,就实现了在多个存储节点上分别存储主分片数据,提高了存储系统中存储节点的负载均衡程度以及并发读写性能。
可选的,该多个存储节点包括u个第一存储节点和v个第二存储节点,u和v为大于或等于1的整数,第一存储节点中存储单元的个数为偶数,第二存储节点中存储单元的个数为奇数,存储单元的总数n大于预设数量阈值,y=1。在u个第一存储节点中,第k个第一存储节点上存储的主分片数据的个数和副本数据的个数均为其中,uk为第k个第一存储节点中存储单元的个数,1≤k≤u。
需要说明的是,无论u为偶数还是奇数,第k个第一存储节点上的主分片数据的个数为也即是第一存储节点的个数并不会影响第一存储节点上存储的主分片数据的个数,但是,第二存储节点的个数会影响第二存储节点上存储的主分片个数。
示例的,当v为偶数时,假设i为小于v的任一奇数,j为小于或等于v的任一非零偶数,则在v个第二存储节点中,第i个第二存储节点上存储的主分片数据的个数为第i个第二存储节点上存储的副本数据的个数为第j个第二存储节点上存储的主分片数据的个数为第j个第二存储节点上存储的副本数据的个数为其中,vi为第i个第二存储节点中存储单元的个数,vj为第j个第二存储节点中存储单元的个数;
当v为奇数时,假设i为小于或等于v的任一奇数,j为小于v的任一非零偶数,则在v个第二存储节点中,第i个第二存储节点上存储的副本数据的个数为第j个第二存储节点上存储的主分片数据的个数为第j个第二存储节点上存储的副本数据的个数为其中,vi为第i个第二存储节点中存储单元的个数,vj为第j个第二存储节点中存储单元的个数,且当i<v时,第i个第二存储节点上存储的主分片数据的个数为当i=v时,第i个第二存储节点上存储的主分片数据的个数为
图4为本发明实施例提供的一种分配数据和副本数据的存储示意图,如图4所示,该存储系统共包括三个存储节点,分别为存储节点1、存储节点2和存储节点3。其中,存储节点1包括三个存储单元,存储节点2包括三个存储单元,存储节点3包括两个存储单元,该存储系统共包括8个存储单元。若8小于或等于预设数量阈值并且需要为每个主分片数据生成一个副本数据,则可以确定y等于1,主分片数据的个数m等于8,副本数据的个数等于8。此时,可以在每个存储单元上存储一个主分片数据和一个副本数据。
又示例的,图5为本发明实施例提供的另一种分配数据和副本数据的存储示意图,如图5所示,该存储系统共包括三个存储节点,分别为存储节点1、存储节点2和存储节点3。其中,存储节点1包括三个存储单元,存储节点2包括三个存储单元,存储节点3包括两个存储单元,该存储系统共包括8个存储单元。若8大于预设数量阈值并且需要为每个主分片数据生成一个副本数据,则可以确定y等于1,主分片数据的个数m等于4,副本数据的个数等于4。此时,可以在每个存储单元上存储一个主分片数据或一个副本数据。如在存储节点1中的三个存储单元中分别存储两个主分片数据和一个副本数据,在存储节点2中的三个存储单元中分别存储一个主分片数据和两个副本数据,在存储节点3中的两个存储单元中分别存储一个主分片数据和一个副本数据。
另外,当存储系统中存储节点的总数为1时,管理组件仅生成了能够组成索引数据的m个主分片数据,且并未生成每个主分片数据的副本数据,因此,在步骤204中管理节点只需要在存储系统中将生成的主分片数据分别存储在m个存储单元上即可。图6为本发明实施例提供的一种主分片数据的存储示意图,如图6所示,存储系统仅包括一个存储节点,该存储节点包括三个存储单元,若3小于或等于则管理组件可以生成三个主分片数据,并将这三个主分片数据分别存储在三个存储单元上。
需要说明的是,当存储系统中存储节点的最小系统物理核数为p时,存储系统中每个存储节点至少能够提供个线程对主分片数据进行并发读写请求处理。在存储节点能够提供的线程个数大于被请求的主分片数据的个数(也称主分片个数m)时,该存储节点能够使用m个线程并发请求m个主分片数据,此时存储系统的并发读写性能达到最优状态。在该存储节点能够提供的线程个数小于主分片个数m时,该存储节点每次最多能够使用个线程并发请求m个主分片数据中的个主分片数据,此时,该存储节点需要对该m个主分片数据进行多次请求。
本发明实施例中,管理组件在确定主分片个数m时,若存储单元的总数n小于或等于则确定主分片个数m=n,且m小于或等于之后,管理组件可以将生成的m个主分片数据分别存储在m个存储单元中。此时,由于m小于或等于每个存储节点能够提供个线程中的m个线程并发请求该m个主分片数据。若存储单元的总数n大于则管理组件可以根据预设公式得到小于n的m,并生成m个主分片数据。之后,管理组件可以将m个主分片数据分别存储在m个存储单元中。也即在存储单元的总数n大于时,管理组件可以适当的减小主分片个数m,以增大存储节点能够并发请求的主分片数据的占比,从而尽可能的增多存储节点能够并发请求的主分片数据的个数,提高存储系统的数据并发请求性能。
实际应用中,在索引数据的数据量较小,且存储系统中存储节点较多的情况下,管理组件在根据预设公式计算得到m后,还可以判断m是否大于且m为的整数倍。在m大于且m不为的整数倍时,管理组件可以将根据预设公式计算得到的m减小为的整数倍(如三倍、四倍或五倍,该整数倍可以为经验值),并确定该减小后的m为主分片个数。
也即是,在m大于且m不为的整数倍时,管理组件可以将根据预设公式计算得到的m减小为的整数倍,并将减小后的m为主分片个数。另外,在m小于或等于或m大于且m为的整数倍时,管理组件可以直接将根据预设公式计算得到的m作为主分片个数。
也即是,在存储单元的总数n大于时,可以确定一个小于或等于的主分片个数m,或者确定一个大于且为的整数倍的主分片个数m,从而增大存储节点能够并发请求的主分片数据的占比,尽可能的增多存储节点能够并发请求的主分片数据的个数,进一步的提高存储系统的数据并发请求性能。
综上所述,由于本发明实施例提供的索引数据的存储方法中,将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据较均衡,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
图7为本发明实施例提供的另一种索引数据的存储方法的方法流程图,该方法可以用于存储系统中的管理组件,如图7所示,该索引数据的存储方法可以包括:
步骤701、根据存储单元的总数n确定主分片个数m,1<m≤n。
需要说明的是,步骤701可以参考步骤201,本发明实施例在此不做赘述。
步骤702、生成并在存储系统中存储索引数据。
步骤702中管理组件可以参考相关技术中生成并存储索引数据的方式,生成整个索引数据,并在存储系统中(如在存储系统中的一个或多个存储节点上存储索引数据)存储该索引数据。
步骤703、根据主分片个数m,将索引数据切分为m个主分片数据。
在生成索引数据,并确定主分片个数m后,可以根据该主分片个数m,将索引数据切分为m个主分片数据,该m个主分片数据能够组成索引数据。
步骤704、对m个主分片数据中的至少一个主分片数据进行迁移,以使得m个主分片数据分别存储在m个存储单元上。
在确定m个主分片数据后,管理组件可以为该m个主分片数据分配存储单元,并利用自动化迁移工具对需要迁移的主分片数据中的至少一个主分片数据进行迁移,以使得m个主分片数据分别存储在m个存储单元上。
由于自动化迁移工具能够自动对主分片数据中的至少一个主分片数据进行迁移,因此,可以在线对数据进行自动迁移,以使得对主分片数据的迁移不会影响存储系统的读功能,且无需在迁移数据后手动对存储单元的配置信息进行修改。
步骤705、在存储系统中存储节点的总数大于1时,生成m个主分片数据中每个主分片数据的y个副本数据,1≤y<x。
需要说明的是,步骤705可以参考步骤203,本发明实施例在此不做赘述。
步骤706、在存储系统中存储副本数据。
需要说明的是,步骤706可以参考步骤204中存储副本数据的过程,本发明实施例在此不做赘述。
综上所述,由于本发明实施例提供的索引数据的存储方法中,将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据较均衡,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
图8为本发明实施例提供的一种索引数据的存储装置的结构示意图,用于存储系统中的管理组件,存储系统还包括x个存储节点,且每个存储节点包括至少一个存储单元,x个存储节点共包括n个存储单元,且任意两个存储单元的存储路径不同,x≥1,n≥2。如图8所示,该索引数据的存储装置80可以包括:
确定模块801,用于根据所述存储单元的总数n确定主分片个数m,1<m≤n;
获取模块802,用于获取索引数据;
第一存储模块803,用于根据主分片个数m,在存储系统中的m个存储单元上存储索引数据,其中,索引数据由m个主分片数据组成,m个主分片数据分别存储在m个存储单元上。
综上所述,由于本发明实施例提供的索引数据的存储装置中,确定模块确定了主分片个数m,第一存储模块将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据较均衡,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
可选的,确定模块801可以用于:判断存储单元的总数n是否小于或等于预设数量阈值;在存储单元的总数n小于或等于预设数量阈值时,确定m=n;在存储单元的总数n大于预设数量阈值时,根据预设公式确定m,m<n;其中,预设数量阈值为p为存储系统中存储节点的最小系统物理核数。
可选的,图9为本发明实施例提供的另一种索引数据的存储装置的结构示意图,如图9所示,在图8的基础上,该索引数据的存储装置80还可以包括:
生成模块804,用于在存储系统中存储节点的总数大于1时,生成m个主分片数据中每个主分片数据的y个副本数据,1≤y<x,且在所述存储单元的总数n大于所述预设数量阈值时,n≥m+y·m;
第二存储模块805,用于在存储系统中存储生成的y·m个副本数据,使得每个主分片数据与其副本数据位于不同的存储节点上,且每个存储节点上存储的任意两个副本数据不同。
可选的,第二存储模块805可以用于:在存储单元的总数n小于或等于预设数量阈值时,将y·m个副本数据分为m组副本数据,并在m个存储单元上分别存储m组副本数据;在存储单元的总数n大于预设数量阈值时,在存储系统中除m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
可选的,m个存储单元和y·m个存储单元位于多个存储节点上,多个存储节点中的每个存储节点上均存储有主分片数据。
可选的,获取模块802可以用于:根据主分片个数以及待生成的索引数据,生成m个主分片数据;根据主分片个数m,在存储系统中的m个存储单元上存储索引数据,包括:在m个存储单元上分别存储生成的m个主分片数据。
可选的,第一存储模块803可以用于:在存储系统中存储索引数据;根据所述主分片个数m将存储系统中存储的索引数据切分为m个主分片数据;对所述m个主分片数据中的至少一个主分片数据进行迁移,以使得m个主分片数据分别存储在m个存储单元上。
可选的,每个存储节点上均设置有弹性搜索ES组件,管理组件为任一存储节点上的ES组件,存储单元为磁盘。
综上所述,由于本发明实施例提供的索引数据的存储装置中,确定模块确定了主分片个数m,第一存储模块将索引数据分为m个主分片数据,并将这m个主分片数据分别存储在m个存储单元上,从而使得每个存储单元上存储的索引数据较均衡,提高了该存储系统中存储单元的负载均衡程度,提高了存储系统的性能。
本发明实施例提供了一种计算机设备,该计算机设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述索引数据的存储方法。
本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述索引数据的存储方法。
需要说明的是,本发明实施例提供的方法实施例能够与相应的装置实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种索引数据的存储方法,其特征在于,用于存储系统中的管理组件,所述存储系统还包括x个存储节点,每个所述存储节点上均包括弹性搜索ES组件,所述管理组件为任一所述存储节点上的ES组件,每个所述存储节点还包括至少一个存储单元,所述x个存储节点共包括n个所述存储单元,且任意两个所述存储单元的存储路径不同,x≥1,n≥2,所述方法包括:
根据所述存储单元的总数n确定主分片个数m,1<m≤n;
获取索引数据;
根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,其中,所述索引数据由m个主分片数据组成,所述m个主分片数据分别存储在所述m个存储单元上。
3.根据权利要求2所述的方法,其特征在于,在所述获取索引数据之后,所述方法还包括:
在所述存储节点的总数x大于1时,生成所述m个主分片数据中每个主分片数据的y个副本数据,1≤y<x,且在所述存储单元的总数n大于所述预设数量阈值时,n≥m+y·m;
在所述存储系统中存储生成的y·m个副本数据,使得每个所述主分片数据与其副本数据位于不同的所述存储节点上,且每个所述存储节点上存储的任意两个副本数据不同。
4.根据权利要求3所述的方法,其特征在于,所述在所述存储系统中存储生成的y·m个副本数据,包括:
在所述存储单元的总数n小于或等于所述预设数量阈值时,将所述y·m个副本数据分为m组副本数据,并在所述m个存储单元上分别存储所述m组副本数据;
在所述存储单元的总数n大于所述预设数量阈值时,在所述存储系统中除所述m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
5.根据权利要求4所述的方法,其特征在于,所述m个存储单元和所述y·m个存储单元位于多个存储节点上,所述多个存储节点中的每个存储节点上均存储有主分片数据。
7.根据权利要求1至6任一所述的方法,其特征在于,所述获取索引数据,包括:
根据所述主分片个数m以及待生成的索引数据,生成所述m个主分片数据;
所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:在所述m个存储单元上分别存储生成的所述m个主分片数据。
8.根据权利要求1至6任一所述的方法,其特征在于,所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:
在所述存储系统中存储所述索引数据;
根据所述主分片个数m将所述存储系统中存储的索引数据切分为m个主分片数据;
对所述m个主分片数据中的至少一个主分片数据进行迁移,以使得所述m个主分片数据分别存储在所述m个存储单元上。
9.根据权利要求1所述的方法,其特征在于,
所述存储单元为磁盘。
10.一种索引数据的存储装置,其特征在于,用于存储系统中的管理组件,所述存储系统还包括x个存储节点,每个所述存储节点上均包括弹性搜索ES组件,所述管理组件为任一所述存储节点上的ES组件,每个所述存储节点还包括至少一个存储单元,所述x个存储节点共包括n个所述存储单元,且任意两个所述存储单元的存储路径不同,x≥1,n≥2,所述索引数据的存储装置包括:
确定模块,用于根据所述存储单元的总数n确定主分片个数m,1<m≤n;
获取模块,用于获取索引数据;
第一存储模块,用于根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,其中,所述索引数据由m个主分片数据组成,所述m个主分片数据分别存储在所述m个存储单元上。
12.根据权利要求11所述的索引数据的存储装置,其特征在于,所述索引数据的存储装置还包括:
生成模块,用于在所述存储系统中存储节点的总数大于1时,生成所述m个主分片数据中每个主分片数据的y个副本数据,1≤y<x,且在所述存储单元的总数n大于所述预设数量阈值时,n≥m+y·m;
第二存储模块,用于在所述存储系统中存储生成的y·m个副本数据,使得每个所述主分片数据与其副本数据位于不同的所述存储节点上,且每个所述存储节点上存储的任意两个副本数据不同。
13.根据权利要求12所述的索引数据的存储装置,其特征在于,所述第二存储模块用于:
在所述存储单元的总数n小于或等于所述预设数量阈值时,将所述y·m个副本数据分为m组副本数据,并在所述m个存储单元上分别存储所述m组副本数据;
在所述存储单元的总数n大于所述预设数量阈值时,在所述存储系统中除所述m个存储单元之外的y·m个存储单元上分别存储生成的y·m个副本数据。
14.根据权利要求13所述的索引数据的存储装置,其特征在于,所述m个存储单元和所述y·m个存储单元位于多个存储节点上,所述多个存储节点中的每个存储节点上均存储有主分片数据。
16.根据权利要求10至15任一所述的索引数据的存储装置,其特征在于,所述获取模块用于:
根据所述主分片个数m以及待生成的索引数据,生成所述m个主分片数据;
所述根据所述主分片个数m,在所述存储系统中的m个存储单元上存储所述索引数据,包括:在所述m个存储单元上分别存储生成的所述m个主分片数据。
17.根据权利要求10至15任一所述的索引数据的存储装置,其特征在于,所述第一存储模块用于:
在所述存储系统中存储所述索引数据;
根据所述主分片个数m将所述存储系统中存储的索引数据切分为m个主分片数据;
对所述m个主分片数据中的至少一个主分片数据进行迁移,以使得所述m个主分片数据分别存储在所述m个存储单元上。
18.根据权利要求10所述的索引数据的存储装置,其特征在于,
所述存储单元为磁盘。
19.一种计算机设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现权利要求1至9任一所述的索引数据的存储方法。
20.一种数据传输系统,其特征在于,所述数据传输系统包括:管理组件和x个存储节点,每个所述存储节点均包括具有不同存储路径的多个存储单元,
所述管理组件包括权利要求10至18任一所述的索引数据的存储装置;
或者,所述管理组件包括权利要求19所述的计算机设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711482151.5A CN109992196B (zh) | 2017-12-29 | 2017-12-29 | 索引数据的存储方法及装置、存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711482151.5A CN109992196B (zh) | 2017-12-29 | 2017-12-29 | 索引数据的存储方法及装置、存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992196A CN109992196A (zh) | 2019-07-09 |
CN109992196B true CN109992196B (zh) | 2022-05-17 |
Family
ID=67109337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711482151.5A Active CN109992196B (zh) | 2017-12-29 | 2017-12-29 | 索引数据的存储方法及装置、存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992196B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225362B (zh) * | 2020-02-06 | 2024-04-05 | 北京京东振世信息技术有限公司 | 服务器集群系统和服务器集群系统的实现方法 |
CN112711382B (zh) * | 2020-12-31 | 2024-04-26 | 百果园技术(新加坡)有限公司 | 基于分布式系统的数据存储方法、装置和存储节点 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258036A (zh) * | 2013-05-15 | 2013-08-21 | 广州一呼百应网络技术有限公司 | 一种基于p2p的分布式实时搜索引擎 |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN106201350A (zh) * | 2016-07-07 | 2016-12-07 | 华为技术有限公司 | 存储数据的方法、存储器和计算机系统 |
CN106302702A (zh) * | 2016-08-10 | 2017-01-04 | 华为技术有限公司 | 数据的分片存储方法、装置及系统 |
CN106708996A (zh) * | 2016-12-19 | 2017-05-24 | 北京天广汇通科技有限公司 | 用于对关系数据库进行全文搜索的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012032727A1 (en) * | 2010-09-09 | 2012-03-15 | Nec Corporation | Storage system |
US10671585B2 (en) * | 2012-01-31 | 2020-06-02 | Pure Storage, Inc. | Storing indexed data to a dispersed storage network |
-
2017
- 2017-12-29 CN CN201711482151.5A patent/CN109992196B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258036A (zh) * | 2013-05-15 | 2013-08-21 | 广州一呼百应网络技术有限公司 | 一种基于p2p的分布式实时搜索引擎 |
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN106201350A (zh) * | 2016-07-07 | 2016-12-07 | 华为技术有限公司 | 存储数据的方法、存储器和计算机系统 |
CN106302702A (zh) * | 2016-08-10 | 2017-01-04 | 华为技术有限公司 | 数据的分片存储方法、装置及系统 |
CN106708996A (zh) * | 2016-12-19 | 2017-05-24 | 北京天广汇通科技有限公司 | 用于对关系数据库进行全文搜索的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109992196A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10942828B2 (en) | Method for storing data shards, apparatus, and system | |
CN107943421B (zh) | 一种基于分布式存储系统的分区划分方法及装置 | |
US10331641B2 (en) | Hash database configuration method and apparatus | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
CN106339386B (zh) | 数据库弹性调度方法以及装置 | |
US10127281B2 (en) | Dynamic hash table size estimation during database aggregation processing | |
CN106843745A (zh) | 容量扩展方法及装置 | |
CN111290699B (zh) | 数据迁移方法、装置及系统 | |
CN113656501B (zh) | 一种数据读取方法、装置、设备以及存储介质 | |
CN110569302A (zh) | 一种基于lucene的分布式集群的物理隔离的方法及装置 | |
CN109992196B (zh) | 索引数据的存储方法及装置、存储系统 | |
US20200341639A1 (en) | Lattice layout of replicated data across different failure domains | |
CN112181736A (zh) | 分布式存储系统及分布式存储系统的配置方法 | |
WO2014184606A1 (en) | Identifying workload and sizing of buffers for the purpose of volume replication | |
CN111930713A (zh) | Ceph放置组的分配方法、装置、服务器及存储介质 | |
CN115061634A (zh) | 一种系统业务负载分配方法、装置、介质 | |
KR102326586B1 (ko) | 큰 규모 분산 행렬 곱 처리 방법 및 그 장치 | |
CN115834587A (zh) | 一种选择目标存储服务器的方法、装置及电子设备 | |
CN108153759B (zh) | 一种分布式数据库的数据传输方法、中间层服务器及系统 | |
US11093862B2 (en) | Locality aware data loading for machine learning | |
JP2006119741A (ja) | ストレージネットワークシステム及びホスト計算機並びに物理パス割当方法 | |
CN105740091B (zh) | 数据备份、恢复方法和设备 | |
CN111046004A (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN116954863A (zh) | 数据库调度方法、装置、设备及存储介质 | |
CN112748848A (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 |