CN101799783A - 一种数据存储处理方法、查找方法及其装置 - Google Patents

一种数据存储处理方法、查找方法及其装置 Download PDF

Info

Publication number
CN101799783A
CN101799783A CN200910036731A CN200910036731A CN101799783A CN 101799783 A CN101799783 A CN 101799783A CN 200910036731 A CN200910036731 A CN 200910036731A CN 200910036731 A CN200910036731 A CN 200910036731A CN 101799783 A CN101799783 A CN 101799783A
Authority
CN
China
Prior art keywords
data
bloom filter
log
flash memory
filter data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910036731A
Other languages
English (en)
Inventor
孟小峰
饶兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Renmin University of China
Original Assignee
Huawei Technologies Co Ltd
Renmin University of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Renmin University of China filed Critical Huawei Technologies Co Ltd
Priority to CN200910036731A priority Critical patent/CN101799783A/zh
Priority to EP10150977A priority patent/EP2209074A1/en
Priority to US12/689,712 priority patent/US8225029B2/en
Publication of CN101799783A publication Critical patent/CN101799783A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Abstract

本发明实施例公开了一种数据存储处理方法、查找方法及其装置,其中,所述数据存储处理方法包括:将数据以顺序存储的方式写入到闪存中的数据记录区;将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。

Description

