使用闪速事务处理压缩Delta日志的方法和设备技术

技术编号:3475842 阅读:244 留言:0更新日期:2012-04-11 18:40
将每条接收到的配置数据添加到易失性缓冲区中的下一个当前空闲的位置。在添加每条接收到的配置数据之后压缩易失性缓冲区的内容。压缩结果被存储在非易失性闪存中。如果该压缩结果比界限短,允许在闪存中由下一个压缩结果覆盖。如果压缩结果比所述界限长,将其存储于闪存中,并且下一个压缩结果被定向到闪存中的不同位置。

【技术实现步骤摘要】

本专利技术一般涉及的
为在存储器中以在以后发生了意外 操作故障的情形下能够恢复数据的方式存储重要的数字数据。特别地, 本专利技术涉及通过使用非易失性闪存和数据压縮,在路由器中存储经常 变化的配置数据。
技术介绍
路由器必须存储它不时接收及随后当新连接被建立和旧连接被弃 用时接收的路由器配置中的变化。对于路由器的正确操作而言,配置 数据是基本的,并且它必须以这样的形式来被保存,即使发生了意外 的错误且造成易失性运行时存储器中的数据破坏或丢失,此后该配置 数据仍能够从所保存的形式中得以恢复。包含了关于路由器配置中的 变化的累积数据的文件常常被称为Delta日志。一些现有技术中的路由器使用闪存作为非易失性存储区,Delta日 志以压縮形式被存储到其中。用于存储Delta日志的存储算法必须考虑 到数据是持续累积的,并且在任何时候都可能发生故障,因而在向非 易失性存储器做下次备份之前,不应允许数据在长时间里只累积在易 失性存储器中。在另一方面,已知的闪存的结构和操作并不适于持续 逐位存储,而是惯于以被称为记录的更大的单位操作闪存。图1示出了依照现有技术使用闪存存储Delta日志的已知方式。在 闪存中分配了两块独立的区域,这里被称为闪速缓冲区101和闪速文 件102。配置数据先被存储在闪速缓冲区,并且只有在积累了足够大的 数据块而基本填满闪速缓冲区101之后,才被传送到闪速文件102。在步骤111,闪存的两个区域均为空。被示意性地示为小箭头的 写指针指示了在闪存的每个区域中下次写操作将要开始的位置。在步骤112,向闪存写入一条配置数据103,使得写指针移动到缓冲区中的下一空闲空间。写指针原来的位置用在括号内的箭头来指示。闪速文件中仍然什么也没有发生。在步骤113发生类似的事件,在那里下一 条配置数据104被写入闪存。只有在步骤114,当闪存变满时,才也向 闪速文件写入某些数据通过使用某些合适的数据压縮算法,闪速缓 冲区的累积内容被压縮,并且压縮结果105被写入闪速文件。闪速文 件中的写指针前移指向下一空闲位置。在步骤115,闪速缓冲区被清除,并开始新一轮的向闪速缓冲区中累积配置数据。下次当压縮发生时, 新的压缩结果将紧随闪速文件中的前一压縮结果而被保存。图1布署的缺陷在于对闪存空间的需求相对较大。
技术实现思路
本专利技术的一个目的是提供用于存储Delta日志的对存储器空间特 别是闪存有较低需求的方法和设备。本专利技术的另一个目的是让用于存 储Delta日志的方法和设备简单而健壮,且适应于范围广阔的各种路由 器实现。通过在易失性存储器中为新的配置数据维护一个缓冲区,在每次 添加新数据的事件发生之后压縮缓冲区的内容,并依赖于其长度,使 用闪速事务处理或者覆盖闪存中上次的压縮结果,或者将新的压縮结 果写入新记录中,本专利技术的上述目的得以实现。依照本专利技术的方法由在撰写为方法的独立权利要求的特征部分中 所陈述的步骤来描述其特征。依照本专利技术的路由器设备由撰写为路由器设备的独立权利要求的 特征部分中所陈述的特性来描述其特征。依照本专利技术的计算机程序产品由撰写为计算机程序产品的独立权 利要求的特征部分中所陈述的特性来描述其特征。当新数据被写入闪存中时,它既可以替换已有的记录(即已有记 录可以被更新),也可以转到全新的记录。这里建议根据所压縮的Delta 日志缓冲区的当前长度在这两种可能中进行选择。如果压縮结果比一 条记录短很多,它可以只更新已有的早先最近写入的记录。配置数据 的持续累积将确保压缩结果会逐渐变长,直至长到足以填满当前记录, 并有可能部分地溢出到闪存中的下一条记录。在那一点上,已完成的 记录被"冻结",缓冲区被清除,且过程重新开始,并且或者从尚有 来自被冻结的记录的剩余空间的记录,或者从闪存中的下一逻辑记录, 来选择闪存中新的写入点。如果选择了尚有来自被冻结的记录的剩余 空间的记录,写入点被设置为记录中紧接着已使用的空间之后。本专利申请中介绍的的本专利技术的示例性实施例不应被理解为陈述 了所附权利要求适用性的局限。动词"包含/包括"在本专利申请中被 用作开放式的限定,它不排除还存在未陈述的特征。除非以其它方式 明确予以声明,在从属权利要求中所陈述的特征可彼此自由组合。在所附的权利要求中,将详细阐明被看作本专利技术特色的新颖的特 征。然而,在结合附图阅读了下面对专利技术书实施例的描述后,将能够 最好地理解本专利技术本身,无论对于其结构还是其操作方法,以及其另 外的目的和优势。附图说明图1示出了使用闪存存储Delta日志的已知方式。 图2示出了依照本专利技术实施例的原则。 图3示出了依照本专利技术实施例的方法。图4示出了依照本专利技术实施例使用存储器存储Delta日志的方式。图5以状态图的形式示出了本专利技术实施例。 图6示出了依照本专利技术实施例的路由器设备。具体实施例方式图2示出了依照本专利技术的实施例将易失性缓冲区的使用和闪存结 合起来的原理。当新的配置数据到来时,它先被写入易失性缓冲区, 如框201所示。在路由器中,该新的配置数据以由协议定义的命令的 形式出现,该由协议定义的命令包括字符串,也可能添加其它文本形 式的数据。易失性缓冲区本质上要比闪存中的记录的大小更大;该缓 冲区可以是记录大小的至少十倍。在框202中,应用压縮算法压縮易失性缓冲区的全部内容。缓冲 区的实际内容,以及压縮算法的效率,决定了在压縮结果中将有多少 比特。如果缓冲区只是刚开始填充,也就是说,在压縮发生之前它只 包含单独的一条配置数据,压縮结果可能甚至比原始的那条配置数据 都长。但是,如果缓冲区中已累积了两条配置数据,压缩比率(压縮 结果的长度与未压缩的配置数据的量之比)就将更为有利,并且在缓 冲区中累积的配置数据越多,压缩比率甚至会越佳。我们假定有一个预先确定的界限或阈值,压縮结果的长度与之进 行比较。界限或阈值比闪存中的记录大小稍大,从而当压缩结果的长 度达到界限或阈值,它将填充闪存中稍大于一个完整记录的空间。如 果压缩结果在字节上比该界限或阈值小,它被用来覆盖(即更新)闪 存中先前最近存储的压縮结果,依照框203所示,而且,它被保持在 那里,等待依次由下一压縮结果覆盖。如果压縮结果大到足以填满至 少一个完整记录,它被存储在闪存(换言之,它覆盖先前最近的压縮 结果但随后被"冻结",并且不被进一步覆盖)且易失性缓冲区被清 除,如框204中所示。下一次在添加了新的配置数据并压縮之后,写 操作将指向闪存中新的位置。图3以更系统的流程图的形式示出了依据本专利技术实施例的方法。在步骤301中,接收一条新的配置数据。在步骤302中,将其写入易 失性缓冲区,从缓冲区写指针指示为空闲的位置开始写入。写入之后, 缓冲区写指针在步骤303中被前移指向易失性缓冲区中下一仍保持空 闲的位置。在步骤304,将易失性缓冲区中的全部内容压缩。在步骤305压 缩结果被写入闪存,更特别地,被写入由闪速写指针所指的闪存的记 录。将向闪存的记录写入实现为闪存事务处理是最有利的,如同在由 同一申请人提交且公布号为WO01/31458的专利申请中所阐明的事务 处理一样,该申请通过引用被结合于此。事务处理是必须全部成功或 全部失败的一组操作。改变路由器的配置数据是典型的具有事务处理 特性的应用,因为如果该路由应用没有成功保本文档来自技高网
...

【技术保护点】
一种在路由器中存储配置数据的方法,其特征在于其包括: 在易失性缓冲区中的下一个当前空闲的位置处添加每条接收到的配置数据, 在添加每条接收到的配置数据之后压缩所述易失性缓冲区的内容,从而获得压缩结果, 在非易失性闪存中存储所述压缩结果, 如果所述压缩结果比界限短,则允许闪存中的压缩结果被要被存储于闪存中的下一个压缩结果覆盖,以及 如果所述压缩结果比所述界限长,则在闪存中保存所述压缩结果,并把要被存储于闪存中的下一个压缩结果定向到所述闪存中的不同位置。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:马蒂哈利沃里
申请(专利权)人:特拉博斯股份有限公司
类型:发明
国别省市:FI[芬兰]

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

1
相关领域技术
  • 暂无相关专利