一种支持追加写和共享读的文件存储方式制造技术

技术编号:10181541 阅读:164 留言:0更新日期:2014-07-03 11:22
本发明专利技术涉及一种支持追加写和共享读的文件存储方式,属于数据存储和备份技术领域。一个完整的文件由状态文件,信息文件和数据文件构成。在追加写数据时,标记状态文件,修改数据文件,在写操作结束后,提交写操作。在追加写文件时,支持读取已提交的文件内容。数据文件分块存储,并对每块数据进行校验。本发明专利技术简化了备份过程中对存储的操作,增加了备份安全性和可靠性,更可以有效缩短恢复窗口。

【技术实现步骤摘要】
一种支持追加写和共享读的文件存储方式
本专利技术属于数据存储和备份
,具体涉及支持追加写和共享读的文件存储方式。
技术介绍
随着信息化水平的不断提高,数据信息逐渐成为企业赖以生存的基础,数据丢失所造成的损失也日益严重。传统的数据复制、备份、恢复等数据保护技术虽然能够对数据实现一定程度的保护,但是这些方法的恢复点目标和恢复时间目标太长,对于一些关键的信息系统来说是无法接受的。因此备份系统中,需要将数据恢复窗口的时间越短越好,以便可以尽快恢复关键系统的运行。随着需要保护的数据的不断增加,进行一次数据备份所需要的时间也越来越长,同样,如何缩短恢复窗口时间,甚至实现零恢复窗口,是数据备份系统中需要面对的问题。现有技术中,需要先对文件进行备份,在数据丢失后,再通过恢复文件来恢复系统。这种方式需要等待恢复窗口结束,在一些较大的系统中,恢复窗口可能会花费非常长的时间。为了缩短恢复窗口,可以采用边备份边恢复的模型。在此模型中如果使用常规的文件存储方式,在出现系统断电,程序崩溃,空间不足,网络不通等异常后,需要重新发起整个备份与恢复流程。
技术实现思路
本专利技术的目的在于克服上述现有技术中的不足,提出了一种追加写和共享读的文件存储方式,可以有效支持边备份边恢复的模型,简化逻辑,提高备份与恢复的安全性与可靠性。本专利技术所涉及的追加写和共享读的文件存储方式,其主要技术步骤包括:(1)创建新文件,实际创建一个与文件同名的目录,此目录对使用者透明,使用者可直接视为一个文件。目录下存在3种类型的文件,状态文件、数据文件和信息文件;所述状态文件记录文件基本属性(时间、大小)、数据分块信息、校验算法、文件状态,回滚标识等内容;所述数据文件存储文件内容,以固定大小分块存储,不同文件可以使用不同的块大小;所述信息文件在追加写文件时使用,记录写之前数据文件的校验值,在回滚文件时进行校验,可自由选择检验算法;(2)追加写文件,在所述步骤一创建的文件中追加写入文件数据后,提交数据;所述追加写操作,支持任意长度的写操作叠加,只要最终提交即可生效;(3)读文件,在追加写文件的同时支持读取已提交的数据内容,读取文件与读取普通文件类似,支持并发随机读操作。与现有技术相比,本专利技术具有以下优点:1、写操作异常后,在下次写操作时,自动对文件进行回滚,保证文件内容的准确性。2、读文件时只能读取已提交部分的文件内容,确保读取的文件数据都是可用的。3、可以支持多用户同时读取文件。4、文件数据分块存储。5、文件数据加入校验,提高数据可靠性。附图说明图1是文件存储结构图图2是一次追加文件操作流程图图3是一次写文件操作流程图图4是回滚文件流程图图5是提交写数据流程图图6是读文件流程图具体实施方法下面结合附图对本专利技术的实施例作详细说明:本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。1.创建文件时,创建如图1类似的文件结构,构造初始状态文件和信息文件。(1)状态文件为一个uft-8编码的xml文件,名称为S,状态文件格式如下:<ROOT><!--文件状态,0为正常,1为写开始,2为写结束--><STATE>0</STATE><!--一次写操作累计的文件大小,在提交时,会将加入到DATASIZE中--><ADDSIZE>0</ADDSIZE><!--文件被操作时,记录文件原始信息,以供回滚--><ORIGINAL><!--当文件进行操作时,记录一些原始文件数据--><SRCDATA><FILELIST><FILE><!--文件名,new=1时表示新块,回滚时需要删除整块--><NAMENEW=’0’>D1</NAME><!--记录的文件块信息,单位byte--><PART><POS>100</POS><LEN>10</LEN></PART></FILE><FILE><NAMENEW=’1’>D2</NAME></FILE></FILELIST></SRCDATA></ORIGINAL><!--文件当前的状态,大小,时间等信息--><CURRENT><FILETM><!--创建时间--><CREATE>1985-05-0512:35:21</CREATE><!--修改时间--><MODIFY>1985-05-0612:35:21</MODIFY></FILETM><!--文件大小--><DATASIZE>34584900</DATASIZE><!--块数目--><PARTNUM>5</PARTNUM><!--每块数据校验位长度--><PARTCHECKSIZE>2</PARTCHECKSIZE><!--每块数据校验方法,1表示奇偶校验,2表示crc16,3表示crc32...--><PARTCHECKTYPE>0</PARTCHECKTYPE><!--块大小,单位MB,不含校验位--><PARTSIZE>64</PARTSIZE><!--最后一块信息--><LASTPART><ID>5</ID><!--最后一块大小,单位byte,不含校验位--><SIZE>15746</SIZE></LASTPART></CURRENT></ROOT>(2)初始信息文件为一空白文件,名称为I。(3)数据文件名称类似于D0,D1,D2…2.追加文件时,如图2所示,按照“写文件->提交”的逻辑来确保文件的完整性,可以支持多次写入文件后再进行一次提交。3.一次写文件流程如图3所示,开始写之前先要占用状态文件,占用状态文件通过独占写共享读的打开文件方式来实现。如果占用状态文件失败,则表示文件正在被其他用户操作,直接返回失败。占用状态文件成功后,检测当前文件状态,如果不为正常状态,则说明文件需要进行回滚,回滚成功后才能继续写文件操作。写文件前,先记录当前文件块的校验值,再标记状态文件为写开始,写完后状态文件标记为写结束,同时释放状态文件。一次写文件结束后,可以继续跟着进行下一次写操作或进行提交操作。一次提交最多只能提交一块数据大小,可以支持多次写操作叠加后一起提交。4.回滚流程如图4所示,回滚时截断未提交部分的数据内容,同时重新写入校验值。回滚操作只有在写文件时才会进行,读文件时不需要进行回滚操作。回滚时,需要处理跨块回滚的情形,此时需要本文档来自技高网...
一种支持追加写和共享读的文件存储方式