一种数据存储处理方法、查找方法及其装置
技术领域
本发明涉及通讯领域,尤其涉及一种数据存储处理方法、数据查找方法及其装置。
背景技术
近年来,随着制造技术的成熟,闪存(Flash)存储器的成本越来越低,存储容量和密度越来越大,逐渐在存储器市场上占据重要地位。已经有取代磁盘作为主要联机存储介质的趋势。由于Flash的工作原理与磁盘截然不同,现有的存储系统不能很好在Flash上工作,必须要通过一些中间映射技术将Flash封装成像磁盘一样的块设备才能运行,效率十分低下,使Flash的快速读写特性得不到充分发挥。大容量Flash存储器的出现,为更加高效地存储和查找数据带来了希望,同时也对高效的数据存储技术的实现提出了前所未有的挑战。
目前,提出一种日志结构的Flash文件系统JFFS(Journal Flash File System),其最新版本JFFS3中采用了B+树作为索引结构。JFFS3直接把最新插入或更新后的原始数据记录标记为日志,并在内存中维护一个小型的B+树结构以提高日志区的记录查找效率。等到缓存满了之后再对Flash上的B+树进行更新,同时日志区的数据记录将转变为正常数据记录,此后插入的记录则为新的日志记录,并在内存中为其维护新的临时索引,如此反复进行。它的出发点是要延缓B+树结构的更新,以达到批量更新日志的目的。
事实上,JFFS算法的原理在本质上是通过使用日志来延缓对B+树结构的更新,从而将多次Flash写操作合并为一次写。但减少Flash写操作却并不意味着能够提高数据的写入效率。另外,该算法需要占用大量的Flash空间,数据维护操作复杂。
发明内容
有鉴于此,本发明实施例提供一种数据存储处理方法及其对应的数据存储处理装置,数据查找方法及其对应的数据查找装置。减少了对Flash存储空间的占用,数据维护操作简单,并能实现高效的数据查找。
本发明实施例提供的一种数据存储处理方法,包括:
将数据以顺序存储的方式写入到闪存中的数据记录区;
将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;
为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。
相应的,本发明实施例提供的一种数据存储处理装置,包括:
记录处理单元,用于将数据以顺序存储的方式写入到闪存中的数据记录区;
日志处理单元,用于将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;
日志摘要处理单元,用于为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。
相应的,本发明实施例提供的一种与所述存储方法相对应的数据查找方法包括:
根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;
根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
相应的,本发明实施例提供的一种数据查找装置,包括:
摘要查找单元,用于根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;
日志查找单元,用于根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
数据查找单元,用于以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。
附图说明
图1是本发明的数据存储处理方法的一实施例的流程示意图;
图2.1是本发明的将数据写入日志摘要区的一阶段状态示意图;
图2.2是本发明的将数据写入日志摘要区的另一阶段状态示意图;
图2.3是本发明的将数据写入日志摘要区的另一阶段状态示意图;
图3是本发明的数据存储装置的一实施例结构组成示意图;
图4是本发明的数据查找方法的一实施例流程示意图;
图5是本发明的数据查找装置的一实施例结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据存储处理方法,图1是本发明实施例提供的数据存储处理方法的第一实施例的流程示意图,如图1所示,本实施例的方法主要包括:
步骤S100,将数据以顺序存储的方式写入到闪存中的数据记录区;其中,所述顺序存储是指,后写入的数据顺序追加到前一数据的末尾,并在数据区的某尾地址存入数据后,返回到数据区的首地址继续存储。具体的,在步骤S100,在将数据写入到闪存的数据记录区的时候,可首先将数据写入到所述数据记录区在内存中的缓冲页中,当内存中的缓冲页满的时候,再将缓冲页的内容写入到闪存的数据记录区中。
步骤S102,将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;其中,所述物理地址为所述数据在所述数据记录区中存储的物理页地址,在数据查找过程中,可利用该物理地址查找到该数据。其中,所述数据的标识用于唯一标志一个数据,具体的所述数据的标识可以为一个键值Key。当采用Rec表示一个数据,Addr表示该数据在数据记录区中的物理地址,Key为所述数据的键值,这样,一个日志信息可表示为<R.Key,R.Addr>。相应的,在步骤S102,在将所述日志信息以顺序存储的方式写入到闪存中的日志区时,可首先将所述日志信息写入到所述日志区在内存中的缓冲页中,当内存中的缓冲页满的时候,再将缓冲页中的内容写入到闪存的日志区中。具体的,所述日志信息在日志区中以日志页的形式存在。
步骤S104,为所述日志区中的日志信息构建布隆过滤器数据(Bloom Filter),并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。相应的,在步骤S104,在将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区时,可首先将所述布隆过滤器数据写入到所述日志摘要区在内存中的缓冲页中,当内存中的缓冲页满的时候,再将缓冲页中的内容写入到闪存的日志摘要区中。进一步,首先将所述布隆过滤器数据写入到所述日志摘要区在内存中的缓冲页中,当内存中的缓冲页满的时候,再将缓冲页中的内容写入到闪存的日志摘要区中的一种实现方式可为:
将所述日志摘要缓冲区的一页中的每个布隆过滤器数据均划分为四段,将每个布隆过滤器数据的第一段到第四段数据以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个物理页中,直到所述四个物理页被写满;
将所述四个物理页中每个物理页包含的每个块再次划分为四段,将每个块的四段数据的第一段到第四段以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个新的物理页中,直到新的物理页再次被写满;依此类推,直到将所述日志摘要缓冲区中一个布隆过滤器数据的每一位分别写入到所述闪存的日志摘要区的不同物理页中。
图2.1至图2.3示出了本发明实施例将布隆过滤器数据写入闪存的日志摘要区的阶段示意图。具体的,假设一个Bloom Filter包含m比特的数字,本例中是希望将Bloom Filter的m比特的数字分别存储在m个物理页中,即第i个比特位存储在第i个物理页中。写入日志摘要区时,首先将Bloom Filter存储在日志摘要区在内存中的缓冲区(SLA缓冲)内。当SLA缓冲区满的时候,将缓冲区的Bloom Filter写入到闪存中。随着SLA缓冲区的不断的写入,对闪存上的数据不断的进行重组。重组的基本思想是:如果第一次将一个Bloom Filter存储在P个物理页中,那么将Bloom Filter的第[(i-1)*m/P,i*m/P)比特位存储在第i个物理页中。比如说,第1个物理页存储的是一个Bloom Filter的第[0,m/P)比特位的数字。则在进行重组时,利用一个Flash物理页通常由4个独立的块(sector)组成的特性,将每个物理页的数据在重组时划分为4块,存储到4个新分配物理页中,依此类推,直到将一个Bloom Filter的m比特的数字分别存储在m个物理页中。具体的,参考图2.1至图2.3。
如图2.1所示,当一个SLA缓冲区满的时候(图中以一个SLA缓冲页为例,一个SLA缓冲页包含4个Bloom Filter),将缓冲区的Bloom Filter写入到闪存中时,首先将所述SLA缓冲区中的每个Bloom Filter划分为4个划分块,分配4个物理页来存储SLA缓冲区中的Bloom Filter。具体的,将4个Bloom Filter的第一个划分块写入到第一个物理页的第一个sector中。写入的方法是按列写入数据,即先写每个Bloom Filter的第一位,然后写第二位,依此类推,如图2.1所示。将Bloom Filter写入到闪存中后,清除SLA缓冲区的数据。当SLA缓冲区第二次充满时,同样将4个Bloom Filter按列分别写入上述4个物理页中的第二个sector,如此反复进行。而当这4个物理页被写满之后,则进行图2.2所示的步骤。
如图2.2所示,将图2.1中写满的4个物理页进行重组。重组的方法是把这4页数据读入内存,然后写回Flash。写入的方法是将一个物理页的数据写入到新分配4个物理页中,比如第一页的数据写入到新分配的[1,4]页上,具体的,将一个物理页的每个Sector划分为4个划分块,然后将每一块写入新的4页中的一个sector中,依此类推。数据的组织方式和第一步一样,也是按列进行存储。这样Flash上的日志摘要区就变为16个新的物理页,即如图2.2中所示的物理页,每个物理页中的数据来自于第一步中物理页的一个划分块。第一步中的4个物理页将被作为垃圾等待回收。当有数据不停写入的时候,如此反复,直到这16个物理页全部写满。
当图2.2中的物理页全部写满的时候,进行重组,如图2.3所示,重组的方法也是将每个物理页的数据写入新的4个物理页中,并且按列的方式写入。过程和图2.2一致。然后如此反复进行,直至达到m个物理页,也就是将Bloom Filter的m比特位的数据分别存储在m个物理页中。
较佳的,本实施例在步骤S104之后还可包括:
步骤S106,将需删除的数据在所述数据记录区中的物理地址以顺序存储的方式写入到闪存中的数据删除区。具体实现中,该步骤可选。
较佳的,本实施例在步骤S106之后还可包括:
步骤S108,将用于替换所述删除的数据的更新数据以顺序存储的方式写入到闪存中的数据记录区。然后执行步骤S102。具体实现中,该步骤可选。
本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。
相应的,本发明实施例提供了一种数据存储处理装置,该数据存储处理装置可用于执行数据存储处理方法,图3是本发明实施例的数据存储处理装置的一实施例结构组成示意图,如图3所示,本实施例的装置至少包括记录处理单元30、日志处理单元32以及日志摘要处理单元34,其中:
记录处理单元30,用于将数据以顺序存储的方式写入到闪存中的数据记录区;
日志处理单元32,用于将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;仍参考图3,日志处理单元32包括第一缓冲处理单元321和日志写入单元323,其中:
第一缓冲处理单元321,用于将所述数据记录区中的物理地址及所述数据的标识形成日志信息存入内存中的日志缓冲区;
日志写入单元323,用于将所述日志缓冲区中的日志信息以顺序存储的方式写入到闪存中的日志区。
日志摘要处理单元34,用于为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。仍参考图3,日志摘要处理单元34包括第二缓冲处理单元341和摘要写入单元343,其中:
第二缓冲处理单元341,用于为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据存入内存中的日志摘要缓冲区;
摘要写入单元343,用于将所述日志摘要缓冲区中的布隆过滤器数据以顺序存储的方式写入到闪存中的日志摘要区。具体的,摘要写入单元343可将所述日志摘要缓冲区的一页中的每个布隆过滤器数据均划分为四段,将每个布隆过滤器数据的第一段到第四段数据以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个物理页中,直到所述四个物理页被写满;将所述四个物理页中每个物理页包含的每个块再次划分为四段,将每个块的四段数据的第一段到第四段以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个新的物理页中,直到新的物理页再次被写满;依此类推,直到将所述日志摘要缓冲区中一个布隆过滤器数据的每一位分别写入到所述闪存的日志摘要区的不同物理页中。
较佳的,本实施例的装置还包括:
删除处理单元36,用于将需删除的数据在所述数据记录区中的物理地址以顺序存储的方式写入到闪存中的数据删除区。具体实现中,删除处理单元36可选。
较佳的,本实施例的记录处理单元30还用于将用于替换所述删除处理单元36删除的数据的更新数据以顺序存储的方式写入到闪存中的数据记录区。具体实现中,记录处理单元30的该功能可选。
本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。
相应的,本发明实施例提供了一种对应于上述数据存储处理方法的数据查找方法,图4是本发明实施例的数据查找方法的一实施例流程组成示意图。如图4所示,本实施例的方法包括:
步骤S400,根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;所述数据的标识用于唯一标志一个数据,具体的所述数据的标识可以为一个键值Key。具体的,在步骤S400,利用所述数据的标识及多个哈希函数计算出第二布隆过滤器数据,所述第二布隆过滤器数据包括多个布隆过滤器数据;遍历所述日志摘要区中的布隆过滤器数据,查找是否存在所述第二布隆过滤器数据指示的位均为1的第一布隆过滤器数据,如果是,则根据该第一布隆过滤器数据确定出所述数据的标识对应的日志信息在所述日志区域中的位置。
如前面的数据存储处理方法,在日志摘要区中,一个Bloom Filter的m比特的数字分别存储在m个物理页中,现假设有k个用于构造第二布隆过滤器数据的哈希函数的个数,Key为要查询的日志对应的键值。利用k个哈希函数计算出Key对应的k个第二Bloom Filter,分别为h1(Key),h2(Key)......hk(Key)。然后在所有的日志摘要区的Bloom Filter中查找h1(Key),h2(Key),...,hk(Key)指示的位置上为1的第一布隆过滤器数据,如果找到所述h1(Key),h2(Key),...,hk(Key)位置上为1的Bloom Filter(即查找到第一布隆过滤器数据),则可根据该第一布隆过滤器数据确定包含所述键值Key的日志信息在日志区域的位置。如果在所有的Bloom Filter中都不能找到h1(Key),h2(Key),...,hk(Key)位置上为1的BloomFilter,那么证明不存在包含所述键值Key的日志信息。
步骤S402,根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
步骤S404,以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
较佳的,本实施例在步骤S404之前还包括:
步骤S403,以所述物理地址为索引查找所述闪存中的数据删除区中是否存储有所述物理地址;
如果查找到,则停止到所述闪存中的数据记录区中的相应物理地址处获取数据;
如果未查找到,则执行步骤S404,以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。
相应的,本发明实施例提供了数据查找装置,该装置可用于实现上述的数据查找方法,具体的图5是本发明实施例的数据查找装置的一实施例结构组成示意图,如图5所示,本实施例的装置至少包括摘要查找单元50、日志查找单元52以及数据查找单元54,其中:
摘要查找单元50,用于根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;仍参考图5,摘要查找单元50包括计算单元501和遍历查找单元503,其中:
计算单元501,用于利用所述数据的标识及多个哈希函数计算出第二布隆过滤器数据,所述第二布隆过滤器数据包括多个布隆过滤器数据;
遍历查找单元503,用于遍历所述日志摘要区中的布隆过滤器数据,查找是否存在所述第二布隆过滤器数据指示的位均为1的第一布隆过滤器数据,如果是,则确定出所述数据的标识对应的日志信息在所述日志区域中的位置。具体的,遍历查找单元503可从不同物理页中依次提取出一个布隆过滤器数据的每一位,当每提取出一位,如果该位为所述第二布隆过滤器指示的位,则判断该位是否为1,如果是继续提取该布隆过滤器数据的下一位;当遍历完一个布隆过滤器数据,采用相同的方式遍历下一个布隆过滤器数据,直到遍历完所述日志摘要区中的布隆过滤器数据。
日志查找单元52,用于根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
数据查找单元54,用于以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
较佳的,本实施例的数据查找装置还包括:
删除查找单元56,用于以所述物理地址为索引查找所述闪存中的数据删除区中是否存储有所述物理地址;
如果查找到,则停止到所述闪存中的数据记录区中的相应物理地址处获取数据;
如果未查找到,则通知所述数据查找单元54以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。具体实现中,该删除查找单元56可选。
本发明实施例,采用数据记录区、日志区以及日志摘要区的Flash存储架构,减少了对Flash存储空间的占用,并且各区均采用顺序存储的方式存储,使数据维护操作简单,同时本发明实施例利用布隆过滤器数据存储日志摘要,可提高数据查询效率。
需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (14)

