一种数据同步系统自适应动态调整方法和装置制造方法及图纸

技术编号:20622402 阅读:58 留言:0更新日期:2019-03-20 14:21
本发明专利技术涉及数据同步技术领域,具体涉及一种数据同步系统自适应动态调整方法和装置,其中方法包括:确定本次执行同步时功能组件可向系统申请的最大可用内存a;根据历史日志记录确定本次执行所需的最大缓存量b,从系统中获取相应内存并启动功能组件;功能组件向自己的消息队列中追加数据时实时更新当前已用缓存c,若c≥b*present.1且b<a,则向系统申请增加内存;本次执行结束后,将最大c值作为本次实际最大使用缓存记录到日志中,以便下次使用。通过在日志中增加历史执行最大缓存量,功能组件可根据日志记录确定本次执行所需的缓存使用量,并在运行时自适应调整内存;同时可根据实际运行动态增加一级线程和二级线程,提高数据同步性能。

An Adaptive Dynamic Adjustment Method and Device for Data Synchronization System

The invention relates to the field of data synchronization technology, in particular to a method and device for adaptive dynamic adjustment of data synchronization system. The method includes: determining the maximum available memory a that functional components can apply to the system during this synchronization execution; determining the maximum buffer B required for this execution according to the historical log records, obtaining the corresponding memory from the system and starting the functional components; When the component adds data to its message queue, it can update the currently used cache C in real time. If C (> b * present.1) and B < a, it will apply to the system for additional memory. After this execution, the maximum C value will be recorded in the log as the actual maximum use cache for the next use. By increasing the maximum cache of historical execution in the log, the functional component can determine the cache usage required for this execution according to the log record, and adjust the memory adaptively at run time. At the same time, it can dynamically increase the first-level thread and the second-level thread according to the actual operation to improve the performance of data synchronization.