【技术保护点】
一种支持追加写和共享读的文件存储方式,其特征在于,包括如下步骤: 步骤一:创建新文件,实际意义即创建一个与文件同名的目录,目录下存在3种类型的文件,状态文件、数据文件和信息文件; 所述状态文件记录文件可读取大小、文件属性、文件名、数据文件分块信息等内容; 所述数据文件存储文件内容,以固定大小分块存储; 所述信息文件在追加写文件时使用,记录写之前数据文件的校验值,在回滚文件时进行校验; 步骤二:追加写文件,在所述步骤一创建的文件中追加写入文件数据后,提交数据; 所述追加写文件时可以多次进行写操作后一起提交数据; 步骤三:读文件,在追加写文件的同时支持读取已提交的数据内容。

【技术特征摘要】
1.一种支持追加写和共享读的文件存储方式,其特征在于,包括如下步骤:步骤一:创建新文件,实际意义即创建一个与文件同名的目录,目录下存在3种类型的文件,状态文件、数据文件和信息文件;所述状态文件记录文件可读取大小、文件属性、文件名、数据分块信息、校验算法、文件状态等内容;所述数据文件存储文件内容,以固定大小分块存储;所述信息文件在追加写文件时使用,记录写之前数据文件的校验值,在回滚文件时进行校验;步骤二:追加写文件,在所述步骤一创建的文件中追加写入文件数据后,提交数据;所述追加写文件时可以多次进行写操作后一起提交数据;所述追加写文件,主要包括如下步骤:(1)检测当前文件状态,如果文件为非正常状态,则进入步骤(2),否则进入步骤(3);(2)回滚数据文件;(3)计算数据块信息,...

【专利技术属性】
技术研发人员:谢亮
申请(专利权)人:南京壹进制信息技术有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1