CN113609245B - 一种索引的分片扩容方法及系统 - Google Patents

一种索引的分片扩容方法及系统 Download PDF

Info

Publication number
CN113609245B
CN113609245B CN202110707233.5A CN202110707233A CN113609245B CN 113609245 B CN113609245 B CN 113609245B CN 202110707233 A CN202110707233 A CN 202110707233A CN 113609245 B CN113609245 B CN 113609245B
Authority
CN
China
Prior art keywords
index
data
new data
fragments
fragment
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
Application number
CN202110707233.5A
Other languages
English (en)
Other versions
CN113609245A (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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202110707233.5A priority Critical patent/CN113609245B/zh
Publication of CN113609245A publication Critical patent/CN113609245A/zh
Application granted granted Critical
Publication of CN113609245B publication Critical patent/CN113609245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/328Management therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种索引的分片扩容方法及系统,所述方法包括获取扩容的指令参数;基于所述指令参数,调用底层索引接口新增索引分片;对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据。本发明的分片扩容操作在增加了索引分片后,对分片进行标记,且对新输入数据的存储进行重定向,使新数据存储在新增分片上,优化ES分片数据的路由流程,使ES的分片路由算法逻辑不再受到固定单一因子(分片数)的限制,可以在原有分片的基础上进行扩容提升,进行扩容ES索引的数据存储容量,改善ES的分片管理方法提高索引管理和数据存储效率。

Description

一种索引的分片扩容方法及系统
技术领域
本发明涉及索引数据存储技术领域,尤其是一种索引的分片扩容方法及系统。
背景技术
ES(Elasticsearch,一种分布式全文数据库系统服务)服务器是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。
对于ES服务的分片生成规则,其核心在于ES分片数据写入的路由算法。ES索引的分片,在索引创建之初由ES的运行逻辑将用户设定的分片数代入该路由算法,从而生成索引分片,并引导后续的索引数据遵循该路由算法向分片内写入数据。ES分片路由算法的好处是及其简易有效地维护了ES的写入性能,可以准确地定位并均衡分配索引的每条数据,便于维护集群的稳定性和索引的易用性。
路由算法带来诸多好处的同时也存在极大的限制,因为路由算法以分片数量为算法的核心参数,分片数量一旦改变,ES将失去该索引内最初写入数据的路由值,导致无法再精确地定位到先前的数据,也就导致了索引的primary(ES索引的主分片)分片一旦确定便不能变,更限制了索引的分片扩容。一旦遭遇索引数据量异常增大需要进行分片扩容时,只能进行重新建立索引并迁移数据的操作。
发明内容
本发明提供了一种索引的分片扩容方法及系统,用于解决现有分片数据写入的路由算法在索引数据异常增大时,分片扩容操作复杂的问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种索引的分片扩容方法,所述方法包括以下步骤:
获取扩容的指令参数;
基于所述指令参数,调用底层索引接口新增索引分片;
对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据。
进一步地,所述获取扩容的指令参数之前,还包括步骤:
监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
进一步地,所述指令参数包括单索引分片数、单分片数据量和索引数据总量。
进一步地,所述对分片进行标记具体为:
以分片ID作为当前分片的标记位。
进一步地,所述将新数据定向传输至新增的索引分片中具体为:
将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据对应写入的分片标记位。
进一步地,在所述将新数据定向传输至新增的索引分片中之后,还包括步骤:
对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;
读取数据时,增加基于所述版本标记的定向查询。
本发明第二方面提供了一种索引的分片扩容系统,所述系统包括:
信息采集单元,用于获取扩容的指令参数;
扩容单元;基于所述指令参数,调用底层索引接口新增索引分片;
扩容处理单元;用于对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据。
进一步地,所述系统还包括与所述信息采集单元连接的监测单元;所述监测单元用于监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
进一步地,所述扩容处理单元包括:
标记子单元;以分片ID作为当前分片的标记位;
定向传输子单元,将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位。
进一步地,所述系统还包括数据重定向单元,所述数据重定向单元用于对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;在获取所述新数据时,增加基于所述版本标记的定向查询。
本发明第二方面所述索引的分片扩容系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、本发明的分片扩容操作在增加了索引分片后,对分片进行标记,且对新输入数据的存储进行重定向,使新数据存储在新增分片上,优化ES分片数据的路由流程,使ES的分片路由算法逻辑不再受到固定单一因子(分片数)的限制,可以在原有分片的基础上进行扩容提升,进行扩容ES索引的数据存储容量,改善ES的分片管理方法提高索引管理和数据存储效率。
2、根据数据读取的定向,可以将ES服务的数据读取逻辑切换至新增的分片路由优化规则,精准定位到新旧分片版本的记录,达到准确查询的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法的流程示意图;
图2是本发明所述方法其一实施例的流程示意图;
图3是本发明所述方法另一实施例的流程示意图;
图4是本发明所述系统的结构示意图;
图5是本发明所述系统其一实施例的结构示意图;
图6是本发明所述系统另一实施例的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明一种索引的分片扩容方法,包括以下步骤:
S1,获取扩容的指令参数;
S2,基于所述指令参数,调用底层索引接口新增索引分片;
S3,对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据。
步骤S1中的指令参数包括单索引分片数、单分片数据量和索引数据总量。
其中单索引分片数为一个索引内包含的分片的总数量;但分片数据量为一个分片中存储的数据容量,一般对于索引而言,一个分片的数据在30G左右对于索引检索性能较优;索引数据总量为一个索引内所有的数据总量,是所述单索引分片数与单分片数据量的乘积,通常情况下一条索引的总数据量也需要控制在一定的范围区间内(如10T),避免单个索引过大导致后续索引掉线恢复困难,增加搜索系统运维难度。
步骤S2中,基于步骤S1给定的指令参数,增加索引分片。分片扩容操作依赖ES服务自身的索引存储机制修改,底层实现为依赖Lucene(Lucene为搜索系统常用的底层服务组件,主要用于具体搜索数据的读写处理和索引结构构建)API(Application ProgrammingInterface,应用程序接口)进行新的分片的新增。
指令参数可以是单索引分片数、单分片数据量和索引数据总量中的一种或几种。如仅设置单索引分片数,则直接进行分片数量的扩容;如设置的指令参数为单分片数据量和索引数据总量,则根据索引数据总量与单分片数据量相除,再减去现有的分片数量,得到新增分片数。
指令参数的设置如单索引分片数设置为低于10个时进行扩容,且一次性扩容5个分片,还可以设置最大阈值当单索引分片数达到1000个时禁止进行分片扩容;单分片数据量可以限制为50G,当单分片数据量达到30G时启动扩容(50G只是一个阶段性监控值,并不影响后续继续存入数据)。
分片扩容指定数量后,同步ES服务元数据,将扩容分片的元信息同步加入,使索引的各项元信息结构完整。
步骤S3对扩容后的数据进行新入数据均衡,使索引分片的数据分布符合ES服务的合理分布规则,并通过切换路由规则,避免数据录入不合理的情形。
对分片进行标记具体为:以当前分片ID作为当前分片的标记位。
所述将新数据定向传输至新增的索引分片中具体为:将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位。将新数据定向传输至新增索引分片的过程采用跳涨转换存储的规则,改规则当新增分片出现时,新增分片的标记位对应增加,如分片由3个增加到5个时,标记位就会在0、1、2的基础上增加3、4,那么因为0、1、2三个分片的数据量已经达到一定程度,新的数据就需要跳开这三个旧的分片。在数据存储时采取跳存的方式,主动增加ID值,增加数即为扩容前版本分片数,这样就会将新数据存入新的分片中。将新数据定向的传输至最新加入的分片中,避免索引分片数据的不均衡情况存在,跳涨依据为跳过前一版本分片标记,引导数据实际存储位置为新增后的分片中。
如图2所示,本发明在所述获取扩容的指令参数之前,还包括步骤:
S0,监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
步骤S0中监控的分片包括单索引分片数、单分片数据量和索引数据总量等,数据状态包括当前已存入及未存入的数据量。
但索引分片数一般在索引定义时便被固定,在扩容场景中则是作为一个分片启动扩容的一个判断指标,假如用户进行了自定义配置,分片数在低于3个时启动分片扩容,而当前的分片数为2,则认为均衡性不符合要求。
均衡性的评估如监控到用户自主设定的单索引分片数小于3时进行分片扩容,且在扩容前检查索引整体是否符合分片扩容条件,比如单分片的数据量是否超过设定的30G的阈值,如果超过,则认为均衡性不符合要求。
上述指标中的某一项不符合均衡性条件,均会触发扩容操作。
下发指令参数的另一实现方式:用户通过后端配置或页面UI输入,进行主动的分片自定义扩容操作,与上述步骤S0中的自动模式同时进行,且为了保证用户能够以较大的权限介入到程序运行中,通常设置自定义模式的优先级高于自动模式。
如图3所示,本发明在所述将新数据定向传输至新增的索引分片中之后,还包括步骤:
对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;读取数据时,增加基于所述版本标记的定向查询。
以当前索引分片数取3为例,得到数据的版本标记1/3 1;2/3 2;3/3 0;4/3 1;5/32;6/3 0…可以发现随着数据id由1、2、3、4…慢慢增加,可以发现3个分片的情况下,数据的编号会在0、1、2三个编号中轮流存取,后续查询和写入数据都可以以分片数为除数基准进行定位该数据所在的分片位置。
如图4所示,本发明一种索引的分片扩容系统,包括信息采集单元1、扩容单元2和扩容处理单元3。
信息采集单元1用于获取扩容的指令参数;扩容单元2基于所述指令参数,调用底层索引接口新增索引分片;扩容处理单元3用于对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据。
扩容处理单元2包括标记子单元21和定向传输子单元22。
标记子单元21以分片ID作为当前分片的标记位;定向传输子单元22将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位。
如图5所示,所述系统还包括与所述信息采集单元、扩容单元分别连接的监测单元;所述监测单元用于监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
如图6所示,所述系统还包括数据重定向单元,所述数据重定向单元用于对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;在获取所述新数据时,增加基于所述版本标记的定向查询。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (7)

1.一种索引的分片扩容方法,其特征是,所述方法包括以下步骤:
获取扩容的指令参数;
基于所述指令参数,调用底层索引接口新增索引分片;
对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据;
所述对分片进行标记具体为:
以分片ID作为当前分片的标记位;
所述将新数据定向传输至新增的索引分片中具体为:
将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位;
在所述将新数据定向传输至新增的索引分片中之后,还包括步骤:
对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;
读取数据时,增加基于所述版本标记的定向查询。
2.根据权利要求1所述分片扩容方法,其特征是,所述获取扩容的指令参数之前,还包括步骤:
监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
3.根据权利要求1或2所述分片扩容方法,其特征是,所述指令参数包括单索引分片数、单分片数据量和索引数据总量。
4.一种索引的分片扩容系统,其特征是,所述系统包括:
信息采集单元,用于获取扩容的指令参数;
扩容单元;基于所述指令参数,调用底层索引接口新增索引分片;
扩容处理单元;用于对分片进行标记,将新数据定向传输至新增的索引分片中,所述新数据为新增索引分片后存储的数据;
所述对分片进行标记具体为:
以分片ID作为当前分片的标记位;
所述将新数据定向传输至新增的索引分片中具体为:
将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位;
在所述将新数据定向传输至新增的索引分片中之后,还包括步骤:
对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;
读取数据时,增加基于所述版本标记的定向查询。
5.根据权利要求4所述索引的分片扩容系统,其特征是,所述系统还包括与所述信息采集单元连接的监测单元;所述监测单元用于监控分片和数据状态,评估数据分布的均衡性,在所述均衡性不符合设定条件时,下发扩容的指令参数。
6.根据权利要求4或5所述索引的分片扩容系统,其特征是,所述扩容处理单元包括:
标记子单元;以分片ID作为当前分片的标记位;
定向传输子单元,将所述新数据的原存储ID值与扩容前的分片数相加,得到的数值为当前新数据写入分片对应的标记位。
7.根据权利要求6所述索引的分片扩容系统,其特征是,所述系统还包括数据重定向单元,所述数据重定向单元用于对新数据增加版本标记,以当前新数据所在的分片ID除以当前索引分片数的结果取余数,作为当前新数据的版本标记;在获取所述新数据时,增加基于所述版本标记的定向查询。
CN202110707233.5A 2021-06-24 2021-06-24 一种索引的分片扩容方法及系统 Active CN113609245B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110707233.5A CN113609245B (zh) 2021-06-24 2021-06-24 一种索引的分片扩容方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110707233.5A CN113609245B (zh) 2021-06-24 2021-06-24 一种索引的分片扩容方法及系统

Publications (2)

Publication Number Publication Date
CN113609245A CN113609245A (zh) 2021-11-05
CN113609245B true CN113609245B (zh) 2023-12-22

Family

ID=78303707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110707233.5A Active CN113609245B (zh) 2021-06-24 2021-06-24 一种索引的分片扩容方法及系统

Country Status (1)

Country Link
CN (1) CN113609245B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023216571A1 (zh) * 2022-05-11 2023-11-16 华为云计算技术有限公司 弹性搜索集群的资源调度方法、装置及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843933A (zh) * 2016-03-30 2016-08-10 电子科技大学 分布式内存列式数据库的索引建立方法
US9501506B1 (en) * 2013-03-15 2016-11-22 Google Inc. Indexing system
CN108427675A (zh) * 2017-02-13 2018-08-21 阿里巴巴集团控股有限公司 构建索引的方法及设备
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备
CN111371583A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
CN112084141A (zh) * 2019-06-14 2020-12-15 北京京东尚科信息技术有限公司 一种全文检索系统扩容方法、装置、设备及介质
CN112182328A (zh) * 2020-09-02 2021-01-05 北京三快在线科技有限公司 一种搜索引擎的扩容方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334548B2 (en) * 2019-01-31 2022-05-17 Thoughtspot, Inc. Index sharding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501506B1 (en) * 2013-03-15 2016-11-22 Google Inc. Indexing system
CN105843933A (zh) * 2016-03-30 2016-08-10 电子科技大学 分布式内存列式数据库的索引建立方法
CN108427675A (zh) * 2017-02-13 2018-08-21 阿里巴巴集团控股有限公司 构建索引的方法及设备
CN108897858A (zh) * 2018-06-29 2018-11-27 北京奇虎科技有限公司 分布式集群索引分片的评估方法及装置、电子设备
CN111371583A (zh) * 2018-12-26 2020-07-03 中兴通讯股份有限公司 服务器的扩容方法及装置、服务器、存储介质
CN112084141A (zh) * 2019-06-14 2020-12-15 北京京东尚科信息技术有限公司 一种全文检索系统扩容方法、装置、设备及介质
CN112182328A (zh) * 2020-09-02 2021-01-05 北京三快在线科技有限公司 一种搜索引擎的扩容方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于分布式内存数据库快速计算的设计与实现;李建林 等;信息通信;全文 *

Also Published As

Publication number Publication date
CN113609245A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
EP2735978A1 (en) Storage system and management method used for metadata of cluster file system
CN109213772A (zh) 数据存储方法及NVMe存储系统
KR102195836B1 (ko) 인덱스 관리 방법
CN103020204A (zh) 一种对分布式顺序表进行多维区间查询的方法及其系统
US20160294693A1 (en) Routing Lookup Method and Device, and Construction Method for B-tree Structure
US20080082525A1 (en) File storage system, file storing method and file searching method therein
CN113821171B (zh) 一种基于哈希表与lsm树的键值存储方法
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
WO2013109490A1 (en) Location independent files
CN106155915A (zh) 数据存储的处理方法及装置
CN103856516A (zh) 数据存储、读取方法及数据存储、读取装置
CN113609245B (zh) 一种索引的分片扩容方法及系统
CN114281762A (zh) 一种日志存储加速方法、装置、设备及介质
CN114817232A (zh) 访问数据的方法及装置
CN113704217A (zh) 一种分布式持久性内存文件系统中元数据及数据组织架构方法
CN104917788A (zh) 一种数据存储方法及装置
CN103310008A (zh) 一种云控制服务器及其文件索引方法
CN107430546B (zh) 一种文件更新方法及存储设备
CN102724301B (zh) 云数据库系统以及云数据读写处理方法、设备
CN112711564B (zh) 合并处理方法以及相关设备
CN111984198B (zh) 消息队列实现方法、装置及电子设备
CN112463073A (zh) 一种对象存储分布式配额方法、系统、设备和存储介质
WO2018210178A1 (zh) 文件存储方法和存储装置
CN111857556A (zh) 管理存储对象的元数据的方法、装置和计算机程序产品
CN114741382A (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