1.一种数据存储处理方法,其特征在于,包括:
将数据以顺序存储的方式写入到闪存中的数据记录区;
将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;
为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。
2.如权利要求1所述的数据存储处理方法,其特征在于,所述将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区包括:
将所述数据记录区中的物理地址及所述数据的标识形成日志信息存入内存中的日志缓冲区;
将所述日志缓冲区中的日志信息以顺序存储的方式写入到闪存中的日志区。
3.如权利要求1所述的数据存储处理方法,其特征在于,所述为所述日志区中的日志构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区包括:
为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据存入内存中的日志摘要缓冲区;
将所述日志摘要缓冲区中的布隆过滤器数据以顺序存储的方式写入到闪存中的日志摘要区。
4.如权利要求3所述的数据存储处理方法,其特征在于,所述将所述日志摘要缓冲区中的布隆过滤器数据以顺序存储的方式写入到闪存中的日志摘要区包括:
将所述日志摘要缓冲区的一页中的每个布隆过滤器数据均划分为四段,将每个布隆过滤器数据的第一段到第四段数据以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个物理页中,直到所述四个物理页被写满;
将所述四个物理页中每个物理页包含的每个块再次划分为四段,将每个块的四段数据的第一段到第四段以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个新的物理页中,直到新的物理页再次被写满;依此类推,直到将所述日志摘要缓冲区中一个布隆过滤器数据的每一位分别写入到所述闪存的日志摘要区的不同物理页中。
5.一种数据查找方法,其特征在于,包括:
根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;
根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
6.如权利要求5所述的数据查找方法,其特征在于,所述根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置包括:
利用所述数据的标识及多个哈希函数计算出第二布隆过滤器数据,所述第二布隆过滤器数据包括多个布隆过滤器数据;
遍历所述日志摘要区中的布隆过滤器数据,查找是否存在所述第二布隆过滤器数据指示的位均为1的第一布隆过滤器数据,如果是,则根据所述第一布隆过滤器数据确定出所述数据的标识对应的日志信息在所述日志区域中的位置。
7.如权利要求6所述的数据查找方法,其特征在于,所述遍历所述日志摘要区中的布隆过滤器数据,查找是否存在所述多个布隆过滤器数据指示的位均为1的第一布隆过滤器数据包括:
从不同物理页中依次提取出一个布隆过滤器数据的每一位,当每提取出一位,如果该位为所述第二布隆过滤器指示的位,则判断该位是否为1,如果是继续提取该布隆过滤器数据的下一位;
当遍历完一个布隆过滤器数据,采用相同的方式遍历下一个布隆过滤器数据,直到遍历完所述日志摘要区中的布隆过滤器数据。
8.一种数据存储处理装置,其特征在于,包括:
记录处理单元,用于将数据以顺序存储的方式写入到闪存中的数据记录区;
日志处理单元,用于将所述数据在所述数据记录区中的物理地址及所述数据的标识形成日志信息,并将所述日志信息以顺序存储的方式写入到闪存中的日志区;
日志摘要处理单元,用于为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据以顺序存储的方式写入到闪存中日志摘要区。
9.如权利要求8所述的数据存储处理装置,其特征在于,所述日志处理单元包括:
第一缓冲处理单元,用于将所述数据记录区中的物理地址及所述数据的标识形成日志信息存入内存中的日志缓冲区;
日志写入单元,用于将所述日志缓冲区中的日志信息以顺序存储的方式写入到闪存中的日志区。
10.如权利要求9所述的数据存储处理装置,其特征在于,所述日志摘要处理单元包括:
第二缓冲处理单元,用于为所述日志区中的日志信息构建布隆过滤器数据,并将所述布隆过滤器数据存入内存中的日志摘要缓冲区;
摘要写入单元,用于将所述日志摘要缓冲区中的布隆过滤器数据以顺序存储的方式写入到闪存中的日志摘要区。
11.如权利要求10所述的数据存储处理装置,其特征在于,所述摘要写入单元用于将所述日志摘要缓冲区的一页中的每个布隆过滤器数据均划分为四段,将每个布隆过滤器数据的第一段到第四段数据以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个物理页中,直到所述四个物理页被写满;将所述四个物理页中每个物理页包含的每个块再次划分为四段,将每个块的四段数据的第一段到第四段以顺序存储的方式分别按列写入到闪存中的日志摘要区的四个新的物理页中,直到新的物理页再次被写满;依此类推,直到将所述日志摘要缓冲区中一个布隆过滤器数据的每一位分别写入到所述闪存的日志摘要区的不同物理页中。
12.一种数据查找装置,其特征在于,包括:
摘要查找单元,用于根据数据的标识查找闪存中的日志摘要区的布隆过滤器数据,并根据查找到的布隆过滤器数据确定数据的标识对应的日志信息在日志区域中的位置;
日志查找单元,用于根据所述确定的位置,在所述日志区域中查找包含所述数据的标识的日志信息,并获得所述日志信息中的物理地址;
数据查找单元,用于以所述物理地址为索引到所述闪存中的数据记录区中的相应物理地址处获取数据。
13.如权利要求12所述的数据查找方法,其特征在于,所述摘要查找单元包括:
计算单元,用于利用所述数据的标识及多个哈希函数计算出第二布隆过滤器数据,所述第二布隆过滤器数据包括多个布隆过滤器数据;
遍历查找单元,用于遍历所述日志摘要区中的布隆过滤器数据,查找是否存在所述第二布隆过滤器数据指示的位均为1的第一布隆过滤器数据,如果是,则确定出所述数据的标识对应的日志信息在所述日志区域中的位置。
14.如权利要求13所述的数据查找方法,其特征在于,所述遍历查找单元用于从不同物理页中依次提取出一个布隆过滤器数据的每一位,当每提取出一位,如果该位为所述第二布隆过滤器指示的位,则判断该位是否为1,如果是继续提取该布隆过滤器数据的下一位;当遍历完一个布隆过滤器数据,采用相同的方式遍历下一个布隆过滤器数据,直到遍历完所述日志摘要区中的布隆过滤器数据。
CN200910036731A 2009-01-19 2009-01-19 一种数据存储处理方法、查找方法及其装置 Pending CN101799783A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200910036731A CN101799783A (zh) 2009-01-19 2009-01-19 一种数据存储处理方法、查找方法及其装置
EP10150977A EP2209074A1 (en) 2009-01-19 2010-01-18 Data storage processing method, data searching method and devices thereof
US12/689,712 US8225029B2 (en) 2009-01-19 2010-01-19 Data storage processing method, data searching method and devices thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910036731A CN101799783A (zh) 2009-01-19 2009-01-19 一种数据存储处理方法、查找方法及其装置

