[发明专利]一种数据同步系统及方法有效
申请号: | 201811088602.1 | 申请日: | 2018-09-18 |
公开(公告)号: | CN109299146B | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 王伟;杜恒 | 申请(专利权)人: | 交控科技股份有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/27 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100070 北京市丰台区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 同步 系统 方法 | ||
本发明提供了一种数据同步系统及方法,所述系统包括:设置在硬盘上的缓存文件、读指针文件和写指针文件;缓存文件用于存放待缓存的数据;读指针文件,用于存储当前待同步的缓存数据的读取位置;写指针文件,用于存储当前待增加的缓存数据的写入位置;系统在进行数据同步时,读取读指针文件,获得当前待同步的缓存数据的读取位置,并根据该读取位置到相应的缓存文件中进行数据读取以完成数据同步;系统在增加新的缓存数据时,读取写指针文件,获取当前待增加的缓存数据的写入位置,并根据该写入位置将待增加的新的缓存数据写入至对应的缓存文件中。本发明能够保证对缓存文件的读与写不会处于同一位置,因此也就避免了读写冲突。
技术领域
本发明涉及计算机技术领域,具体涉及一种数据同步系统及方法。
背景技术
数据同步指的是在有多个同级别数据源的情况下,为使系统可用,必须保证多个数据源的数据一致性。为保证数据一致性,需要从单一数据源向其他数据源同步差异数据。在实际的作业系统中,同步数据可能发生各种各样的异常情况,比如说,某个数据源停止服务,网络断开,主数据源更新数据的速度大于其他数据源的接收速度,导致积压大量数据后,数据丢失等问题。这样就需要同步数据时,在主数据源一端缓存差异数据,避免上述问题的发生。对于ATS系统,数据的同步要求必须实时,而且同步的数据必须与生成的数据是完全同样的顺序。这样就对数据同步提出了更高的要求。
目前同步数据的缓存,有两种方式。一种是在内存中进行缓存。一种是直接在硬盘上创建一个顺序格式的缓存文件,在文件上按照缓存的先后顺序写入缓存数据。这两种方式存在以下问题:
1、在内存中进行缓存,受限于内存的大小,一旦缓存的数据超过内存大小,数据就会丢失;同时,一旦发生程序出错,计算机关机的情况,数据也同样会丢失。
2、在硬盘上创建顺序格式缓存文件的方式,能够通过对数据的持久化存储,解决内存缓存的问题,但是,由于在缓存写入数据的同时,在文件中会同时对读取完成的数据做删除操作,删除操作会导致整个文件重写,这样会严重的拖累数据同步的速度。这种方式还存在另外的问题,一旦发生掉电及程序异常终止的状况,由于在做整个文件的重写,发生数据丢失的几率较大。
发明内容
针对现有技术中的问题,本发明提供一种数据同步系统及方法。
具体地,本发明提供以下技术方案:
第一方面,本发明提供了一种数据同步系统,包括:
设置在硬盘上的缓存文件夹、读指针文件和写指针文件;所述缓存文件夹中包括有至少一个缓存文件,其中,所述缓存文件在缓存数据的过程中由所述系统逐个自动建立;
所述缓存文件用于存放待缓存的数据,当待缓存的数据量超过一个缓存文件所设定的预设缓存上限后,所述系统自动建立新的缓存文件;其中,在所述缓存文件中每条缓存数据以缓存ID、缓存长度和缓存内容的方式进行保存;
所述读指针文件,用于存储当前待同步的缓存数据的读取位置,所述读指针文件作为读取数据的读指针;
所述写指针文件,用于存储当前待增加的缓存数据的写入位置,所述写指针文件作为写入数据的写指针;
其中,所述系统在进行数据同步时,读取所述读指针文件,获得当前待同步的缓存数据的读取位置,并根据该读取位置到相应的缓存文件中进行数据读取以完成数据同步,并在完成数据同步后,自动更新所述读指针文件,使得所述读指针指向下一条数据;
所述系统在增加新的缓存数据时,读取所述写指针文件,获取当前待增加的缓存数据的写入位置,并根据该写入位置将待增加的新的缓存数据写入至对应的缓存文件中,并在增加完新的缓存数据后,更新所述写指针文件,使得所述写指针指向下一个写入位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于交控科技股份有限公司,未经交控科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811088602.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置