数据实时同步方法及系统技术方案

技术编号:15653524 阅读:82 留言:0更新日期:2017-06-17 08:21
本发明专利技术公开了一种数据实时同步方法及系统,该方法包括:监测待同步文件并在待同步文件发生数据变化时,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;接收第二终端发送的下次同步的起始位置的位置信息;以及从所述下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。根据本发明专利技术的第一终端通过监控自身数据的变化,在发生变化后再进行数据同步,保证了数据同步的实时性,同时,第一、二终端在数据无变化时不再进行交互,大大降低了CPU和带宽消耗;由此解决了现有技术中网络带宽和CPU资源浪费的问题,以及存在数据丢失问题;具有占用网络带宽和CPU资源少、数据实时性高的有益效果。

【技术实现步骤摘要】
数据实时同步方法及系统本专利技术专利申请是申请日为2013年11月08日、申请号为201310551890.0、名称为“数据实时同步方法及系统”的中国专利技术专利申请的分案申请。
本专利技术涉及数据备份
,具体涉及一种数据实时同步方法及系统。
技术介绍
为增加数据的可靠性,通常做法是进行数据备份,备份一份或多份,这样即使其中一份数据丢失,也不影响整个数据的完整性。如果数据是动态不断增长的,为了保证数据的高可靠性,就需要进行实时备份,保证最新的数据也能得到实时备份。现有的备份流程如图1所示,假如有A,B两台服务器,如果需要将A机器的c文件实时备份到B机器上去,一种做法是将A作为服务器Server,B为客户端Client。具体流程是:B机器上同步进程启动后与A连接,然后以一定时间间隔不停的向A发起同步数据请求,Polling(轮询)的时间一般为1秒,方式是:B上的Client进程启动后,根据当前文件同步到的最新位置,向Server端发送fetch(同步)请求。在每次请求中都带上文件名,以及同步到的位置等参数。例如类似fetch(c,100),表示同步c文件,偏移量100之后的数据;然后将从Server端的返回(如果有)写入文件。A服务进程启动后,监听Client的连接,不停的接收fetch请求。在每次收到fetch请求后,根据fetch中的参数,查看相应文件是否有新数据产生;如果有,则将新的数据(data)返回给client;如果没有新数据,则返回空。例如收到fetch(c,100),则打开文件c,fseek(c,100),然后read新数据,并将数据返回给Client。现有技术一的缺点如下:1、浪费不必要的网络带宽:为了保持数据备份的实时性,B需要不停的向A发起请求,当A没有新数据产生时,也一直发送同步请求,这样就会浪费不必要的带宽传输。2、不必要的CPU(CentralProcessingUnit,中央处理器)消耗:由于B需要不停的发起同步请求,A也要响应这些请求,尤其是在A没有新数据产生时,这样A、B之间的交互就会造成CPU资源的很大浪费。3、影响数据同时的实时性:B是每隔一定时间发起同步请求,由于请求不宜太密集,一般设置为1s间隔;这样数据可能会有1s的时延。如果当A坏掉后,可能会导致1s的数据丢失。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据实时同步系统和相应的数据实时同步方法。依据本专利技术的一个方面,提供了一种数据实时同步方法,应用于第一终端,包括:监测待同步文件并在待同步文件发生数据变化时,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;接收第二终端发送的下次同步的起始位置的位置信息;以及从所述下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。依据本专利技术的另一方面,提供了一种数据实时同步方法,应用于第二终端,包括:接收第一终端在监控到待同步文件发生数据变化时发送的预设大小的数据、以及这些数据所在文件的位置;判断该数据是否完成数据同步,如果是,则不保存该数据,将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端;如果否,则保存该数据,并将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端。依据本专利技术的又一方面,提供了一种数据实时同步系统,用于将第一终端上的数据实时同步到第二终端,该系统包括:第一终端,监测待同步文件并在待同步文件发生数据变化时,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;第二终端,接收第一终端在监控到待同步文件发生数据变化时发送的预设大小的数据、以及这些数据所在文件的位置;判断该数据是否完成数据同步,如果是,则不保存该数据,将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端;如果否,则保存该数据,并将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端;其中,所述第一终端还接收所述第二终端发送的下次同步的起始位置的位置信息;以及从所述下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。根据本专利技术的第一终端通过监控自身数据的变化,在发生变化后再进行数据同步,保证了数据同步的实时性,同时,第一、二终端在数据无变化时不再进行交互,大大降低了CPU和带宽消耗;由此解决了现有技术中网络带宽和CPU资源浪费的问题,以及存在数据丢失问题;具有占用网络带宽和CPU资源少、数据实时性高的有益效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了现有技术中数据备份的流程图;图2示出了根据本专利技术一个实施例的数据实时同步方法的流程图;图3示出了根据本专利技术一个实施例的客户端与服务器之间进行数据备份的流程图;图4示出了根据本专利技术一个实施例的数据实时同步系统的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。如图2所示,本专利技术实施例涉及一种数据实时同步方法,用于将第一终端上的数据实时同步到第二终端,该方法包括:第一终端监控到待同步文件发生数据变化时,第一终端将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;所述第二终端根据这些数据所在文件的位置,存储这些数据;重复上述数据同步操作,直至全部数据同步完成。在第一终端对文件变化进行实时监控时,可以采用Linux(林纳克斯)的Inotify机制,Inotify是一种文件变化通知机制,是Linux内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。使用inotify事件来驱动传输,这样能极大的降低数据同步的时延。另外,为了提高备份效率和速度,第二终端在存储完第一终端发送的数据之后,将下次同步的起始位置发送给第一终端;这样,就相当于第二终端告诉第一终端,第二终端希望下次同步的位置。如果数据之前没有备份过,则第二终端将每次存储完数据的下一个位置反馈给第一终端;如果数据之前备份过,则直接反馈需要备份的数据,之前备份的数据不需要再进行备份,进而提高了备份效率和速度。具体的:当第一终端与第二终端首次进行数据同步时,第一终端从待同步文件的起始位置起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。第二终端存储数据之后,将下次同步的起始位置发送给第一终端;第一终端从下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。重复上述步骤,本文档来自技高网
...
数据实时同步方法及系统