Publications (1)

Publication Number Publication Date
CN101799783A true CN101799783A (zh) 2010-08-11

Family

ID=41719089

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910036731A Pending CN101799783A (zh) 2009-01-19 2009-01-19 一种数据存储处理方法、查找方法及其装置

Country Status (3)

Country Link
US (1) US8225029B2 (zh)
EP (1) EP2209074A1 (zh)
CN (1) CN101799783A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521312A (zh) * 2011-12-01 2012-06-27 深圳市航天泰瑞捷电子有限公司 一种文件索引的存储方法及文件系统
CN103064815A (zh) * 2012-12-29 2013-04-24 广东志成冠军集团有限公司 一种单spi总线控制多can接口的控制方法
CN103544097A (zh) * 2013-10-21 2014-01-29 广东威创视讯科技股份有限公司 嵌入式系统的日志存储方法、系统及日志读取方法和系统
CN103645993A (zh) * 2013-12-24 2014-03-19 飞天诚信科技股份有限公司 一种基于大页面Flash的数据更新和读取方法
CN103744939A (zh) * 2013-12-31 2014-04-23 华为技术有限公司 一种日志的记录方法、日志的恢复方法及日志管理器
CN103902408A (zh) * 2012-12-27 2014-07-02 阿普赛尔有限公司 使用布隆过滤器检测副本之间的偏差
CN104156212A (zh) * 2014-08-08 2014-11-19 四川九成信息技术有限公司 一种程序执行方法
WO2015024416A1 (zh) * 2013-08-21 2015-02-26 华为技术有限公司 索引机制合并方法、搜索方法、装置及设备
WO2017190604A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 数据库系统中事务恢复的方法与数据库管理系统
CN107787489A (zh) * 2015-06-16 2018-03-09 微软技术许可有限责任公司 包括层级的文件存储系统
CN108089821A (zh) * 2017-12-20 2018-05-29 福建星海通信科技有限公司 一种微控制器数据存储管理的方法
CN108182292A (zh) * 2018-01-30 2018-06-19 广东欧珀移动通信有限公司 应用于智能音箱的日志文件处理方法、装置及智能音箱
CN110147296A (zh) * 2018-02-11 2019-08-20 华为技术有限公司 数据处理方法、装置、设备及可读存储介质
CN116028990A (zh) * 2023-03-30 2023-04-28 中国科学技术大学 一种基于区块链的防篡改隐私保护日志审计方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
US8352482B2 (en) 2009-07-21 2013-01-08 Vmware, Inc. System and method for replicating disk images in a cloud computing based virtual machine file system
US8352490B2 (en) * 2009-10-22 2013-01-08 Vmware, Inc. Method and system for locating update operations in a virtual machine disk image
CN102185889B (zh) * 2011-03-28 2014-01-22 北京邮电大学 基于iSCSI的重复数据删除方法
US8972651B2 (en) 2011-10-05 2015-03-03 Hitachi, Ltd. Storage system and storage method
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
CN103049553B (zh) * 2012-12-28 2016-03-02 华为技术有限公司 一种检索路径存储的方法、装置及系统
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9524235B1 (en) * 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
CN103729303B (zh) * 2014-01-20 2017-03-29 飞天诚信科技股份有限公司 一种Flash的数据写入和读取方法
US20160253425A1 (en) * 2014-01-17 2016-09-01 Hewlett Packard Enterprise Development Lp Bloom filter based log data analysis
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US20150339141A1 (en) * 2014-05-20 2015-11-26 International Business Machines Corporation Memory management for virtual machines
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US11119996B2 (en) * 2019-01-16 2021-09-14 Sqream Technologies Ltd. System and method of bloom filter for big data
CN116303124B (zh) * 2023-03-29 2024-01-30 浙江正泰仪器仪表有限责任公司 一种数据搜索方法、装置、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516320B1 (en) * 1999-03-08 2003-02-04 Pliant Technologies, Inc. Tiered hashing for data access
US7548928B1 (en) * 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
EP1988474A1 (en) * 2007-05-04 2008-11-05 Axalto SA System and method of managing indexation of flash memory
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521312B (zh) * 2011-12-01 2015-05-13 深圳市航天泰瑞捷电子有限公司 一种文件索引的存储方法及文件系统
CN102521312A (zh) * 2011-12-01 2012-06-27 深圳市航天泰瑞捷电子有限公司 一种文件索引的存储方法及文件系统
CN103902408B (zh) * 2012-12-27 2018-01-26 西部数据技术公司 用于检测复制内容区块之间的差异的方法和系统
CN103902408A (zh) * 2012-12-27 2014-07-02 阿普赛尔有限公司 使用布隆过滤器检测副本之间的偏差
US9524258B2 (en) 2012-12-29 2016-12-20 Guangdong Zhicheng Champion Group Co., Ltd. Method for controlling multiple CAN interfaces through single SPI bus
CN103064815B (zh) * 2012-12-29 2015-09-02 广东志成冠军集团有限公司 一种单spi总线控制多can接口的控制方法
CN103064815A (zh) * 2012-12-29 2013-04-24 广东志成冠军集团有限公司 一种单spi总线控制多can接口的控制方法
CN104424204A (zh) * 2013-08-21 2015-03-18 华为技术有限公司 索引机制合并方法、搜索方法、装置及设备
WO2015024416A1 (zh) * 2013-08-21 2015-02-26 华为技术有限公司 索引机制合并方法、搜索方法、装置及设备
CN104424204B (zh) * 2013-08-21 2017-08-11 华为技术有限公司 索引机制合并方法、搜索方法、装置及设备
CN103544097B (zh) * 2013-10-21 2016-04-13 广东威创视讯科技股份有限公司 嵌入式系统的日志存储方法、系统及日志读取方法和系统
CN103544097A (zh) * 2013-10-21 2014-01-29 广东威创视讯科技股份有限公司 嵌入式系统的日志存储方法、系统及日志读取方法和系统
CN103645993A (zh) * 2013-12-24 2014-03-19 飞天诚信科技股份有限公司 一种基于大页面Flash的数据更新和读取方法
CN103645993B (zh) * 2013-12-24 2016-04-06 飞天诚信科技股份有限公司 一种基于大页面Flash的数据更新和读取方法
CN103744939A (zh) * 2013-12-31 2014-04-23 华为技术有限公司 一种日志的记录方法、日志的恢复方法及日志管理器
CN104156212A (zh) * 2014-08-08 2014-11-19 四川九成信息技术有限公司 一种程序执行方法
CN107787489A (zh) * 2015-06-16 2018-03-09 微软技术许可有限责任公司 包括层级的文件存储系统
CN107787489B (zh) * 2015-06-16 2021-06-08 微软技术许可有限责任公司 包括层级的文件存储系统
WO2017190604A1 (zh) * 2016-05-06 2017-11-09 华为技术有限公司 数据库系统中事务恢复的方法与数据库管理系统
CN108089821A (zh) * 2017-12-20 2018-05-29 福建星海通信科技有限公司 一种微控制器数据存储管理的方法
CN108182292A (zh) * 2018-01-30 2018-06-19 广东欧珀移动通信有限公司 应用于智能音箱的日志文件处理方法、装置及智能音箱
CN110147296A (zh) * 2018-02-11 2019-08-20 华为技术有限公司 数据处理方法、装置、设备及可读存储介质
CN110147296B (zh) * 2018-02-11 2021-07-09 华为技术有限公司 数据处理方法、装置、设备及可读存储介质
CN116028990A (zh) * 2023-03-30 2023-04-28 中国科学技术大学 一种基于区块链的防篡改隐私保护日志审计方法

