数据同步监控方法、装置、计算机设备及存储介质与流程

文档序号:21819790发布日期:2020-08-11 21:35阅读:120来源:国知局
数据同步监控方法、装置、计算机设备及存储介质与流程

本发明涉及数据安全技术领域,具体涉及一种数据同步监控方法、装置、计算机设备及计算机存储介质。



背景技术:

实际应用中,经常需要将电子设备中的多个数据同步至其他的电子设备(例如,将多个客户端的大量数据实时同步至服务器,再如,将本地服务器的大量数据实时同步至云服务器),以保持不同电子设备中的数据一致。在将一个电子设备的大量数据实时同步至另一个电子设备的过程中,可能会因为不同数据项在不同的时间同步、部分数据项的数据同步频率高而出现同步速度不稳定的情况,即同步速度过大或过小。例如,某一时间的待同步的数据项(包括同步频率高的部分数据项)多,数据量大,导致同步速度高,下一时间的待同步的数据项少,数据量小,导致同步速度低。同步速度不稳定容易产生数据同步错误,增加不同设备中的数据不一致的风险。现有的数据同步监控方法可以监控过去时间的同步速度是否稳定,但不能对将来的同步速度进行预测,也不能根据预测结果对数据同步任务进行调整。



技术实现要素:

鉴于以上内容,有必要提出一种数据同步监控方法、装置、计算机设备及计算机存储介质,其可以对源端和目的端之间的数据同步任务进行监控,预测源端至目的端的同步速度,根据预测的同步速度调整数据同步任务。

本申请的第一方面提供一种数据同步监控方法,所述方法包括:

获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an};

获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列;

以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵;

以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵;

根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度;

判断预测的时间点n+1的同步速度是否在预定的阈值范围内;

若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔;

对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

另一种可能的实现方式中,所述计算所述多个第一马尔科夫状态簇的状态转移矩阵包括:

将每两个相邻时间点的同步速度子序列组合为同步速度子序列对,得到多个同步速度子序列对;

计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,1≤x,y≤q,q为所述多个第一马尔科夫状态簇的数量,每个第一马尔科夫状态簇有对应的预设序号,ux为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇的同步速度子序列对的数量,ux,y为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇且第二个同步速度子序列属于第y个第一马尔科夫状态簇的同步速度子序列对的数量。

另一种可能的实现方式中,所述根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度包括:

根据所述时间点n的同步速度子序列所属的第一马尔科夫状态簇和所述多个第一马尔科夫状态簇的状态转移矩阵选择所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇;

将所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇的中心点中与所述时间点n+1对应维度的值确定为所述时间点n+1的同步速度。

另一种可能的实现方式中,所述预测的同步速度的阈值范围为:

其中v1为所述阈值范围的上限,v2为所述阈值范围的下限,σ为所述同步时间间隔序列的标准差。

另一种可能的实现方式中,所述对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔包括:

初始化暂停同步数据项列表,初始化待同步数据项列表,将所有数据项中待同步的数据项复制至所述待同步数据项列表;

计算同步所述待同步数据项列表中的数据项的所需同步时间,将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项复制至所述暂停同步数据项列表,并将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项删除;

循环执行上一步骤,当所述待同步数据项列表中的数据项的预测的同步时间间隔均大于或等于所需同步时间,则将所述待同步数据项列表中的所数据项的数据从所述源端同步至所述目的端。

另一种可能的实现方式中,所述方法还包括:

根据时间点n+1的所有数据项的同步速度的预测值和时间点n+1的所有数据项的同步速度的真实值调整所述预测时间的所述第一马尔科夫状态簇的中心点。

另一种可能的实现方式中,所述方法还包括:

若时间点n+1的同步速度在所述阈值范围内,随机抽样部分数据项,判断所述目的端的所述部分数据项的数据与所述源端的所述部分数据项的数据是否一致。

本申请的第二方面提供一种数据同步监控装置,所述装置包括:

第一获取模块,用于获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an};

第二获取模块,用于获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列;

第一计算模块,用于以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵;

第二计算模块,用于以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵;

第一预测模块,用于根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度;

判断模块,用于判断预测的时间点n+1的同步速度是否在预定的阈值范围内;

第二预测模块,用于若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔;

增加模块,用于对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

另一种可能的实现方式中,所述计算所述多个第一马尔科夫状态簇的状态转移矩阵包括:

将每两个相邻时间点的同步速度子序列组合为同步速度子序列对,得到多个同步速度子序列对;

计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,1≤x,y≤q,q为所述多个第一马尔科夫状态簇的数量,每个第一马尔科夫状态簇有对应的预设序号,ux为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇的同步速度子序列对的数量,vx,y为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇且第二个同步速度子序列属于第y个第一马尔科夫状态簇的同步速度子序列对的数量。

另一种可能的实现方式中,所述根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度包括:

根据所述时间点n的同步速度子序列所属的第一马尔科夫状态簇和所述多个第一马尔科夫状态簇的状态转移矩阵选择所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇;

将所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇的中心点中与所述时间点n+1对应维度的值确定为所述时间点n+1的同步速度。

另一种可能的实现方式中,所述预测的同步速度的阈值范围为:

其中v1为所述阈值范围的上限,v2为所述阈值范围的下限,σ为所述同步时间间隔序列的标准差。

另一种可能的实现方式中,所述对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔包括:

初始化暂停同步数据项列表,初始化待同步数据项列表,将所有数据项中待同步的数据项复制至所述待同步数据项列表;

计算同步所述待同步数据项列表中的数据项的所需同步时间,将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项复制至所述暂停同步数据项列表,并将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项删除;

循环执行上一步骤,当所述待同步数据项列表中的数据项的预测的同步时间间隔均大于或等于所需同步时间,则将所述待同步数据项列表中的所数据项的数据从所述源端同步至所述目的端。

本申请的第三方面提供一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述数据同步监控方法。

本申请的第四方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据同步监控方法。

本发明实现了根据预测的同步速度调整数据同步任务,增加数据同步任务的稳定性,降低所述源端和所述目的端中的数据不一致的风险。

附图说明

图1是本发明实施例提供的数据同步监控方法的流程图。

图2是本发明实施例提供的数据同步监控装置的结构图。

图3是本发明实施例提供的计算机设备的示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

优选地,本发明的数据同步监控方法应用在一个或者多个计算机设备中。所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例一

图1是本发明实施例一提供的数据同步监控方法的流程图。所述数据同步监控方法应用于计算机设备,用于对源端和目的端之间的数据同步任务进行监控,并预测源端至目的端的同步速度,根据预测的同步速度调整数据同步任务。

所述源端和所述目的端之间包括多个数据项的数据同步,每个数据项可以在不同的时间点进行同步。例如,在电商系统中,本地服务器(即源端)需要将不同商品的销量作为数据项同步至云服务器(即目的端)。例如,本地服务器同步至云服务器的数据项包括第一商品销量、第二商品销量、第三商品销量。本地服务器在第1秒、第5秒、第7秒将第一商品销量同步至云服务器,在第2秒、第4秒、第6秒将第二商品销量同步至云服务器,在第3秒、第5秒、第7秒将第三商品销量同步至云服务器。

如图1所示,所述数据同步监控方法包括:

101,获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an}。

所述同步速度序列可以表示为a:a={a1,a2,…ai,…,an},其中1≤i≤n,n为时间点n+1之前间隔时间为t的连续时间点的数量,ai为n个连续时间点中第i个时间点的同步速度,an为时间点n的同步速度。第i个时间点的同步速度可以为第i-1个时间点至第i个时间点内从源端同步至目的端的数据量与t的比值,t可以取1秒、20秒等。例如,t为1秒,0至1秒内从源端同步至目的端的数据量为6mb(兆),则第1秒的同步速度为6mb/s,1至2秒内从源端同步至目的端的数据量为7mb,则第2秒的同步速度为7mb/s,2至3秒内从源端同步至目的端的数据量为8mb,则第3秒的同步速度为8mb/s,3至4秒内从源端同步至目的端的数据量为9mb,则第4秒的同步速度为9mb/s,4至5秒内从源端同步至目的端的数据量为10mb,则第5秒的同步速度为10mb/s得到的同步速度序列为{6,7,8,9,10}。所述数据量是所有数据项的数据量。

