[发明专利]一种基于Flash的事务处理方法有效
申请号: | 200910018428.8 | 申请日: | 2009-09-24 |
公开(公告)号: | CN101661433A | 公开(公告)日: | 2010-03-03 |
发明(设计)人: | 田友强 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 青岛联智专利商标事务所有限公司 | 代理人: | 李升娟 |
地址: | 266100山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 flash 事务处理 方法 | ||
技术领域
本发明涉及一种基于Flash的事务处理方法,具体地说,是涉及一种动态Flash的事务处理方法,属于存储器技术领域。
背景技术
Flash作为一种存储介质,在存储领域得到广泛的应用。Flash在物理结构上分成若干个物理区块(Block),区块之间相互独立,其自身具有以下特性:(1)由于Flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对flash存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1,且擦除操作的最小单位是一个区块,而不是单个字节;(2)Flash的擦写寿命有次数限制;(3)块擦除的时间比较长;(4)Flash在使用过程中,可能导致某些区块的损坏,而区块一旦损坏,将无法进行修复。因此,在使用传统方法对Flash进行数据存储时,存储速度较慢,且擦写频繁,降低了Flash的使用寿命。
为解决传统Flash存储方法存在的上述问题,本申请人曾提出了一种Flash的动态存储方法,通过将Flash存储空间划分为若干个逻辑分区,将逻辑分区中的每条数据记录占据的空间作为虚拟扇区,并对每个虚拟扇区设置一个虚拟扇区分配表,且Flash存储器以数据记录作为基本单元进行数据的读写操作。在写入数据时采用两头并进的方式,数据记录从逻辑分区的一端依次写入,而与其对应的虚拟扇区分配表从逻辑分区的另一端依次写入,从而能够充分利用Flash的存储空间,相当于减少了Flash中Block的擦除次数,提高了数据的读写速度,提高了Flash的使用寿命。
但现有Flash存储技术均没有考虑数据的一致性问题。因为在将一组相互关联的数据写入Flash过程中,很可能会出现突然断电等异常情况,造成相互关联的数据只有一部分写入,从而造成数据的不一致性,进而因数据不一致导致非常严重的后果。
发明内容
本发明的目的在于提供一种基于Flash的事务处理方法,通过在虚拟扇区分配表中增加与事务处理有关的信息,同一事务的数据的有效性保持一致,从而解决了数据不一致的问题。
为解决上述技术问题,本发明采用以下技术方案予以实现:
一种基于Flash的事务处理方法,所述Flash存储空间划分为若干个逻辑分区,每个逻辑分区包括一个或多个连续的物理区块,所述逻辑分区存储至少一种类型的数据记录;所述每条数据记录所占据的存储空间作为一个虚拟扇区,每个虚拟扇区设置有一个虚拟扇区分配表;其特征在于,
所述虚拟扇区分配表及与所述虚拟扇区分配表相对应的数据记录依次写入至所述逻辑分区的物理区块中;
所述每个虚拟扇区分配表中包括有标记事务类型的事务ID,以及标记数据记录是否属于事务中的数据的事务标志;
在将数据记录写入至所述逻辑分区的物理区块中时,首先判断所述数据记录是独立数据还是事务中的数据,并根据判断结果设置所述事务ID及事务标志的值。
根据本发明,考虑到数据的备份,所述每个虚拟扇区分配表中还包括有标记事务新旧程度的事务版本号。在当前写入至所述逻辑分区的数据记录为事务中的数据,且所述当前数据记录对应的事务ID与已写入的数据记录的事务ID相同时,将所述当前数据记录对应的事务版本号加1。
根据本发明,为充分利用Flash存储空间,提高数据备份效率,在所述逻辑分区剩余一块空的物理区块时,对所述逻辑分区中最早写入的物理区块进行数据清理。
在对所述物理区块进行数据清理时,若读取到的数据记录为事务中的数据,判断所述数据记录对应的事务版本号与已写入的相同事务ID的数据记录的最大版本号之差;若所述差大于设定值,则丢弃所读取到的数据记录,若所述差不大于设定值,则将所读取到的数据记录写入至所述空的物理区块中。
根据本发明,所述设定值优选为1。这样,同一事务能够保留至少两个版本号,既尽可能地减少对Flash存储器空间的占用,又能兼顾数据错误时对历史数据进行追溯。
根据本发明,考虑到数据记录的备份,所述每个虚拟扇区分配表中还包括有用来标记与所述虚拟扇区分配表相对应的数据记录的新旧程度的记录版本号,以及标记所述数据记录的类型的数据类型。在当前写入的数据记录的数据类型与已写入的数据记录的数据类型相同时,将所述当前数据记录对应的记录版本号加1。
根据本发明,为充分利用Flash存储空间,提高数据备份效率,在所述逻辑分区剩余一块空的物理区块时,对所述逻辑分区中最早写入的物理区块进行数据清理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910018428.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种计算机之间新的通讯方式
- 下一篇:豆类淀粉现代加工工艺