[发明专利]写缓存的数据同步方法及装置有效
申请号: | 201410758327.5 | 申请日: | 2014-12-10 |
公开(公告)号: | CN104536845B | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 黄凯明;刘文涛 | 申请(专利权)人: | 深圳市锐明技术股份有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F17/30 |
代理公司: | 深圳中一专利商标事务所44237 | 代理人: | 张全文 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存 数据 同步 方法 装置 | ||
技术领域
本发明属于电子信息技术领域,尤其涉及写缓存的数据同步方法及装置。
背景技术
为了提高读写文件的速度,操作系统(如Linux或者Windows等)采用缓存机制。当应用程序调用read或write等系统调用读写文件时,操作系统并不立即与存储设备进行交互。当应用程序调用read系统调用读写文件时,首先查看需要读取的数据是否已在读缓存中,若是,则直接从读缓存中读取数据;若否,则从存储设备中读取数据。当从存储设备中读取数据时,首先将数据写入至写缓存。其中,存储设备可能为如硬盘或SD卡(Secure Digital Memory Card,安全数码卡)等。
当满足预设条件时,操作系统将写缓存中的数据同步到存储设备。fsync系统调用用于把一个文件在写缓存中已修改的数据同步到存储设备。在使用过程中发现,当存储设备损坏时,fsync系统调用阻塞时长最长可达数分钟。跟踪定位发现,执行fsync系统调用,在操作系统的通用SCSI(Small Computer System Interface,小型计算机系统接口)驱动层表现为顺序执行N个SCSI写命令,其中,N为正整数,且N的数值随着待同步的写缓存数据量增长。当存储设备(如SD卡)损坏时,每个SCSI写命令的耗时接近6秒,fsync系统调用一直阻塞到SCSI命令队列中的全部命令执行完毕。经测试,往损坏的SD卡中写入一定数据量,再执行fsync系统调用,耗时如下:(1)往损坏的SD卡中写入1MB数据,再执行fsync系统调用,耗时51.8秒;(2)往损坏的SD卡中写入2MB数据,再执行fsync系统调用,耗时99.2秒;(3)往损坏的SD卡中写入5MB数据,再执行fsync系统调用,耗时184.8秒;(4)往损坏的SD卡中写入8MB数据,再执行fsync系统调用,耗时340.4秒。
在实时性很强且对数据丢失零容忍的应用场景中,通常设置了主存储设备和从存储设备的两套互为备用的存储设备,同时也设置了自动检测系统死机并重启系统的机制。当主存储设备损坏时,正确的措施应当是切换到从存储设备。但是,应用程序长时间阻塞(如调用fsync系统调用强制同步写缓存数据至损坏的SD卡)会导致系统死机的误判,并因此错误重启系统,从而造成实时数据丢失。
发明内容
鉴于此,本发明实施例提供了一种写缓存的数据同步方法及装置,以解决现有技术中将写缓存中的数据同步至存储设备时,由于存储设备损坏造成的同步操作长时间阻塞的问题;以及,现有技术中将写缓存中的数据同步至存储设备时,若采用主从存储设备而当前使用的存储设备损坏,则导致产生系统死机的误判,并因此错误地重启系统,造成实时数据丢失的问题。
一方面,本发明实施例提供了一种写缓存的数据同步方法,包括:
当小型计算机系统接口SCSI命令队列中有待执行的SCSI命令时,获取SCSI执行状态值;
当获取的所述SCSI执行状态值为第一预设值时,丢弃所述SCSI命令队列中的所有待执行的SCSI命令。
第二方面,本发明实施例提供了一种写缓存的数据同步装置,包括:
SCSI执行状态值获取单元,用于当小型计算机系统接口SCSI命令队列中有待执行的SCSI命令时,获取SCSI执行状态值;
丢弃单元,用于当获取的所述SCSI执行状态值为第一预设值时,丢弃所述SCSI命令队列中的所有待执行的SCSI命令。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过当SCSI命令队列中有待执行的SCSI命令时,获取SCSI执行状态值,并当获取的SCSI执行状态值为第一预设值时,丢弃SCSI命令队列中的所有待执行的SCSI命令,由此在将写缓存中的数据同步至存储设备时,若存储设备损坏,则根据SCSI执行状态值及时丢弃SCSI命令队列中待执行的SCSI命令,从而避免造成阻塞;此外,在将写缓存中的数据同步至存储设备时,若采用主从存储设备而当前使用的存储设备损坏,则根据SCSI执行状态值及时将当前使用的存储设备切换至备用存储设备,从而避免产生系统死机的误判,并避免造成实时数据的丢失。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的写缓存的数据同步方法的实现流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市锐明技术股份有限公司,未经深圳市锐明技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410758327.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置