【技术实现步骤摘要】
一种数据同步系统自适应动态调整方法和装置
本专利技术涉及数据同步
,具体涉及一种数据同步系统自适应动态调整方法和装置。
技术介绍
在数据同步系统中,同步流程是指由数据读取类组件、数据转换类组件、数据装载类组件组成的数据抽取、转换、装载的数据同步任务,包含一个或多个数据读取类组件、零个或多个数据转换类组件、一个或多个数据装载类组件,一个同步流程构成一个同步任务。一个数据同步任务执行时会开启多个执行线程,首先针对整个同步流程开启一个一级线程以启动同步流程描述的同步任务,其次对同步流程中的每个功能组件开启一个或多个二级线程以执行各功能组件描述的功能任务。数据同步服务器中可同时执行多个同步流程;对于每一个同步流程,同步服务器通过一个一级线程开启一个同步任务的运行,开启时为该同步任务分配能用的最大可用内存数量、每个功能组件可用到的内存和每个功能组件的二级处理线程数;其中,一级线程的数量一般在同步服务器的配置文件里设置,决定着一个数据同步服务器同时能执行多少个同步任务;二级线程的数量由用户在设计同步流程时设置,同一功能组件的二级线程有相同的处理逻辑。内存分配策略具体为:一级线程启动时通过计算得到该同步流程能用到的总的内存,每个功能组件均分总的内存,或所有功能组件的二级线程均分总的内存。然而,在上述已有实现的方案中,往往还存在以下缺陷:对于每一个同步任务,一级线程在启动时需通过计算分配同步流程总的可用内存以及各功能组件的可用内存,各功能组件无法自适应调整本次执行所需最大内存,分配内存过多造成资源浪费,而内存过少则直接影响性能,流程的反复定时调用执行缺乏自学习能力,且不能有效利用内存;同步流程在初始化时分配了最大可用内存的数量,但在执行过程中未必能全部用到,即使没用到,剩余的内存也不可能为其它执行的同步流程使用;一级线程的数量决定了数据同步服务器同时能执行的同步任务最大数,即使计算机硬件服务器有大量的CPU空闲、内存空闲和网络空闲,在一级线程耗尽的情况下,也不会执行任务队列中新增的同步任务,缺乏根据实际硬件和运行环境动态增加或减少工作线程的自适应能力;当功能组件的上游组件的消息队列中数据缓存量很大时,说明该功能组件的处理能力不足,应该动态增加该功能组件的二级处理线程,上述方案不具备这样的能力。鉴于此,克服上述现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
本专利技术需要解决的技术问题是:传统的数据同步中,功能组件难以自适应调整本次执行所需最大内存,容易出现内存分配不合适,不能有效利用内存;而且无法根据运行情况动态增加二级线程或一级线程,影响同步服务器的整体性能。本专利技术通过如下技术方案达到上述目的:第一方面,本专利技术提供了一种数据同步系统自适应动态调整方法,包括:确定本次执行同步时,功能组件可向系统申请的最大可用内存a;根据历史执行同步时的日志记录确定所述功能组件本次执行所需的最大缓存量b,按照所述b从系统中获取相应内存并启动功能组件;其中,b≤a;运行功能组件,所述功能组件向自己的消息队列中追加数据时实时更新所述功能组件当前已用缓存c,若发现c≥b*present.1且b<a,则所述功能组件向系统申请增加内存;本次执行同步结束后,将所述功能组件生命周期中出现的最大c值作为本次实际最大使用缓存d记录到日志中,以便用于下一次执行同步时使用;其中,present.1表示第一阈值比例。优选的,在所述运行功能组件之后,所述方法还包括:所述功能组件向自己的消息队列中追加数据时,若发现c≥b*present.1,则所述功能组件通知其下游组件增加二级线程。优选的,在所述运行功能组件之后,所述方法还包括:所述功能组件从其上游组件的消息队列中读取数据时,若发现上游组件的消息队列为空或消息队列中缓存数据量小于预设阈值,则通知所述上游组件增加二级线程。优选的,当数据同步系统中的任一功能组件接收到增加二级线程的通知时,所述功能组件向系统发送增加二级线程的请求;系统根据所述功能组件自身是否支持多线程处理、当前CPU利用率和/或当前网络利用率,确认是否批准所述功能组件增加二级线程;若批准,则所述功能组件增加二级线程;其中,当所述功能组件自身支持多线程处理,且当前CPU利用率小于CPU利用率阈值,且当前网络利用率小于网络利用率阈值时,系统批准所述功能组件增加二级线程。优选的,所述方法还包括:当数据同步系统中新增同步任务,且从一级线程池无法获取可用的空闲线程时,则向系统发送增加一级线程的请求;系统根据当前CPU利用率、当前网络利用率以及系统已用内存,确认是否批准增加一级线程;若批准,则增加一级线程用于执行新增同步任务;其中,当前CPU利用率小于CPU利用率阈值,且当前网络利用率小于网络利用率阈值,且系统已用内存小于系统最大可用内存阈值时,系统批准增加一级线程。优选的,在所述运行功能组件之后,所述方法还包括:每当所述功能组件的消息队列中增加或被取出一条数据,对所述c值进行实时更新;创建时间序列,每隔固定时间间隔将更新后的c值追加到所述时间序列,并判断所述时间序列是否稳定;若所述时间序列稳定且c≤b*present.2,则释放b中的部分内存t,并更新当前可用内存b以及系统最大可使用缓存e;其中,present.2表示第二阈值比例,b更新为b=b-t,e更新为e=e+t。优选的,所述功能组件向系统申请增加内存后,若申请成功,则所述功能组件获取到内存,更新b值,继续执行同步过程;若申请不成功,则暂停所述功能组件的二级线程,等待下游组件从所述功能组件的消息队列中取出数据后再继续执行同步过程。优选的,所述确定本次执行同步时,功能组件可向系统申请的最大可用内存a,具体为:在本次执行同步任务前,根据系统最大可使用缓存e、一级线程的数量以及所述功能组件所在同步流程中总的功能组件数量,计算得到所述功能组件可向系统申请的最大可用内存a。优选的,所述根据历史执行同步时的日志记录确定所述功能组件本次执行所需的最大缓存量b,具体为:将最近一次执行同步时日志记录的d值作为本次执行的b值;或者,将最近几次执行同步时日志记录的各d值取平均值或最大值,作为本次执行的b值;其中,若本次执行同步流程为首次执行,则将所述最大可用内存a作为本次执行的b值。第二方面,本专利技术还提供了一种数据同步系统自适应动态调整装置,用于实现上述第一方面所述的数据同步系统自适应动态调整方法,所述装置包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的数据同步系统自适应动态调整方法。本专利技术的有益效果是:本专利技术提供的一种数据同步系统自适应动态调整方法中,在日志中增加历史执行同步时每次实际用到的最大缓存量,功能组件可根据之前的日志记录,自适应调整本次执行所需的最大缓存使用量,充分、有效地分配利用内存,在运行过程中还可根据实际需要动态调整内存;同时,执行过程中充分利用了计算机的硬件能力,根据实际运行情况动态增加一级线程和二级线程,增强了流程自适应调整处理能力,提高数据同步服务器的整体性能。【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所本文档来自技高网
...

