买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本申请提供一种基于FTTRPONWIFI的数据同步方法、装置、设备及介质,涉及通信技术领域,用于解决现有技术中数据同步的实时性较差和方法相对复杂的问题,该方法包括:启动守护线程,接收第一进程发起的数据写入请求;采用最小完美哈希算法对目标数据对应的目标键进行运算,获得第一偏移地址;若公共共享内存区中第一内存地址指向的键与目标键相同,则查询到目标键对应的第二偏移地址,根据第二内存地址将目标数据写入本设备共享内存区中;向订阅了目标键的第二进程发送UDP数据包;UDP数据包用于指示目标键对应的偏移地址发生更新;响应于第二进程的查询请求,从本设备共享内存区读取目标数据。通过消息订阅机制实现一对多的通信模式,提高数据同步的实时性。
主权项:1.一种基于FTTRPONWIFI的数据同步方法,其特征在于,应用于FTTRPONWIFI的任一设备中;所述任一设备的共享内存包括公共共享内存区和本设备共享内存区;所述公共共享内存区预先存储有多个固定的键;所述本设备共享内存区是按预设的数据结构存储数据的;所述数据结构以版本号、时间戳、数据长度为数据头,以数据本身为数据体;所述版本号的初始值为0;所述方法包括:启动守护线程,接收第一进程发起的数据写入请求;所述数据写入请求用于请求写入目标数据;采用最小完美哈希算法对所述目标数据对应的目标键进行运算,获得第一偏移地址;若所述公共共享内存区中第一内存地址指向的键与所述目标键相同,则查询到所述目标键对应的第二偏移地址,根据第二内存地址将所述目标数据写入所述本设备共享内存区中;所述第一内存地址为所述公共共享内存区的首地址与所述第一偏移地址之和;所述第二内存地址为所述本设备共享内存区的首地址与所述第二偏移地址之和;向订阅了所述目标键的第二进程发送UDP数据包;所述UDP数据包用于指示所述目标键对应的偏移地址指向的数据发生更新;响应于所述第二进程的查询请求,从所述本设备共享内存区读取所述目标数据;在向订阅了所述目标键的第二进程发送UDP数据包之前,所述方法还包括:接收第二进程的注册请求;所述注册请求包括监听端口的端口信息和想要订阅的至少一个键;至少一个键包括目标键;所述监听端口是第二进程向Linux系统申请的空闲UDP端口;根据所述至少一个键和所述监听端口的端口信息对所述第二进程进行注册;所述向订阅了所述目标键的第二进程发送UDP数据包,包括:以所述监听端口为目的端口,以所述第二进程所在设备的IP为目的IP,构建UDP数据包,向所述第二进程发送所述UDP数据包;所述根据所述第二内存地址将所述目标数据写入所述本设备共享内存区中,包括:根据所述第二内存地址获取第三偏移地址,将所述本设备共享内存区的首地址加上所述第三偏移地址,获得第三内存地址;根据所述第三内存地址和所述目标键对应的数据长度,从所述本设备共享内存区中查询原始数据;判断所述目标数据与所述原始数据是否存在不同;若是,则释放所述第三内存地址指向的内存,根据所述目标数据的长度申请新内存,将所述版本号加1,更新所述时间戳和所述数据长度,将所述目标数据写入所述新内存之后,将所述版本号再加1;所述响应于所述第二进程的查询请求,从所述本设备共享内存区读取所述目标数据,包括:接收并解析所述第二进程的查询请求,获得所述目标键;所述查询请求包括所述目标键;根据所述目标键,获取所述版本号;若所述版本号为奇数,则继续等待;若所述版本号为偶数,则从所述本设备共享内存区读取所述目标数据;所述任一设备为所述FTTR的设备,所述任一设备的共享内存包括复制数据区;在根据第二内存地址将所述目标数据写入所述本设备共享内存区中之后,所述方法还包括:将所述目标键、所述目标数据的长度、更新后的偏移地址存入同步链表中;启动设备间同步数据线程,若所述同步链表的长度大于预设阈值,则获取所述任一设备的分区锁,复制所述本设备共享内存区的全部数据至所述复制数据区;释放所述分区锁,将所述复制数据区中的数据发送至所述FTTR的其他设备。
全文数据:
权利要求:
百度查询: 四川天邑康和通信股份有限公司 基于FTTR/PON/WIFI的数据同步方法、装置、设备及介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。