发明名称 一种基于索引的计算机连续数据保护方法
摘要 本发明涉及一种基于索引的计算机连续数据保护方法,属于计算机数据存储和保护技术领域。数据块元数据包括数据块标识、时间戳和存储池地址,在服务器端内存中设置两个缓冲队列、一个标识索引表,在硬盘上建立日志文件,存储池接收到数据块后进行去重处理,服务器端根据标识索引表和数据块标识将元数据存写入到其中一个缓冲队列的存储区中,若写完后存储区已满,该存储区中的元数据写入到日志文件中,并更新标识索引表,之后到来的元数据写入到另一缓冲队列的存储区中。本发明方法使用双缓冲队列缓存元数据,能够避免系统阻塞;建立标识索引表和日志文件,加快元数据的查询速度;服务器端的存储池会对数据块进行去重处理,节省了存储空间。
申请公布号 CN102521269B 申请公布日期 2013.06.19
申请号 CN201110373181.9 申请日期 2011.11.22
申请人 清华大学 发明人 汪东升;王占业
分类号 G06F17/30(2006.01)I;G06F12/02(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 一种基于索引的计算机连续数据保护方法,其特征在于,该方法包括以下步骤:(1)定义计算机数据中的每个数据块的元数据,元数据包括数据块标识、时间戳和数据块在存储池中的地址,其中数据块标识为一个整数,客户端对数据块标识进行分配;(2)在服务器端的内存中设置第一缓冲队列和第二缓冲队列,其中第一缓冲队列或第二缓冲队列用于存储数据块的元数据,其中第二缓冲队列或第一缓冲队列作为另一缓冲队列已满后的备用缓冲队列;第一缓冲队列和第二缓冲队列根据元数据中数据块标识的个数进行分区,用户预先设定存储区容量大小,存储区容量大小为S,同一个存储区内的元数据的数据块标识相同,按照时间戳递增的顺序对一个存储区中的元数据进行排列,按照数据块标识的大小对多个存储区从小到大的顺序进行排列;(3)为每个数据块标识生成一个相应的日志文件,将该日志文件存储在服务器端的硬盘上;(4)在服务器端的内存中建立一个标识索引表,该标识索引表共有四个字段,包括数据块标识、用于表示标识索引中元数据在缓冲队列中位置的标志位、与数据块标识相对应的日志文件在服务器端硬盘上的地址以及日志文件中元数据的个数,其中的标志位表示元数据在哪个缓冲队列,0为第一缓冲队列,1为第二缓冲队列;(5)当用户对数据块的内容进行修改时,客户端在该数据块打上修改时刻的时间戳,并将修改后的数据块、数据块标识以及修改时刻的时间戳发送到服务器端;(6)服务器端接收到上述打上时间戳的数据块,根据数据块的内容通过哈希算法计算出该数据块在计算机存储池的地址,具体过程为:根据数据块的内容,为每个数据块产生一个全局唯一的哈希值作为该数据块的存储池地址,并利用该哈希值来快速判断数据块在存储池中是否已存在,只有该数据块不存在时,才将数据块添加到存储池中去;(7)服务器端检索上述标识索引表,得到与该数据块标识相对应的标志位,根据该标志位确定与该数据块相对应的元数据在哪个缓冲队列,再计算元数据写入到缓冲队列的存储区,计算方法为:数据块标识×存储区容量=存储区的起始位置,若写入该元数据后存储区未满,则流程结束,若写入该元数据后存储区已满,则进行步骤(8);(8)服务器端将之后到来的具有相同数据块标识的元数据写入到另一缓冲队列中位置与原缓冲队列相对应的存储区里,检索标识索引表,得到与该数据块标识相对应的日志文件地址,根据该日志文件地址将原缓冲队列的已满存储区中的元数据写入到该日志文件中,之后该存储区清空,并更新服务器端内存中的标识索引表中元数据在缓冲队列中位置的标志位以及元数据个数,流程结束。
地址 100084 北京市海淀区清华园1号