首页> 中国专利> 一种分布式场景下的智能分区系统

一种分布式场景下的智能分区系统

摘要

本发明公开了一种分布式场景下的智能分区系统。系统底层包含计算节点,并接入存储引擎。实时到来的金融数据流水,经由系统底层计算并存储之后将数据处理信息传输给集群感知模块。利用集群感知模块分析数据中每种键值以及读写压力的分布情况;将得到的分布情况输入到智能预测模块中,通过在线学习算法实时预测未来一段时间内,数据中每种键值的读写请求分布;并评估当前集群的热点数据的偏斜程度,当偏斜程度超过阈值,智能分区迁移模块接收预测单元的预测结果,计算新的分区表,执行分区迁移操作,达到平衡集群未来压力的目的。本发明适用于金融场景业务领域,能够显著降低存储系统的热点情况,提高系统的响应速度。

著录项

  • 公开/公告号CN113127566A

    专利类型发明专利

  • 公开/公告日2021-07-16

    原文格式PDF

  • 申请/专利权人 深圳市邦盛实时智能技术有限公司;

    申请/专利号CN202110468932.9

  • 申请日2021-04-28

  • 分类号G06F16/27(20190101);G06F16/21(20190101);G06F16/22(20190101);G06F16/2458(20190101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人刘静

  • 地址 518052 广东省深圳市前海深港合作区前湾一路1号A栋201室(入驻深圳市前海商务秘书有限公司)

  • 入库时间 2023-06-19 11:52:33

说明书

技术领域

本发明涉及时序大数据实时处理领域,尤其涉及一种分布式场景下的智能分区系统。

背景技术

在金融领域,大数据分析有着数据流量大,延迟要求低,数据时效性强等特点。尤其是在某些特定场景下,比如高频量化交易领域,分布式数据分析系统需要监控全球数十万支股票和期货,这些股票和期货每秒会产生上百万、甚至上千万条交易流水,这些数据将会传入分布式分析系统,经过一系列计算,将分析的结果进行反馈。在现在高频量化交易市场中,做多和做空的机会稍纵即逝,如果数据分析系统不能稳定地在亚秒级、甚至毫秒级反馈结果,将会造成不可估量的损失。

然而,不同股票的热度千差万别,热门的股票的换手率可能达到7%、甚至超过10%,而冷门的股票换手率可能低于1%。如果大量的热门股票数据,被路由到集群中同一台服务器上,会使得该台服务器压力过大,出现热点情况,进而导致该台服务器的响应速度降低,影响实际业务的运行。传统的分区方法通常利用专家的经验,筛选出可能的热门键值,利用硬编码的方式,将其尽量平均地分布到集群中的各台服务器上,从而尽可能地减少热点情况。然而在实际的金融场景中,热门股票可能随着时间不断地变化,比如随着新技术的出现,某些科技股可能突然由冷转热,再比如某些热门公司突然出现财务造假的新闻,股票跌停,导致交易流水数据量骤降。这些偶然事件,可能导致股票的交易数据量发生剧烈的波动,然而从整个宏观股票市场上来看,这些偶然事件每天都在发生,也就导致股票数据的热点分布每天都在改变。在这种情况下,静态的、硬编码形式的分区情况效果极其不稳定。

发明内容

本发明的目的在于针对现有技术的不足,提供一种针对分布式金融实时分析场景的智能分区系统,底层可接入多种存储引擎,根据过去一段时间的读写请求数据,预测未来的请求分布情况,进而对分区情况进行动态调整,从而降低集群的热点情况,提高集群的响应速度和运行效率。

本发明的目的是通过以下技术方案来实现的:一种分布式场景下的智能分区系统,所述智能分区系统包含集群感知模块、智能预测模块和智能分区迁移模块;

所述智能分区系统底层包含计算节点,并接入存储引擎。实时到来的金融数据流水,经由系统底层计算并存储之后将数据处理信息传输给集群感知模块。

所述集群感知模块分析数据中每种键值以及读写压力的分布情况;将得到的分布情况输入到智能预测模块中;

所述智能预测模块包括预测单元和评估单元,所述预测单元通过在线学习算法实时预测未来一段时间内,数据中每种键值的读写请求分布;所述评估单元将预测单元的预测结果作为输入,评估当前集群的热点数据的偏斜程度;

所述智能分区迁移模块在当热点数据的偏斜程度超过阈值时,智能分区迁移模块接收预测单元的预测结果,计算新的分区表,执行分区迁移操作,达到平衡集群未来压力的目的。

进一步地,系统底层可接入多种存储引擎,所述存储引擎包括redis,Aerospike,Memcached。

进一步地,所述集群感知模块接收处理后的数据信息,进行分析、统计后,交由智能预测模块进行智能预测与评估,并由智能分区迁移模块对集群的分区进行调整,平衡分布式系统的压力。数据处理信息包括数据的键值,以及执行数据消耗的时间。

进一步地,所述集群感知模块对于一条处理后的数据信息,将其按照键值进行分类,分别进行统计。对于一种键值,维护一定长度的时间窗口,统计属于该键值的数据所消耗的总时间。集群感知模块产生的统计结果将以一定速率传输给智能预测模块。

进一步地,所述智能预测模块接收集群感知模块按照固定速率产生的统计结果,将其作为预测单元的数据输入,通过在线学习算法进行在线学习,预测出未来一段时间内,每个键值的数据所消耗的总时间。其中,在线学习算法为可插拔组件,以独立进程的形式运行。所述在线学习算法包括在线RNN算法、LSTM算法或隐马尔科夫模型。智能预测模块将会通过评估单元评估算法产生的预测结果,判断未来集群的压力是否平衡,进而判断是否需要对集群进行再平衡操作。

进一步地,所述智能分区迁移模块接收智能预测模块中预测单元产生的预测结果,计算新的分区表,利用新旧分区表的差异,计算出集群再平衡操作所需的迁移指令。

进一步地,智能分区迁移模块将会综合未来一段时间内集群的压力情况,根据迁移指令设计并行迁移方案,执行迁移。在迁移过程中,智能分区迁移模块会实时监测集群的压力情况,对迁移操作进行限流,从而保证集群实时的高可用性。

本发明的有益效果是:本发明设计了一套金融场景下的,分布式智能分区系统,底层可以接入多种存储引擎,能够实时动态调整分区情况,保证底层计算节点和存储的效率;本发明利用统计方法和在线学习算法,预测未来一段时间内集群分区的压力分布情况,提前进行热点数据的分散和迁移,保证了系统中底层计算节点和存储在热点数据分布发生变化的时候,也同样保持了集群的低延迟,高吞吐等特性;另外,在线学习算法作为可插拔组件,安插在在线学习模块中,实现了算法的可替换,能够适应多种场景,提高了分区系统的鲁棒性。

附图说明

图1为本发明系统结构示意图;

图2为集群感知模块结构图;

图3为智能预测模块结构图;

图4为实施例中为集群压力分布图;

图5为实施例中新旧分区方案对比图;

图6为实施例中迁移指令和迁移方案示意图。

具体实施方法

下面结合附图和具体实例对本发明做进一步详细说明。

智能分区系统负责管理集群的分区状态。底层的计算节点可以接入多种不同的存储介质,比如redis,Aerospike,Memcached等。智能分区系统分为三个大的模块,分别是集群感知模块,智能预测模块和智能分区迁移模块。假设系统的底层的计算节点接收的数据的分区属于集合Key={key

1)集群感知模块作为整个集群的入口,负责监控集群的运行状态。该模块接收集群的输入数据,记录数据进入计算节点的时间in_time

2)智能预测模块负责预测未来集群的压力分布,该模块从Kafka中,接收集群感知模块传入的集群监控数据,将这些数据转发给预测单元的可插拔式的在线学习组件,进行实时在线学习,获得对未来一段时间内,集群的压力情况的预测数据,并且由智能预测模块中的评估单元,对预测结果进行分析评估。在线学习组件会预测未来一段时间内,每个分区的压力分布情况。模块中的在线学习算法组件是外接式、可插拔式的,在线学习算法组件作为单独的进程运行在集群中,与智能预测模块之间通过预定义好的RESTful接口进行交互。在线算法组件可以采用在线RNN算法、LSTM算法、隐马尔科夫模型等算法,能够灵活地适应各种金融场景,提高算法预测的准确率。智能预测模块定期将集群的监控数据推入在线学习算法组件中,并且拉取最新的预测情况,进行分析处理。当智能预测模块预测到未来一段时间内,集群的压力的偏斜程度超过阈值,即出现过量的热点数据集中在少数的集群服务器中时,将会通过Kafka,通知智能分区迁移模块,进行集群分区的再平衡。

