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.
【技术实现步骤摘要】
一种数据同步系统自适应动态调整方法和装置
本专利技术涉及数据同步
,具体涉及一种数据同步系统自适应动态调整方法和装置。
技术介绍
在数据同步系统中,同步流程是指由数据读取类组件、数据转换类组件、数据装载类组件组成的数据抽取、转换、装载的数据同步任务,包含一个或多个数据读取类组件、零个或多个数据转换类组件、一个或多个数据装载类组件,一个同步流程构成一个同步任务。一个数据同步任务执行时会开启多个执行线程,首先针对整个同步流程开启一个一级线程以启动同步流程描述的同步任务,其次对同步流程中的每个功能组件开启一个或多个二级线程以执行各功能组件描述的功能任务。数据同步服务器中可同时执行多个同步流程;对于每一个同步流程,同步服务器通过一个一级线程开启一个同步任务的运行,开启时为该同步任务分配能用的最大可用内存数量、每个功能组件可用到的内存和每个功能组件的二级处理线程数;其中,一级线程的数量一般在同步服务器的配置文件里设置,决定着一个数据同步服务器同时能执行多少个同步任务;二级线程的数量由用户在设计同步流程时设置,同一功能组件的二级线程有相同的处理逻辑。内存分配策略具体为:一级线程启动时通过计算得到该同步流程能用到的总的内存,每个功能组件均分总的内存,或所有功能组件的二级线程均分总的内存。然而,在上述已有实现的方案中,往往还存在以下缺陷:对于每一个同步任务,一级线程在启动时需通过计算分配同步流程总的可用内存以及各功能组件的可用内存,各功能组件无法自适应调整本次执行所需最大内存,分配内存过多造成资源浪费,而内存过少则直接影响性能,流程的反复定时调用执行缺乏自学 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。