[发明专利]面向SCADA系统的爆发式数据缓存处理系统及其方法在审
申请号: | 201310272098.1 | 申请日: | 2013-07-01 |
公开(公告)号: | CN103399856A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 叶飞;马志斌;厉启鹏;王恒;李晓蕾;宋光鹏;温昭奇;陈清山;孙頔 | 申请(专利权)人: | 北京科东电力控制系统有限责任公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京汲智翼成知识产权代理事务所(普通合伙) 11381 | 代理人: | 陈曦;景志 |
地址: | 100192 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 scada 系统 爆发 数据 缓存 处理 及其 方法 | ||
技术领域
本发明涉及一种数据缓存处理系统,尤其涉及一种面向SCADA系统的爆发式数据缓存处理系统,同时还涉及该系统实现爆发式数据缓存处理的方法,属于数据处理技术领域。
背景技术
SCADA(数据采集与监视控制)系统是以计算机为基础的生产过程控制与调度自动化系统,广泛应用于电力、冶金、石油、化工等行业中。随着SCADA系统规模的不断增大,需要监控的内容和数据越来越多,SCADA系统正不断面临海量数据处理的考验。
近年来,随着计算机和网络技术的飞速发展,大量计算机和网络技术应用到SCADA系统中,使SCADA系统的应用功能越来越强大。但是,专门针对SCADA系统海量数据处理的研究并不多见。随着海量数据管理越来越复杂,海量数据的存储、查询日益成为影响SCADA系统性能的瓶颈。
现有的SCADA系统在进行海量数据处理的过程中,当遇到爆发式数据存储请求时,可能会出现以下问题:
第一,由于爆发式数据存储请求会在短时间内聚集海量数据,在内存中等待提交数据库,可能会导致内存溢出,导致大量重要数据的丢失。更甚者会致使整个SCADA系统直接崩溃,这种后果将是灾难性的。
第二,数据存储请求太多,会导致SCADA系统的响应性降低,影响其他应用进程的运行。
第三,大量的数据库连接会导致数据库负荷过高,甚至会导致数据库崩溃,直接影响其他进程对数据库的访问。
发明内容
针对现有技术所存在的不足,本发明所要解决的技术问题在于提供一种面向SCADA系统的爆发式数据缓存处理系统及其方法。该技术方案不仅改善了系统的响应性,还保证了数据库的安全性。
为实现上述的发明目的,本发明采用下述的技术方案:
一方面,本发明提供一种面向SCADA系统的爆发式数据缓存处理系统,包括:
数据接收模块、文件缓存模块、数据预读模块、队列缓存模块、数据优化模块、线程池模块;其中,所述数据接收模块分别与所述队列缓存模块和所述文件缓存模块连接,所述文件缓存模块通过所述数据预读模块连接所述队列缓存模块,所述队列缓存模块连接所述数据优化模块,所述数据优化模块连接所述线程池模块;
所述数据接收模块接收应用程序发送的数据存储请求报文,按缓存队列的状态放入文件缓存模块的磁盘缓存文件或缓存队列中,其中不能放入缓存队列中的数据存储请求存储在所述文件缓存模块中;所述数据预读模块将所述文件缓存模块中存储的数据存储请求插入到缓存队列中;所述数据优化模块读取所述缓存队列中的数据存储请求,对所述数据存储请求优化后调用线程池中的空闲线程,执行数据存储操作。
另一方面,本发明还提供一种上述系统实现爆发式数据缓存处理的方法,包括如下步骤:
接收应用程序发送的数据存储请求,并按缓存队列的状态放入磁盘缓存文件或缓存队列中;
将所述磁盘缓存文件保存的数据存储请求插入到缓存队列中;
读取数据存储请求,并对数据存储请求优化后调用空闲线程;
执行数据存储操作。
其中较优地,所述按缓存队列的状态放入磁盘缓存文件或缓存队列的步骤进一步包括:
接收数据存储请求报文后,判断缓存队列是否已满;
如果缓存队列未满,按照不同的优先级将数据存储请求放入相应的缓存队列中;
若缓存队列已满,将数据存储请求写入磁盘缓存文件中。
其中较优地,所述将磁盘缓存文件保存的数据存储请求插入到缓存队列的步骤进一步包括:
判断缓存队列是否已满;
若缓存队列不满,则将磁盘缓存文件中保存的数据存储请求读出,并按照不同的优先级将数据存储请求放入相应的缓存队列中;
若缓存队列已满,则等待,直至缓存队列有空闲。
其中较优地,所述读取数据存储请求,并对数据存储请求优化后调用空闲线程的步骤进一步包括:
按照缓存队列的不同优先级读取数据存储请求;
利用SQL语句优化策略优化数据;
根据空闲线程链表的空闲情况调用空闲线程。
其中较优地,所述按照缓存队列的不同优先级读取数据存储请求的步骤进一步包括:
判断紧急请求缓存队列是否为空,若紧急请求缓存队列不为空则读取数据存储请求;否则,
判断重要请求缓存队列是否为空,若重要请求缓存队不为空则读取数据存储请求;否则,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科东电力控制系统有限责任公司,未经北京科东电力控制系统有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310272098.1/2.html,转载请声明来源钻瓜专利网。