System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种时序数据库的union并发执行优化方法及系统技术方案_技高网

一种时序数据库的union并发执行优化方法及系统技术方案

技术编号:40561841 阅读:9 留言:0更新日期:2024-03-05 19:24
本发明专利技术涉及数据库领域,具体提供了一种时序数据库的union并发执行优化方法及系统,具有如下步骤:S1、并发执行优化模块进行union线程池并发执行能力、基于任务队列策略的任务拆分、基于系统资源和连接数动态规划线程池资源;S2、任务执行模块按照初始化的任务队列将任务进行拆分,并且分批次发送到线程池中去执行;S3、合并模块对线程池中的已经完成的任务进行数据合并,并且将完成合并的内存空间释放。与现有技术相比,本发明专利技术能够从串行执行变成并发执行,提升了union执行的性能。任务分批执行,分批合并,有效的解决了MMAP临时内存占用过大的问题,动态资源配置保证了CPU的使用率以及资源的有效利用。

【技术实现步骤摘要】

本专利技术涉及数据库领域,具体提供一种时序数据库的union并发执行优化方法及系统


技术介绍

1、数据库系统中经常需要针对多张表进行union查询操作,尤其是针对模板表与实例表的时序数据库场景,用户通常的选择是一个采集点或一个采集设备作为一个时序数据库的实例表进行时序数据的维护,而该采集点或者采集设备通常是千级别以上的数量级,这些采集点或采集设备对应的数据的整合查询就会依赖于模板表来实现,通常一个针对模板表的全量查询是会转化成所有的实例表的查询结果进行union合并,但是在千级别以上的数量级的union查询的性能非常的不理想。

2、主要原因在于一个是union是串行执行的开销很大,另一个是union的结果集合并开销很大,所以针对时序数据库如何解决多设备的查询性能成为了大家首要关注的目标,并以此作为时序数据库产品的核心竞争力。


技术实现思路

1、本专利技术是针对上述现有技术的不足,提供一种实用性强的时序数据库的union并发执行优化方法。

2、本专利技术进一步的技术任务是提供一种设计合理,安全适用的时序数据库的union并发执行优化系统。

3、本专利技术解决其技术问题所采用的技术方案是:

4、一种时序数据库的union并发执行优化方法,具有如下步骤:

5、s1、并发执行优化模块进行union线程池并发执行能力、基于任务队列策略的任务拆分、基于系统资源和连接数动态规划线程池资源;

6、s2、任务执行模块按照初始化的任务队列将任务进行拆分,并且分批次发送到线程池中去执行;

7、s3、合并模块对线程池中的已经完成的任务进行数据合并,并且将完成合并的内存空间释放。

8、进一步的,在步骤s1中,解析union的所有相关子句,并生成任务队列,通过动态分配的线程池资源初始化线程池,并记录子句的执行顺序;

9、基于当前的系统cpu资源是否启用“绑核”技术以及用户连接并发数的计算公式,给出一个连接数对应的利用率最高的线程池的线程数,从而完成并发执行的所有配置和初始化任务。

10、进一步的,在步骤s2中,取余算法有序的分散到对应的队列中,所有的任务被分配到了不同的队列中,并发送到线程池中去并发执行,一个队列对应线程池中的一个线程,在任务完成以后会将任务结果指针放入流式合并容器线程中,等待线程按照容器顺序进行有序合并。

11、进一步的,在步骤s3中,按照容器顺序依次将完成的任务合并,并及时释放资源。

12、一种时序数据库的union并发执行优化系统,包括并发执行优化模块、任务执行模块和合并模块;

13、所述并发执行优化模块用于进行union线程池并发执行能力、基于任务队列策略的任务拆分、基于系统资源和连接数动态规划线程池资源;

14、所述任务执行模块用于按照初始化的任务队列将任务进行拆分,并且分批次发送到线程池中去执行;