102,获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列。

数据项bj的同步时间序列可以表示为tj:其中1≤j≤c,c为所有数据项的数量,tj,k为第k次同步数据项bj的时间,mj为时间点n之前数据项bj的已同步次数。则数据项bj的所述同步时间间隔序列可以表示为δtj:δtj,k为第k次同步数据项bj的时间间隔,δtj,k=tj,k-tj,k-1,1≤k≤mj。一个数据项的同步时间间隔为相邻两次同步数据项的时间的差值。例如,一个数据同步任务在第1秒、第5秒、第7秒、第10秒、第14秒分别从本地服务器将第一商品销量的数据同步至云服务器,其中第一商品销量为数据项,第一商品销量的同步时间序列为{1,5,7,10,14},第一商品销量的两个同步时间间隔分别为4秒(5-1=4)、2秒(7-5=2)、3秒(10-7=3)、4秒(14-10=4),第一商品销量的同步时间间隔序列为{4,2,3,4}。

103,以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵。

具体地,从上述同步速度序列a中以第一预设长度h为滑窗长度(滑窗长度为一个滑窗包括的元素的数量),以1为步长,从所述同步速度序列中获取多个同步速度子序列:ah={a1,a2,…,ah},ah+1={a2,a3,…,ah+1},…,an={an-h+1,an-h+2,…,an},其中,所述第一预设长度h小于所述同步速度序列a的长度n,ah为第h个时间点th的所述同步速度子序列,an为时间点tn的所述同步速度子序列,即每个同步速度子序列对应一个时间点,所述同步速度子序列可以表示在对应时间点的同步速度的状态。例如,同步速度序列为{6,7,8,9,10},以1为步长,从所述同步速度序列中获取多个同步速度子序列,h取值为3,得到3个同步速度子序列{6,7,8}、{7,8,9}、{8,9,10}。

每个第一马尔科夫状态簇包括一个或多个同步速度子序列。

在一具体实施例中,所述计算所述多个第一马尔科夫状态簇的状态转移矩阵包括:

将每两个相邻时间点的同步速度子序列组合为同步速度子序列对,得到多个同步速度子序列对;

计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,1≤x,y≤q,q为所述多个第一马尔科夫状态簇的数量。每个第一马尔科夫状态簇有对应的预设序号,ux为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇的同步速度子序列对的数量。ux,y为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇,且第二个同步速度子序列属于第y个第一马尔科夫状态簇的同步速度子序列对的数量。

具体地,聚类所述多个同步速度子序列得到所述多个第一马尔科夫状态簇:{c1,c2,…,cq},和所述多个第一马尔科夫状态簇的中心点:b1=(b1,1,b1,2,…,b1,h),b2=(b2,1,b2,2,…,b2,h),…,bq=(bq,1,bq,2,…bq,h),其中q为所述多个第一马尔科夫状态簇的数量,q小于所述多个同步速度子序列的数量,一个第一马尔科夫状态簇对应的预设序号为1至q中的一个数字,b1表示第一个所述第一马尔科夫状态簇c1的中心点,bq表示第q个所述第一马尔科夫状态簇cq的中心点,b1,1表示所述第一个第一马尔科夫状态簇的中心点b1的第一维的值,b1,2表示所述第一个第一马尔科夫状态簇的第一个中心点b1的第二维的值,依次类推。可以采用k均值聚类算法、最邻近算法或cure(clusteringusingrepresentatives)算法等聚类算法聚类所述多个同步速度子序列得到所述多个第一马尔科夫状态簇。