【技术保护点】
一种数据实时同步方法,应用于第一终端,包括:监测待同步文件并在待同步文件发生数据变化时,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;接收第二终端发送的下次同步的起始位置的位置信息;以及从所述下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。

【技术特征摘要】
1.一种数据实时同步方法,应用于第一终端,包括:监测待同步文件并在待同步文件发生数据变化时,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端;接收第二终端发送的下次同步的起始位置的位置信息;以及从所述下次同步的起始位置对应的数据起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。2.如权利要求1所述的方法,其中,当所述第一终端与所述第二终端首次进行数据同步或者所述第一终端与所述第二终端之间的数据同步终止后又重新进行数据同步时,从待同步文件的起始位置起,将预设大小的数据、以及这些数据所在文件的位置发送给第二终端。3.如权利要求1或2所述的方法,还包括:接收到所述第二终端返回的位置信息后,判断该位置信息是否超出了所述待同步文件的最后一个位置,如果是,则监测所述待同步文件,直至其数据发生变化,如果否,则继续进行数据同步。4.一种数据实时同步方法,应用于第二终端,包括:接收第一终端在监控到待同步文件发生数据变化时发送的预设大小的数据、以及这些数据所在文件的位置;判断该数据是否完成数据同步,如果是,则不保存该数据,将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端;如果否,则保存该数据,并将下一个需要完成数据同步的数据对应的位置的位置信息发送给第一终端。5.如权利要求4所述的方法,其中,当所述第一终端与所述第二终端首次进行数据同步或者所述第一终端与所述第二终端之间的数据同步终止后...

【专利技术属性】
技术研发人员:陈飞朱超王超
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1