15、所述合并模块用于对线程池中的已经完成的任务进行数据合并,并且将完成合并的内存空间释放。

16、进一步的,所述并发执行优化模块解析union的所有相关子句,并生成任务队列,通过动态分配的线程池资源初始化线程池,并记录子句的执行顺序;

17、基于当前的系统cpu资源是否启用“绑核”技术以及用户连接并发数的计算公式,给出一个连接数对应的利用率最高的线程池的线程数,从而完成并发执行的所有配置和初始化任务。

18、进一步的,所述任务执行模块取余算法有序的分散到对应的队列中,所有的任务被分配到了不同的队列中,并发送到线程池中去并发执行,一个队列对应线程池中的一个线程,在任务完成以后会将任务结果指针放入流式合并容器线程中,等待线程按照容器顺序进行有序合并。

19、进一步的,所述合并模块按照容器顺序依次将完成的任务合并,并及时释放资源。

20、本专利技术的一种时序数据库的union并发执行优化方法及系统和现有技术相比,具有以下突出的有益效果:

21、本专利技术从串行执行变成并发执行,提升了union执行的性能。任务分批执行,分批合并,有效的解决了mmap临时内存占用过大的问题,动态资源配置保证了cpu的使用率以及资源的有效利用。

本文档来自技高网...

【技术保护点】

1.一种时序数据库的union并发执行优化方法,其特征在于,具有如下步骤:

2.根据权利要求1所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤S1中,解析union的所有相关子句,并生成任务队列,通过动态分配的线程池资源初始化线程池,并记录子句的执行顺序;

3.根据权利要求2所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤S2中,取余算法有序的分散到对应的队列中,所有的任务被分配到了不同的队列中,并发送到线程池中去并发执行,一个队列对应线程池中的一个线程,在任务完成以后会将任务结果指针放入流式合并容器线程中,等待线程按照容器顺序进行有序合并。

4.根据权利要求3所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤S3中,按照容器顺序依次将完成的任务合并,并及时释放资源。

5.一种时序数据库的union并发执行优化系统,其特征在于,包括并发执行优化模块、任务执行模块和合并模块;

6.根据权利要求5所述的一种时序数据库的union并发执行优化系统,其特征在于,所述并发执行优化模块解析union的所有相关子句,并生成任务队列,通过动态分配的线程池资源初始化线程池,并记录子句的执行顺序;

7.根据权利要求6所述的一种时序数据库的union并发执行优化系统,其特征在于,所述任务执行模块取余算法有序的分散到对应的队列中,所有的任务被分配到了不同的队列中,并发送到线程池中去并发执行,一个队列对应线程池中的一个线程,在任务完成以后会将任务结果指针放入流式合并容器线程中,等待线程按照容器顺序进行有序合并。

8.根据权利要求7所述的一种时序数据库的union并发执行优化系统,其特征在于,所述合并模块按照容器顺序依次将完成的任务合并,并及时释放资源。

...

【技术特征摘要】

1.一种时序数据库的union并发执行优化方法,其特征在于,具有如下步骤:

2.根据权利要求1所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤s1中,解析union的所有相关子句,并生成任务队列,通过动态分配的线程池资源初始化线程池,并记录子句的执行顺序;

3.根据权利要求2所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤s2中,取余算法有序的分散到对应的队列中,所有的任务被分配到了不同的队列中,并发送到线程池中去并发执行,一个队列对应线程池中的一个线程,在任务完成以后会将任务结果指针放入流式合并容器线程中,等待线程按照容器顺序进行有序合并。

4.根据权利要求3所述的一种时序数据库的union并发执行优化方法,其特征在于,在步骤s3中,按照容器顺序依次将完成的任务合并,并及时释放资源。

5.一种时序...

【专利技术属性】
技术研发人员:徐元慧时振宇刘旺朱德润魏可伟
申请(专利权)人:山东浪潮数据库技术有限公司
类型:发明
国别省市:

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

1