从第h个时间点th开始,将第h个时间点th对应的同步速度子序列ah和第h+1个时间点th+1的同步速度子序列ah+1组合为一个同步速度子序列对;将第h+1个时间点th+1的同步速度子序列ah+1和第h+2个时间点th+2的同步速度子序列ah+2组合为一个同步速度子序列对,依次类推,得到所述多个同步速度子序列对。

可以计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,px,y表示已知给定时间点的马尔科夫状态序列属于第x个马尔科夫状态簇的条件下,所述给定时间点的下一个时间点的马尔科夫状态序列属于第y个马尔科夫状态簇的概率。每个同步速度子序列属于距离该同步速度子序列最近的中心点所在的第一马尔科夫状态簇。

104,以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵。

与以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵同理,此处不再赘述。其中,在从序列获取子序列的过程中,滑窗长度和步长确定后,序列中的多个子序列也会被唯一确定。

105,根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度。

在一具体实施例中,所述根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度包括:

根据所述时间点n的同步速度子序列所属的第一马尔科夫状态簇和所述多个第一马尔科夫状态簇的状态转移矩阵选择所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇;

将所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇的中心点中与所述时间点n+1对应维度的值确定为所述时间点n+1的同步速度。

具体地,当前时间点tn的同步速度子序列an所属的第w个第一马尔科夫状态簇为cw,1≤w≤q;从所述多个第一马尔科夫状态簇的状态转移矩阵的第w行中选择最大值pw,m,选择pw,m对应的第m个第一马尔科夫状态簇cm作为时间点n+1的同步速度子序列所属的第一马尔科夫状态簇,1≤m≤q。

时间点n+1的第一马尔科夫状态簇cm的中心点为bm,bm=(bm,1,bm,2,…bm,h),将时间点n+1的第一马尔科夫状态簇的中心点bm中与时间点n+1对应的值bm,h(即时间点n+1的第一马尔科夫状态簇的中心点的最后一个维度的值)确定为所述预测同步速度。

在另一实施例中,所述方法还包括:

根据时间点n+1的所有数据项的同步速度的预测值和时间点n+1的所有数据项的同步速度的真实值调整所述预测时间的所述第一马尔科夫状态簇的中心点。例如,向减小时间点n+1的所有数据项的同步速度的预测值和时间点n+1的所有数据项的同步速度的真实值的差值的方向减小或增大时间点n+1的所述第一马尔科夫状态簇的中心点中与时间点n+1对应维度的值。

106,判断预测的时间点n+1的同步速度是否在预定的阈值范围内。

在一具体实施例中,所述预测的同步速度的阈值范围为:

其中v1为所述阈值范围的上限,v2为所述阈值范围的下限,σ为所述同步时间间隔序列的标准差。

107,若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔。

与根据时间点n的所述同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度同理,可预测下一次的第j个数据项bj的同步时间间隔其中1≤j≤c,c为所有数据项的数量,得到每个数据项的同步时间间隔。

108,对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

在一具体实施例中,所述对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔包括:

(1)初始化暂停同步数据项列表,初始化待同步数据项列表,将所有数据项中待同步的数据项复制至所述待同步数据项列表;

(2)计算同步所述待同步数据项列表中的数据项的所需同步时间;

(3)将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项复制至所述暂停同步数据项列表,并将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项删除;

(4)循环执行步骤(2)-(3),当所述待同步数据项列表中的数据项的预测的同步时间间隔均大于或等于所需同步时间,则将所述待同步数据项列表中的所数据项的数据从所述源端同步至所述目的端。

例如,(1)将暂停同步数据项列表初始化为空表,将待同步数据项列表初始化为空表,将待同步的第一商品销量和第二商品销量复制至待同步数据项列表;第一商品销量和第二商品销量为两个数据项。