【技术保护点】
1.一种数据同步系统自适应动态调整方法,其特征在于,包括:确定本次执行同步时,功能组件可向系统申请的最大可用内存a;根据历史执行同步时的日志记录确定所述功能组件本次执行所需的最大缓存量b,按照所述b从系统中获取相应内存并启动功能组件;其中,b≤a;运行功能组件,所述功能组件向自己的消息队列中追加数据时实时更新所述功能组件当前已用缓存c,若发现c≥b*present.1且b<a,则所述功能组件向系统申请增加内存;本次执行同步结束后,将所述功能组件生命周期中出现的最大c值作为本次实际最大使用缓存d记录到日志中,以便用于下一次执行同步时使用;其中,present.1表示第一阈值比例。

【技术特征摘要】
1.一种数据同步系统自适应动态调整方法,其特征在于,包括:确定本次执行同步时,功能组件可向系统申请的最大可用内存a;根据历史执行同步时的日志记录确定所述功能组件本次执行所需的最大缓存量b,按照所述b从系统中获取相应内存并启动功能组件;其中,b≤a;运行功能组件,所述功能组件向自己的消息队列中追加数据时实时更新所述功能组件当前已用缓存c,若发现c≥b*present.1且b<a,则所述功能组件向系统申请增加内存;本次执行同步结束后,将所述功能组件生命周期中出现的最大c值作为本次实际最大使用缓存d记录到日志中,以便用于下一次执行同步时使用;其中,present.1表示第一阈值比例。2.根据权利要求1所述的数据同步系统自适应动态调整方法,其特征在于,在所述运行功能组件之后,所述方法还包括:所述功能组件向自己的消息队列中追加数据时,若发现c≥b*present.1,则所述功能组件通知其下游组件增加二级线程。3.根据权利要求1所述的数据同步系统自适应动态调整方法,其特征在于,在所述运行功能组件之后,所述方法还包括:所述功能组件从其上游组件的消息队列中读取数据时,若发现上游组件的消息队列为空或消息队列中缓存数据量小于预设阈值,则通知所述上游组件增加二级线程。4.根据权利要求2或3所述的数据同步系统自适应动态调整方法,其特征在于,当数据同步系统中的任一功能组件接收到增加二级线程的通知时,所述功能组件向系统发送增加二级线程的请求;系统根据所述功能组件自身是否支持多线程处理、当前CPU利用率和/或当前网络利用率,确认是否批准所述功能组件增加二级线程;若批准,则所述功能组件增加二级线程;其中,当所述功能组件自身支持多线程处理,且当前CPU利用率小于CPU利用率阈值,且当前网络利用率小于网络利用率阈值时,系统批准所述功能组件增加二级线程。5.根据权利要求1所述的数据同步系统自适应动态调整方法,其特征在于,所述方法还包括:当数据同步系统中新增同步任务,且从一级线程池无法获取可用的空闲线程时,则向系统发送增加一级线程的请求;系统根据当前CPU利用率、当前网络利用率以及系统已用内存,确认是否批准增加一级线程;若批准,则增加一级线程用于执行新...

【专利技术属性】
技术研发人员:付铨袁松彪梅纲
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北,42

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

1