[发明专利]一种避免多线程并发写快照数据乱序的方法有效
| 申请号: | 202110578388.3 | 申请日: | 2021-05-26 |
| 公开(公告)号: | CN113220335B | 公开(公告)日: | 2023-03-14 |
| 发明(设计)人: | 马瑞瑞;何清;王毅 | 申请(专利权)人: | 西安热工研究院有限公司 |
| 主分类号: | G06F8/70 | 分类号: | G06F8/70;G06F5/06 |
| 代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 何会侠 |
| 地址: | 710032 陕*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 避免 多线程 并发 快照 数据 方法 | ||
本发明公开了一种避免多线程并发写快照数据乱序的方法,该方法包括:一个写快照伺服线程从FIFO(先进先出)快照队列缓存中获取快照数据包;初始化参数、哈希表和信号事件;获取写快照伺服线程中所有出列快照数据,将数据标签ID写入哈希表Key值列;校验哈希表数据标签是否存在写入冲突;如果不存在数据标签写入冲突,则写快照伺服线程开始向实时数据库写入快照数据,待写快照结束,转至开始;如果存在数据标签写入冲突,则最后一个获取数据的写快照伺服线程开始等待,直至数据标签不存在写入冲突,转至上一步。本发明实现了向实时数据库多线程并发写入快照数据时,避免因出列快照乱序造成快照数据丢失的风险。
技术领域
本发明属于数据处理技术领域,特别是涉及一种避免多线程并发写快照数据乱序的方法。
背景技术
无论是德国工业4.0、美国工业互联网还是《中国制造2025》,各国制造业创新战略的实施基础都是工业大数据的搜集和特征分析,及以此为未来制造系统搭建的无忧环境。数据采集是生产中最实际最高频的需求,也是工业4.0的先决条件。
发电企业需要从DCS、辅控等工控系统采集海量生产实时数据,其数据测点规模通常是几十万甚至百万级别,数据采集频率在毫秒级别,采集到的时序数据需要及时写入实时数据库中,数据写入速度通常在40万点/秒左右,数据写入质量要求非常高。
为了提高向实时数据库写快照的性能,通常由多个伺服线程并发写快照。在这种情况下,如果出现两个伺服线程从快照队列缓存中分别获取到同一个标签的两个时间点的快照数据时,由于网络原因或目标数据库性能原因,会出现时间值大的快照先写入实时数据库,这样写时间值小的快照时实时数据库会报告写快照失败,从而造成快照数据丢失。
发明内容
为了克服上述现有技术存在的问题,本发明的目的在于提供一种避免多线程并发写快照数据乱序的方法,解决了向实时数据库多线程并发写入快照数据时,因出列快照乱序造成快照数据丢失的问题。
为了达到上述目的,本发明采用如下技术方案:
一种避免多线程并发写快照数据乱序的方法,包括以下步骤:
步骤S1:一个写快照伺服线程从先进先出FIFO快照队列缓存中获取快照数据包;
步骤S2:初始化参数、哈希表和信号事件;
步骤S3:获取步骤S1和其他写快照伺服线程中所有出列快照数据,将数据标签ID写入哈希表Key值列,得到哈希表Key值列数据标签;
步骤S4:校验哈希表Key值列数据标签是否存在写入冲突;
步骤S5:如果不存在数据标签写入冲突,则步骤S1中所述写快照伺服线程开始向实时数据库写入快照数据,待写快照结束,清空哈希表转至步骤S1,直至所述快照队列缓存中所有数据全部写入实时数据库;
步骤S6:如果存在数据标签写入冲突,则步骤S1中所述写快照伺服线程开始等待,直至数据标签不存在写入冲突,转至步骤S5。
步骤S2中所述对快照数据包初始化参数、哈希表和信号事件具体如下:
所述初始化参数包括:初始化标签计数器值为0,初始化标签冲突计数器为0;所述标签计数器用于统计标签在不同写快照伺服线程中出现的次数,同一标签在同一写快照伺服线程中仅算1次;所述标签冲突计数器用于记录写快照伺服线程中标签计数器大于1的标签个数;
所述哈希表由两列组成,第一列为Key值,对应于数据标签ID;第二列为标签计数器列,为整形数;
使用CreateEvent函数初始化信号事件,设置信号事件对象为有信号状态;所述信号事件用于标识写快照伺服线程是否能够开始向实时数据库写快照,若信号事件为无信号状态,写快照伺服线程需要等待,若信号事件为有信号状态,写快照伺服线程向实时数据库写数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安热工研究院有限公司,未经西安热工研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110578388.3/2.html,转载请声明来源钻瓜专利网。