(2)用第一商品销量和第二商品销量中的数据的大小除以网络传输速度,得到同步待同步数据项列表中的第一商品销量和第二商品销量的数据的所需同步时间;其中,第一商品销量和第二商品销量的数据大小为8mb,网络传输速度为2mb/s,所需同步时间为4秒。

(3)第一商品销量的预测的同步时间间隔为3秒,第一商品销量的预测的同步时间间隔为5秒,将待同步数据项列表中的第一商品销量复制至暂停同步数据项列表,并将待同步数据项列表中的第一商品销量删除。

(4)将待同步数据项列表中的第二商品销量的数据从客户端同步至服务器。

实施例一根据预测的同步速度调整数据同步任务,增加数据同步任务的稳定性,降低所述源端和所述目的端中的数据不一致的风险。

在另一实施例中,所述方法还包括:

若时间点n+1的同步速度在所述阈值范围内,随机抽样部分数据项,判断所述目的端的所述部分数据项的数据与所述源端的所述部分数据项的数据是否一致。当时间点n+1的同步速度在所述阈值范围内时,同步任务处于正常状态,只需要对少量的数据项抽样校对。

在另一实施例中,所述方法还包括:

若所述预测的同步速度不在阈值范围内,发出数据同步任务异常预警。

实施例二

图2是本发明实施例二提供的数据同步监控装置的结构图。所述数据同步监控装置20应用于计算机设备。所述数据同步监控装置20用于对源端和目的端之间的数据同步任务进行监控,并预测源端至目的端的同步速度,根据预测的同步速度调整数据同步任务。

所述源端和所述目的端之间包括多个数据项的数据同步,每个数据项可以在不同的时间点进行同步。例如,在电商系统中,本地服务器(即源端)需要将不同商品的销量作为数据项同步至云服务器(即目的端)。例如,本地服务器同步至云服务器的数据项包括第一商品销量、第二商品销量、第三商品销量。本地服务器在第1秒、第5秒、第7秒将第一商品销量同步至云服务器,在第2秒、第4秒、第6秒将第二商品销量同步至云服务器,在第3秒、第5秒、第7秒将第三商品销量同步至云服务器。

如图2所示,所述数据同步监控装置20可以包括第一获取模块201、第二获取模块202、第一计算模块203、第二计算模块204、第一预测块205、判断模块206、第二预测模块207、增加模块208。

第一获取模块201,用于获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an}。

所述同步速度序列可以表示为a:a={a1,a2,…ai,…,an},其中1≤i≤n,n为时间点n+1之前间隔时间为t的连续时间点的数量,ai为n个连续时间点中第i个时间点的同步速度,an为时间点n的同步速度。第i个时间点的同步速度可以为第i-1个时间点至第i个时间点内从源端同步至目的端的数据量与t的比值,t可以取1秒、20秒等。例如,t为1秒,0至1秒内从源端同步至目的端的数据量为6mb(兆),则第1秒的同步速度为6mb/s,1至2秒内从源端同步至目的端的数据量为7mb,则第2秒的同步速度为7mb/s,2至3秒内从源端同步至目的端的数据量为8mb,则第3秒的同步速度为8mb/s,3至4秒内从源端同步至目的端的数据量为9mb,则第4秒的同步速度为9mb/s,4至5秒内从源端同步至目的端的数据量为10mb,则第5秒的同步速度为10mb/s得到的同步速度序列为{6,7,8,9,10}。所述数据量是所有数据项的数据量。

第二获取模块202,用于获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列。

