The embodiment of the invention provides a multiple program shared memory data synchronization method and device, wherein, the method comprises: according to a program of shared memory, when any program receives the new request, set the command structure generated and executed, and the generated commands write the default memory space need to monitor data synchronization program; the preset memory space; write new commands and to the monitoring in the preset memory space, read and complete the simulation of the new operation command, data synchronization. The invention solves the existing data collision technology when multiple programs share data, and achieves the technical effect of simply and efficiently realizing data sharing.
【技术实现步骤摘要】
一种共享内存的多个程序间数据同步方法和装置
本专利技术涉及数据处理
,尤其涉及一种共享内存的多个程序间数据同步方法和装置。
技术介绍
目前,为了实现不同程序件的同步,一般采用如下两种方式:1)日志同步,即,每个程序将每一步的操作和操作结果写入日志,另一个程序读取日志,并解析还原操作,以实现同步。2)共享内存,即,多个程序通过共享内存来共享数据。然而,上述方式1日志同步的方式多用于故障后回滚数据等非实时场景,例如:mysql的binlog。通过该方式虽然可以实现同步,但是,如果希望做到实时同步,则对硬盘的读写速度要求很高,实现起来代价太大,因此,几乎无法通过该方式实现数据的实时同步。上述方式2虽然可以实现0延迟的数据同步,但是由于内存没有写保护,因此会导致多个程序对同一块数据反复进行擦写,容易导致使用同一块内存的程序全部崩溃。针对如何实现多个程序间的数据同步,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供一种共享内存的多个程序间数据同步方法和装置,以实现多个程序间的数据同步。一方面,本专利技术实施例提供了一种共享内存的多个程序间数据同步方法,包括:针对共享内存的多个程序,当任一程序接收到新的请求时,生成设定结构的操作命令并执行,以及将生成的操作命令写入预设内存空间中;需要同步数据的程序监控所述预设内存空间;以及在监控到所述预设内存空间中写入新的操作命令后,读取并模拟完成所述新的操作命令,实现数据同步。可选地,所述预设内存空间是从共享内存中划分出的固定大小的内存区块,所述预设内存空间包括:数据存储区块、信息记录区块;其中,所述数据存储区块用 ...
【技术保护点】
一种共享内存的多个程序间数据同步方法,其特征在于,包括:针对共享内存的多个程序,当任一程序接收到新的请求时,生成设定结构的操作命令并执行,以及将生成的操作命令写入预设内存空间中;需要同步数据的程序监控所述预设内存空间;以及在监控到所述预设内存空间中写入新的操作命令后,读取并模拟完成所述新的操作命令,实现数据同步。
【技术特征摘要】
1.一种共享内存的多个程序间数据同步方法,其特征在于,包括:针对共享内存的多个程序,当任一程序接收到新的请求时,生成设定结构的操作命令并执行,以及将生成的操作命令写入预设内存空间中;需要同步数据的程序监控所述预设内存空间;以及在监控到所述预设内存空间中写入新的操作命令后,读取并模拟完成所述新的操作命令,实现数据同步。2.根据权利要求1所述的方法,其特征在于,所述预设内存空间是从共享内存中划分出的固定大小的内存区块,所述预设内存空间包括:数据存储区块、信息记录区块;其中,所述数据存储区块用于存储操作命令,所述信息记录区块用于存储数据存储区块的最后写入数据时间和大小;需要同步数据的程序监控所述预设内存空间,具体包括:需要同步数据的程序监控预设内存空间中、存储于信息记录区块的所述最后写入数据时间;以及监控到所述预设内存空间中写入新的操作命令的方法,具体包括:如果所述最后写入数据时间大于本程序记录的最后同步数据时间,则判定所述预设内存空间中写入新的操作命令。3.根据权利要求2所述的方法,其特征在于,所述操作命令采用带有时序的信令结构,具体信令结构包括如下字段:信令开始标志、本信令内数据长度、时间戳、被读取次数、最后读取时间、操作命令内容、附加参数和数据、信令结束标志;以及所述读取并模拟完成所述新的操作命令,实现数据同步之后,还包括:将读取的所述新的操作命令中,被读取次数字段的数值加一,并将最后读取时间字段修改为本程序的读取时间。4.根据权利要求1所述的方法,其特征在于,将操作命令按照先进先出的策略,按内存地址从前向后循环写入所述数据存储区块中。5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括:从共享内存中划分出部分存储区域作为所述预设内存空间,并设置所述预设内存空间允许被共享内存的多个程序写入和读取数据。6.一种共享...
【专利技术属性】
技术研发人员:谢成雨,王崇,任文越,
申请(专利权)人:微梦创科网络科技中国有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。