3)智能分区迁移模块负责在集群出现偏斜情况的时候,对集群中的分区进行重新分配,达到集群压力再平衡的目的。该模块首先根据智能预测模块预测的未来一段时间内,集群分区的压力分布情况,设计一份新的集群分区表。下一步,智能分区迁移模块根据设计好的集群分区表,对比当前集群的分区情况,计算出迁移指令,并根据迁移指令之间的关联度,设计并行的迁移方案。在迁移的过程中,该模块会检测集群整体的压力情况,根据情况,对迁移过程进行限流,保证在分区迁移的过程中,集群的可用性不会受到影响。在分区迁移完成后,集群的再平衡操作完成,可用性再一次回到最佳状态。

下面结合实际用例描述智能分区系统的具体实现方法。在高频量化交易领域,分布式数据分析系统需要不间断地,监视全世界数十万支股票和期货交易的数据,每秒都会接收上百万条的数据流水。该场景下,需要稳定的,高性能的分布式智能分区系统,保证集群性能的高效和稳定。

如图1所示,智能分区系统中的计算节点集群是由数台redis服务器组成的,主要负责计算、分析、存储股票交易明细;并且智能分区系统维护集群的健康,降低热点情况对于集群的影响。智能分区系统分为三个模块,分别是集群感知模块,智能预测模块,智能分区迁移模块。假设集群有n个计算节点Cluster={server

当一条金融数据流入数据(key

在智能预测模块监听Kafka上的特定Topic,在接收到集群感知模块推送来的集群统计数据后,通过RESTful接口将其转发给独立运行的在线学习算法组件中,模块如图3所示。发送的数据包括三个字段,time字段表示统计数据的发生时间,key字段表示该条统计数据对应的分区,time_windows表示该分区,在这段时间内的时间窗口统计详情。在线学习组件内采用隐马尔可夫模型算法,利用统计数据,不断地进行增量训练。智能预测模块每60分钟,向在线学习算法组件请求一次预测数据,在线学习算法将会返回未来24小时内,20个分区,每个分区压力情况的预测值,以及整个集群在未来为24小时内,每个小时的压力情况,时间跨度和时间粒度都作为参数,可以调整。预测数据的字段包括三个,time字段表示预测数据的起始时间,key字段表示预测数据代表的分区,predictions表示该分区,在这段时间内,压力的预测值。在获得这些预测数据后,智能预测模块将会根据分区所在的服务器情况,计算集群的偏斜程度,即集群的方差。如图4所示的分布下,当集群的偏斜程度过大,超过阈值时,就会触发集群内分区的迁移,以达到集群的平衡。

智能分区迁移模块在接收到上游模块发出的集群迁移指令后,将会利用当前的分区压力预测数据,计算集群压力平衡后的分区分布情况,如图5所示。在确定分区方案后,智能分区迁移模块将会安排迁移,它会评估不同迁移指令之间的关联度,设计一套并行的高效迁移方案,如图6所示。每次执行一条迁移指令,迁移一个分区的时候,智能分区迁移模块会先从智能预测模块获取未来一个小时内,集群的压力情况,并根据压力情况,动态设定该分区迁移过程中的限流,保证集群的正常使用不会受到影响。

在整个迁移流程完毕后,集群将会重新变为稳定状态,集群的计算和存储压力被平均分配在每一个计算节点上,让整个系统的性能重新回到最优值。

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号