数据项bj的同步时间序列可以表示为tj:其中1≤j≤c,c为所有数据项的数量,tj,k为第k次同步数据项bj的时间,mj为时间点n之前数据项bj的已同步次数。则数据项bj的所述同步时间间隔序列可以表示为δtj:δtj,k为第k次同步数据项bj的时间间隔,δtj,k=tj,k-tj,k-1,1≤k≤mj。一个数据项的同步时间间隔为相邻两次同步数据项的时间的差值。例如,一个数据同步任务在第1秒、第5秒、第7秒、第10秒、第14秒分别从本地服务器将第一商品销量的数据同步至云服务器,其中第一商品销量为数据项,第一商品销量的同步时间序列为{1,5,7,10,14},第一商品销量的两个同步时间间隔分别为4秒(5-1=4)、2秒(7-5=2)、3秒(10-7=3)、4秒(14-10=4),第一商品销量的同步时间间隔序列为{4,2,3,4}。

第一计算模块203,用于以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵。

具体地,从上述同步速度序列a中以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取多个同步速度子序列:ah={a1,a2,…,ah},ah+1={a2,a3,…,ah+1},…,an={an-h+1,an-h+2,…,an},其中,所述第一预设长度h小于所述同步速度序列a的长度n,ah为第h个时间点th的所述同步速度子序列,an为时间点tn的所述同步速度子序列,即每个同步速度子序列对应一个时间点,所述同步速度子序列可以表示在对应时间点的同步速度的状态。例如,同步速度序列为{6,7,8,9,10},以1为步长,从所述同步速度序列中获取多个同步速度子序列。

每个第一马尔科夫状态簇包括一个或多个同步速度子序列。

在一具体实施例中,所述计算所述多个第一马尔科夫状态簇的状态转移矩阵包括:

将每两个相邻时间点的同步速度子序列组合为同步速度子序列对,得到多个同步速度子序列对;

计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,1≤x,y≤q,q为所述多个第一马尔科夫状态簇的数量。每个第一马尔科夫状态簇有对应的预设序号,ux为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇的同步速度子序列对的数量。ux,y为所述多个同步速度子序列对中第一个同步速度子序列属于第x个第一马尔科夫状态簇,且第二个同步速度子序列属于第y个第一马尔科夫状态簇的同步速度子序列对的数量。

具体地,聚类所述多个同步速度子序列得到所述多个第一马尔科夫状态簇:{c1,c2,…,cq},和所述多个第一马尔科夫状态簇的中心点:b1=(b1,1,b1,2,…,b1,h),b2=(b2,1,b2,2,…,b2,h),…,bq=(bq,1,bq,2,…bq,h),其中q为所述多个第一马尔科夫状态簇的数量,q小于所述多个同步速度子序列的数量,一个第一马尔科夫状态簇对应的预设序号为1至q中的一个数字,b1表示第一个所述第一马尔科夫状态簇c1的中心点,bq表示第q个所述第一马尔科夫状态簇cq的中心点,b1,1表示所述第一个第一马尔科夫状态簇的中心点b1的第一维的值,b1,2表示所述第一个第一马尔科夫状态簇的第一个中心点b1的第二维的值,依次类推。可以采用k均值聚类算法、最邻近算法或cure(clusteringusingrepresentatives)算法等聚类算法聚类所述多个同步速度子序列得到所述多个第一马尔科夫状态簇。

从第h个时间点th开始,将第h个时间点th对应的同步速度子序列ah和第h+1个时间点th+1的同步速度子序列ah+1组合为一个同步速度子序列对;将第h+1个时间点th+1的同步速度子序列ah+1和第h+2个时间点th+2的同步速度子序列ah+2组合为一个同步速度子序列对,依次类推,得到所述多个同步速度子序列对。

可以计算所述多个第一马尔科夫状态簇的状态转移矩阵的元素px,y:其中,px,y表示已知给定时间点的马尔科夫状态序列属于第x个马尔科夫状态簇的条件下,所述给定时间点的下一个时间点的马尔科夫状态序列属于第y个马尔科夫状态簇的概率。每个同步速度子序列属于距离该同步速度子序列最近的中心点所在的第一马尔科夫状态簇。

第二计算模块204,用于以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵。

与以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵同理,此处不再赘述。其中,在从序列获取子序列的过程中,滑窗长度和步长确定后,序列中的多个子序列也会被唯一确定。