Also Published As

Publication number Publication date
US20100185807A1 (en) 2010-07-22
US8225029B2 (en) 2012-07-17
EP2209074A1 (en) 2010-07-21

Similar Documents

Publication Publication Date Title
CN101799783A (zh) 一种数据存储处理方法、查找方法及其装置
US10303596B2 (en) Read-write control method for memory, and corresponding memory and server
CN104346357B (zh) 一种嵌入式终端的文件存取方法及系统
CN103577339B (zh) 一种数据存储方法及系统
CN103458023B (zh) 分布式闪存存储系统
CN102521269B (zh) 一种基于索引的计算机连续数据保护方法
CN102890722B (zh) 应用于时序历史数据库的索引方法
US20100146213A1 (en) Data Cache Processing Method, System And Data Cache Apparatus
CN102364474A (zh) 用于机群文件系统的元数据存储系统和管理方法
CN106844555A (zh) 一种用于电网wams系统的时序数据存储方法
CN107491523A (zh) 存储数据对象的方法及装置
CN104424219B (zh) 一种数据文件的管理方法及装置
CN105117415A (zh) 一种优化的ssd数据更新方法
CN105955664B (zh) 一种基于段结构的瓦记录转换层的读写方法
CN102314397A (zh) 缓存数据块的处理方法
CN102567415B (zh) 一种数据库的控制方法和装置
CN102467572A (zh) 支持重复数据删除程序的数据区块查询方法
CN110109927A (zh) 基于LSM树的Oracle数据库数据处理方法
CN104281717A (zh) 一种建立海量id映射关系的方法
CN100449545C (zh) 访问扇区数据的方法和系统
CN102609492B (zh) 一种支持表模式可变的元数据管理方法
CN104156432A (zh) 一种文件访问方法
CN116257523A (zh) 一种基于非易失存储器的列式存储索引方法及装置
CN101963993B (zh) 一种数据库单表记录快速查找的方法
CN103399915A (zh) 一种搜索引擎索引文件的优化读取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100811