System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库,具体地说是基于hash算法和gossip协议的数据交互检验方法及系统。
技术介绍
1、kaiwudb集群生成自己的交互数据,kaiwudb交互数据分为控制数据和基础数据流,基础数据流分为采集点数据流、性能指标数据(数据规模、单位时间内插入速度、单位时间内查询速度、p95、p99等),运行指标数据(包括集群规模、集群资源占用、资源运行时间等)),健康指标数据(包括节点是否掉线、节点是否卡死、节点端口是否阻塞等),关键步骤如图1所示:(1)kaiwudb集群的节点加入kaiwudb的集群,(2)收集上报节点的交互数据,(3)kaiwudb集群节点校验集群内的交互数据,(4)落盘kaiwudb集群内的交互数据。
2、由于kaiwudb数据部署场景环境的多样性及交互数据的定制化需求,现有常规数据交互方案无法充分保障kaiwudb监控数据的安全性、扩展性、容错性、一致性收敛,无法满足交互效率等需求,并且因为常规数据交互功能的局限性,无法适用于kaiwudb的数据交互和校验的定制化需求。比如异地多中心、定制化项目、定制化消息类型方式、定制化数据上报方式等定制化需求。
3、数据交互和校验模块用于解决kaiwudb数据库的集群内数据交互和校验的需求,是保障数据库正常运行的关键问题。传统的数据交互管理方法虽然尽可能的收集交互数据、然后上报数据满足集群内交互的需求,但针对kaiwudb数据库的特殊定制化交互和校验需求,比如异地多中心、定制化项目、定制化消息类型方式、定制化数据上报方式等定制化需求,并且还
4、如何满足kaiwudb数据库的特殊定制化的数据交互需求,是需要解决的技术问题。
技术实现思路
1、本专利技术的技术任务是针对以上不足,提供基于hash算法和gossip协议的数据交互检验方法及系统,来解决如何满足kaiwudb数据库的特殊定制化的数据交互需求的技术问题。
2、第一方面,本专利技术一种基于hash算法和gossip协议的数据交互检验方法,应用于kaiwudb集群,用于通过数据交互和校验模块实现集群内节点之间数据交互和校验,所述方法包括如下步骤:
3、启动kaiwudb以及数据交互和校验模块,将数据交互和校验模块的配置信息加载至内存中,所述配置信息包括hash算法类型、集群配置信息以及定制数据交互规则,定制数据交互规则中定义有节点之间交互数据的格式、交互数据的存储规则以及显示规则,集群配置信息中定义有数据交互集群的层级规模;
4、对于新的节点,将节点加入数据交互集群中、并加入一个小集群中,数据交互集群中包括多个层级的小集群,每个小集群中包括一个选举的主节点和多个从节点,小集群内主节点定时向从节点发送心跳信息以监控从节点是否掉线;
5、对于每个小集群,从节点基于gossip协议将其交互数据以及hash校验码发送至同一小集群内其它节点、并周期性的将其交互数据以及hash校验码发送至对应主节点;主节点基于hash校验码对接收的交互数据进行验证后,将通过验证的交互数据推送至上一层级小集群,通过最高一层小集群的主节点对所有交互数据同步汇总,并将汇总后的交互数据落盘;
6、对于每个小集群,定时判断所述小集群的规模是否满足集群配置信息定义的层级规模,如果不符合,根据小集群内节点的加入时间调整数据交互集群的规模,将后加入小集群的节点加入其他小集群或者新建一个小集群;
7、基于配置信息定制ui界面,并通过定制的ui界面显示交互数据。
8、作为优选,启动kaiwudb以及数据交互和校验模块,包括如下步骤:
9、启动kaiwudb;
10、启动数据交互和校验模块,并判断数据交互和校验模块的配置信息是否存在,如果不存在,提示数据交互和校验模块启动失败,并提示缺少配置信息,并将提示信息记录于系统表,如果存在,加载配置信息至内存中。
11、作为优选,对于新的节点,将节点加入数据交互集群中、并加入一个小集群中,包括如下步骤:
12、对于最基层的小集群,基于集群配置信息,选取一个未达到预定规模的小集群作为目标集群,将节点推荐加入所述目标集群,或者,节点主动加入一个已经创建的最底层的小集群;
13、如果节点加入的小集群为掉线状态,节点加入失败,提示加上失败信息,并记录系统表中;
14、如果节点加入小集群后预定时间内未接收到其主节点发送的心跳信息,提示集群内节点疑似掉线,并记录系统表。
15、作为优选,对于每个小集群,小集群内节点之间基于gossip协议广播其身份信息和hash验证码至其它节点进行身份验证;
16、对于新加入小集群的节点,节点基于gossip协议广播其身份信息和hash验证码至主节点进行身份验证,通过验证后,主节点将小集群的集群信息和小集群内其他节点的身份信息推送至所述节点。
17、第二方面,本专利技术一种基于hash算法和gossip协议的数据交互检验系统,应用于kaiwudb集群,用于与数据交互和校验模块配合、通过如第一方面任一项所述的一种基于hash算法和gossip协议的数据交互检验方法实现集群内节点之间数据交互和校验,所述系统包括配置模块、集群更新模块、交互验证模块、小集群检测模块以及数据展示模块;
18、配置模块用于执行如下:启动kaiwudb以及数据交互和校验模块,将数据交互和校验模块的配置信息加载至内存中,所述配置信息包括hash算法类型、集群配置信息以及定制数据交互规则,定制数据交互规则中定义有节点之间交互数据的格式、交互数据的存储规则以及显示规则,集群配置信息中定义有数据交互集群的层级规模;
19、集群更新模块用于执行如下:对于新的节点,将节点加入数据交互集群中、并加入一个小集群中,数据交互集群中包括多个层级的小集群,每个小集群中包括一个选举的主节点和多个从节点,小集群内主节点定时向从节点发送心跳信息以监控从节点是否掉线;
20、交互验证模块与数据交换与校验模块配合用于执行如下:对于每个小集群,调动从节点基于gossip协议将其交互数据以及hash校验码发送至同一小集群内其它节点、并周期性的将其交互数据以及hash校验码发送至对应主节点;调动主节点基于hash校验码对接收的交互数据进行验证后,将通过验证的交互数据推送至上一层级小集群,调动最高一层小集群的主节点对所有交互数据同步汇总,并将汇总后的交互数据落盘;
21、小集群检测模块用于执行如下:对于每个小集群,定时判断所述小集群的规模是否满足集群配置信息定义的层级规模,如果不符合,根据小集群内节点的加入时间调整数据交互集群的规模,将后加入小集群的节本文档来自技高网...
【技术保护点】
1.一种基于hash算法和gossip协议的数据交互检验方法,其特征在于,应用于KaiWuDB集群,用于通过数据交互和校验模块实现集群内节点之间数据交互和校验,所述方法包括如下步骤:
2.根据权利要求1所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,启动KaiWuDB以及数据交互和校验模块,包括如下步骤:
3.根据权利要求1或2所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,对于新的节点,将节点加入数据交互集群中、并加入一个小集群中,包括如下步骤:
4.根据权利要求3所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,对于每个小集群,小集群内节点之间基于gossip协议广播其身份信息和hash验证码至其它节点进行身份验证;
5.一种基于hash算法和gossip协议的数据交互检验系统,其特征在于,应用于KaiWuDB集群,用于与数据交互和校验模块配合、通过如权利要求1-4任一项所述的一种基于hash算法和gossip协议的数据交互检验方法实现集群内节点之间数据交互和
6.根据权利要求5所述的基于hash算法和gossip协议的数据交互检验系统,其特征在于,启动配置模块用于执行如下:
7.根据权利要求5或6所述的基于hash算法和gossip协议的数据交互检验系统,其特征在于,对于新的节点,所述集群更新模块用于执行如下以实现将节点加入数据交互集群中、并加入一个小集群中:
8.根据权利要求7所述的基于hash算法和gossip协议的数据交互检验系统,其特征在于,对于每个小集群,小集群内节点之间基于gossip协议广播其身份信息和hash验证码至其它节点进行身份验证;
...【技术特征摘要】
1.一种基于hash算法和gossip协议的数据交互检验方法,其特征在于,应用于kaiwudb集群,用于通过数据交互和校验模块实现集群内节点之间数据交互和校验,所述方法包括如下步骤:
2.根据权利要求1所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,启动kaiwudb以及数据交互和校验模块,包括如下步骤:
3.根据权利要求1或2所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,对于新的节点,将节点加入数据交互集群中、并加入一个小集群中,包括如下步骤:
4.根据权利要求3所述的基于hash算法和gossip协议的数据交互检验方法,其特征在于,对于每个小集群,小集群内节点之间基于gossip协议广播其身份信息和hash验证码至其它节点进行身份验证;
5.一种基于hash算法和gossip协议的数据交互检验系统,其...
【专利技术属性】
技术研发人员:陈福隆,赵春泽,史大义,
申请(专利权)人:上海沄熹科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。