第一预测块205,用于根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度。

在一具体实施例中,所述根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度包括:

根据所述时间点n的同步速度子序列所属的第一马尔科夫状态簇和所述多个第一马尔科夫状态簇的状态转移矩阵选择所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇;

将所述时间点n+1的同步速度子序列所属的第一马尔科夫状态簇的中心点中与所述时间点n+1对应维度的值确定为所述时间点n+1的同步速度。

具体地,当前时间点tn的同步速度子序列an所属的第w个第一马尔科夫状态簇为cw,1≤w≤q;从所述多个第一马尔科夫状态簇的状态转移矩阵的第w行中选择最大值pw,m,选择pw,m对应的第m个第一马尔科夫状态簇cm作为时间点n+1的同步速度子序列所属的第一马尔科夫状态簇,1≤m≤q。

时间点n+1的第一马尔科夫状态簇cm的中心点为bm,bm=(bm,1,bm,2,…bm,h),将时间点n+1的第一马尔科夫状态簇的中心点bm中与时间点n+1对应的值bm,h(即时间点n+1的第一马尔科夫状态簇的中心点的最后一个维度的值)确定为所述预测同步速度。

在另一实施例中,所述方法还包括:

根据时间点n+1的所有数据项的同步速度的预测值和时间点n+1的所有数据项的同步速度的真实值调整所述预测时间的所述第一马尔科夫状态簇的中心点。例如,向减小时间点n+1的所有数据项的同步速度的预测值和时间点n+1的所有数据项的同步速度的真实值的差值的方向减小或增大时间点n+1的所述第一马尔科夫状态簇的中心点中与时间点n+1对应维度的值。

判断模块206,用于判断预测的时间点n+1的同步速度是否在预定的阈值范围内。

在一具体实施例中,所述预测的同步速度的阈值范围为:

其中v1为所述阈值范围的上限,v2为所述阈值范围的下限,σ为所述同步时间间隔序列的标准差。

第二预测模块207,用于若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔。

与根据时间点n的所述同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度同理,可预测下一次的第j个数据项bj的同步时间间隔其中1≤j≤c,c为所有数据项的数量,得到每个数据项的同步时间间隔。

增加模块208,用于对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

在一具体实施例中,所述对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔包括:

(1)初始化暂停同步数据项列表,初始化待同步数据项列表,将所有数据项中待同步的数据项复制至所述待同步数据项列表;

(2)计算同步所述待同步数据项列表中的数据项的所需同步时间;

(3)将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项复制至所述暂停同步数据项列表,并将预测的同步时间间隔小于所需同步时间的所述待同步数据项列表中的数据项删除;

(4)循环执行步骤(2)-(3),当所述待同步数据项列表中的数据项的预测的同步时间间隔均大于或等于所需同步时间,则将所述待同步数据项列表中的所数据项的数据从所述源端同步至所述目的端。

例如,(1)将暂停同步数据项列表初始化为空表,将待同步数据项列表初始化为空表,将待同步的第一商品销量和第二商品销量复制至待同步数据项列表;第一商品销量和第二商品销量为两个数据项。

(2)用第一商品销量和第二商品销量中的数据的大小除以网络传输速度,得到同步待同步数据项列表中的第一商品销量和第二商品销量的数据的所需同步时间;其中,第一商品销量和第二商品销量的数据大小为8mb,网络传输速度为2mb/s,所需同步时间为4秒。

(3)第一商品销量的预测的同步时间间隔为3秒,第一商品销量的预测的同步时间间隔为5秒,将待同步数据项列表中的第一商品销量复制至暂停同步数据项列表,并将待同步数据项列表中的第一商品销量删除。

(4)将待同步数据项列表中的第二商品销量的数据从客户端同步至服务器。

实施例二根据预测的同步速度调整数据同步任务,增加数据同步任务的稳定性,降低所述源端和所述目的端中的数据不一致的风险。

