一种存储系统的数据写入方法及系统的制作方法_2

文档序号:9546874阅读:来源:国知局
件的初始状态。本文描述的存储系统的数据写入方法就利用了追加写入的这一特点。
[0035]基于此,另外,可以将目标文件的初始数据长度记录至数据库中,这里之所以要记录目标文件的初始数据长度,是为了一旦写入因意外而中断,就可以通过该记录获取文件的初始数据长度,并通过截断文件到该长度,使文件恢复到写入之前的状态。
[0036]步骤S101、更改针对追加写入请求的事务中的执行内容为删除记录的初始数据长度;
[0037]在更改后的事务中包含的执行内容为删除最开始记录的目标文件的初始数据长度,其不再包含待写入数据,通常情况下,上述执行内容(删除最开始记录的目标文件的初始数据长度)的数据量小于或远远小于待写入数据的数据量,以此,相较现有技术中要将数据量较大的待写入数据写入日志中,本发明中将上述执行内容写入日志中能够显著减少日志写入的数据量,以此有效解决了现有技术中两次写入待写入数据使得存储系统的写入带宽只能达到磁盘物理带宽的一半,明显降低了存储系统的性能的问题。
[0038]步骤S102、将待写入数据写入目标文件;
[0039]步骤S103、记录更改后的事务至日志,并执行上述执行内容以删除记录的初始数据长度。
[0040]在存储系统重启时,判断更改后的事务是否成功记录至日志,通常情况下,会遇到以下两种情况:
[0041]其一,更改后的事务已经记录到日志,这时由于步骤S102是在步骤S103之前的,所以在确定更改后的事务已经记录到日志时可以认为已经顺利将待写入数据全部追加至目标文件中。这时只需要重新执行该更改后事务,就可以恢复系统正常状态下的执行流程。
[0042]具体地,按顺序读取所有的日志,对每条日志,重新执行相应的事务。
[0043]其二,更改后的事务没有记录到日志,这时我们可以认为存储系统在将待写入数据追加至目标文件的尾部的过程中出现了异常,使得更改后的事务没能顺利地记录至日志中,此时,由于数据库中关于目标文件的初始数据长度的记录仍然存在,但是不确定是否顺利将待写入数据全部追加至目标文件中,所以,为了保证目标文件的数据一致性和完整性,在对所有日志回放完成后,需要根据记录的初始数据长度,回滚追加后的目标文件至初始状态。
[0044]具体地,回滚的具体过程为:按相反顺序读取数据库中的剩余记录,对每条记录,截断相应文件到原来的长度,并删除该记录。
[0045]基于上述本发明实施例提供的存储系统的数据写入方法,本发明实施例还提供了一种存储系统的数据写入系统,参考图2,该系统200可以包括如下内容:
[0046]记录单元201,用于获取针对目标文件的追加写入请求,并记录目标文件的初始数据长度;其中,追加写入请求携带待写入数据;
[0047]更改单元202,用于更改针对追加写入请求的事务中的执行内容为删除记录的初始数据长度;
[0048]写入单元203,用于将待写入数据写入目标文件;
[0049]执行单元204,用于记录更改后的事务至日志,并执行上述执行内容以删除记录的初始数据长度。
[0050]上述系统200中,写入单元203具体用于将待写入数据追加至目标文件的尾部。
[0051]上述系统200中,还可以包括回滚单元,用于在存储系统在将待写入数据追加至目标文件的尾部的过程中出现故障之后,判断更改后的事务是否成功记录至日志;当判定更改后的事务没有成功记录至日志时,利用记录的初始数据长度,回滚追加后的目标文件至初始状态。
[0052]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0053]以上对本发明所提供的一种存储系统的数据写入方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
【主权项】
1.一种存储系统的数据写入方法,其特征在于,包括: 获取针对目标文件的追加写入请求,并记录所述目标文件的初始数据长度;其中,所述追加写入请求携带待写入数据; 更改针对所述追加写入请求的事务中的执行内容为删除记录的所述初始数据长度; 将所述待写入数据写入所述目标文件; 记录更改后的所述事务至日志,并执行所述执行内容以删除所述记录的所述初始数据长度。2.如权利要求1所述的方法,其特征在于,所述将所述待写入数据写入所述目标文件包括: 将所述待写入数据追加至所述目标文件的尾部。3.如权利要求2所述的方法,其特征在于,所述将所述待写入数据追加至所述目标文件的尾部的过程中出现异常之后,还包括: 判断所述更改后的所述事务是否成功记录至所述日志; 当判定所述更改后的所述事务没有成功记录至所述日志时,利用所述记录的所述初始数据长度,回滚追加后的所述目标文件至初始状态。4.一种存储系统的数据写入系统,其特征在于,包括: 记录单元,用于获取针对目标文件的追加写入请求,并记录所述目标文件的初始数据长度;其中,所述追加写入请求携带待写入数据; 更改单元,用于更改针对所述追加写入请求的事务中的执行内容为删除记录的所述初始数据长度; 写入单元,用于将所述待写入数据写入所述目标文件; 执行单元,用于记录更改后的所述事务至日志,并执行所述执行内容以删除所述记录的所述初始数据长度。5.如权利要求4所述的系统,其特征在于,所述写入单元具体用于将所述待写入数据追加至所述目标文件的尾部。6.如权利要求5所述的系统,其特征在于,还包括: 回滚单元,用于在所述将所述待写入数据追加至所述目标文件的尾部的过程中出现异常之后,判断所述更改后的所述事务是否成功记录至所述日志;当判定所述更改后的所述事务没有成功记录至所述日志时,利用所述记录的所述初始数据长度,回滚追加后的所述目标文件至初始状态。
【专利摘要】本发明公开了一种存储系统的数据写入方法及系统,包括:获取针对目标文件的追加写入请求,并记录目标文件的初始数据长度,其中,追加写入请求携带待写入数据;更改针对追加写入请求的事务中的执行内容为删除记录的初始数据长度;将待写入数据写入所述目标文件;记录更改后的事务至日志,并执行上述执行内容以删除记录的初始数据长度。在更改后的事务中不再包含待写入数据,相较现有技术中要将数据量较大的待写入数据写入日志中,本发明中将上述执行内容写入日志中能够显著减少日志写入的数据量,以此有效解决了现有技术中两次写入待写入数据使得存储系统的写入带宽只能达到磁盘物理带宽的一半,明显降低了存储系统的性能的问题。
【IPC分类】G06F3/06
【公开号】CN105302488
【申请号】CN201510708437
【发明人】吴明桥
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2016年2月3日
【申请日】2015年10月27日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1