在另一实施例中,所述数据同步监控装置20中的判断模块,还用于若时间点n+1的同步速度在所述阈值范围内,随机抽样部分数据项,判断所述目的端的所述部分数据项的数据与所述源端的所述部分数据项的数据是否一致。当时间点n+1的同步速度在所述阈值范围内时,同步任务处于正常状态,只需要对少量的数据项抽样校对。

在另一实施例中,所述数据同步监控装置20还可以包括:预警模块,用于若所述预测的同步速度不在阈值范围内,发出数据同步任务异常预警。

实施例三

本实施例提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据同步监控方法实施例中的步骤,例如图1所示的步骤101-108:

101,获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an};

102,获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列;

103,以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵;

104,以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵;

105,根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度;

106,判断预测的时间点n+1的同步速度是否在预定的阈值范围内;

107,若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔;

108,对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-208:

第一获取模块201,用于获取时间点1到时间点n从源端至目的端的同步速度序列{a1,a2,…ai,…,an};

第二获取模块202,用于获取时间点n之前从源端至目的端的每个数据项的同步时间序列,根据每个数据项的同步时间序列得到每个数据项的同步时间间隔序列;

第一计算模块203,用于以第一预设长度h为滑窗长度,以1为步长,从所述同步速度序列中获取第h个时间点至第n个时间点之间的多个同步速度子序列,对所述多个同步速度子序列进行聚类,得到多个第一马尔科夫状态簇,计算所述多个第一马尔科夫状态簇的状态转移矩阵;

第二计算模块204,用于以第二预设长度g为滑窗长度,以1为步长,从每个数据项的所述同步时间间隔序列中获取每个数据项的第g个时间点至第n个时间点之间的多个同步时间间隔子序列,对每个数据项的所述多个同步时间间隔子序列进行聚类,得到每个数据项的多个第二马尔科夫状态簇,计算每个数据项的所述多个第二马尔科夫状态簇的状态转移矩阵;

第一预测块205,用于根据时间点n的同步速度子序列和所述多个第一马尔科夫状态簇的状态转移矩阵预测时间点n+1的所有数据项的同步速度;

判断模块206,用于判断预测的时间点n+1的同步速度是否在预定的阈值范围内;

第二预测模块207,用于若预测的时间点n+1的同步速度不在所述阈值范围内,根据时间点n的每个数据项的所述同步时间间隔子序列和每个数据项的所述第二马尔科夫状态簇的状态转移矩阵预测每个数据项的同步时间间隔;

增加模块208,用于对预测的同步时间间隔小于所需同步时间的数据项增加同步时间间隔。

实施例四

图3为本发明实施例三提供的计算机设备的示意图。所述计算机设备30包括存储器301、处理器302以及存储在所述存储器301中并可在所述处理器302上运行的计算机程序303,例如数据同步监控程序。所述处理器302执行所述计算机程序303时实现上述数据同步监控方法实施例中的步骤,例如图1所示的101-108。或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-208。

示例性的,所述计算机程序303可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器301中,并由所述处理器302执行,以完成本方法。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序303在所述计算机设备30中的执行过程。例如,所述计算机程序303可以被分割成图2中的第一获取模块201、第二获取模块202、第一计算模块203、第二计算模块204、第一预测块205、判断模块206、第二预测模块207、增加模块208,各模块具体功能参见实施例二。

本领域技术人员可以理解,所述示意图3仅仅是计算机设备30的示例,并不构成对计算机设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备30还可以包括输入输出设备、网络接入设备、总线等。

所称处理器302可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,所述处理器302是所述计算机设备30的控制中心,利用各种接口和线路连接整个计算机设备30的各个部分。

所述存储器301可用于存储所述计算机程序303,所述处理器302通过运行或执行存储在所述存储器301内的计算机程序或模块,以及调用存储在存储器301内的数据,实现所述计算机设备30的各种功能。所述存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备30的使用所创建的数据等。此外,存储器301可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

所述计算机设备30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1