CN101408880B - 使用分割文件元数据的文件管理方法和装置 - Google Patents

使用分割文件元数据的文件管理方法和装置 Download PDF

Info

Publication number
CN101408880B
CN101408880B CN200810107950.9A CN200810107950A CN101408880B CN 101408880 B CN101408880 B CN 101408880B CN 200810107950 A CN200810107950 A CN 200810107950A CN 101408880 B CN101408880 B CN 101408880B
Authority
CN
China
Prior art keywords
metadata
file
node
static
back end
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.)
Expired - Fee Related
Application number
CN200810107950.9A
Other languages
English (en)
Other versions
CN101408880A (zh
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101408880A publication Critical patent/CN101408880A/zh
Application granted granted Critical
Publication of CN101408880B publication Critical patent/CN101408880B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种使用分割文件元数据的文件管理方法和装置。如闪存之类的存储器中的文件管理,包括在存储器中存储包括第一类型文件元数据的第一节点、包括文件数据的第二节点和包括第二类型文件元数据的第三节点,所述第二类型文件元数据包括文件状态以及第一和第二节点的存储位置信息。第三节点可包括:包括第二节点的存储位置信息的节点;以及包括索引表的节点,所述索引表将第二节点的存储位置信息的存储位置交叉引用到第一节点的存储位置。可以提供方法和装置。

Description

使用分割文件元数据的文件管理方法和装置
相关申请交叉引用
本申请根据35U.S.C§119要求2007年10月12日递交的韩国专利申请No.10-2007-0103183的优先权,其整体公开内容一并于此用作参考。
技术领域
本发明涉及存储系统和方法,更具体地,涉及文件管理系统和方法。
背景技术
闪存(flash memory)通常电可擦除和/或可编程,且通常用于相对大单元的数据存储。例如,闪存广泛用于计算机和计算机控制装置的操作系统和其他计算机程序的存储,以及例如数码相机和音乐播放器之类的消费产品的视频、音频和/或其他媒体文件的存储。
图1示出了闪存的常规使用。CPU 11和随机存取存储器(RAM)14通过总线15通信,该总线可以包括数据线和控制信号线。RAM 14可用于临时存储程序代码如操作系统和应用程序,以及CPU 11对之进行操作的数据。闪存控制器12也连接到总线15,且控制总线15和闪存13之间的数据传输,该闪存13可用于CPU 11和RAM 14所使用的信息的非易失存储。例如,在一些应用中,引导程序可存储在闪存13中,CPU 11可通过闪存控制器12加载引导程序。在其他应用中,数据,例如音频和视频文件,可通过闪存控制器12在闪存13和总线15之间传输。
在一些应用中,RAM 14可用于支持管理闪存13的文件系统。参考图2,应用程序21可通过文件系统管理器22读取和写入数据,该文件系统管理器22通过闪存翻译逻辑(FTL)23与闪存24相接口,该闪存翻译逻辑23将面向硬盘的地址信息,即扇区地址,转换为闪存地址信息,例如块和页地址信息。FTL 24例如可以实现在闪存控制器中,如上面参照图1描述的闪存控制器12。
多种不同的文件系统可以用于闪存。图3示出了常规FAT(文件分配表)文件系统,包括BIOS参数块BPB区、FAT表区、目录项区和数据区。闪存翻译逻辑FTL将FAT文件系统中的扇区号转换为块和页号,从而FAT表、目录项和数据存储在闪存中的特定块和页位置。
图4和5示出了在NAND闪存应用中使用FAT文件系统时可能发生的操作示例。参考图4,来自FAT系统的扇区6的信息由闪存翻译层FTL映射为闪存的块0、页2。参考图5,如果修改块0页2中的数据,扇区6重映射为块0中的新页3。具体地,闪存翻译层FTL可在闪存中搜索空白页,且将修改的数据写入该空白页。随后将先前的页标记为无效,直到执行“碎片收集”程序以擦除无效页,从而它们可以被释放以用于以后的写入。
由于FAT文件系统最初开发用于与闪存具有不同特性的硬盘驱动器,已经开发了更适合于闪存特性的其他类型文件系统。这些文件系统的例子包括JFFS和JFFS2,记载在2001年在Ottawa Linux Symposium发表的David Woodhouse的文章“JFFS:The Journalling Flash File System”中。
发明内容
本发明的一些实施例提供了在存储器中管理文件的方法,包括:在闪存中存储包括第一类型文件元数据的第一节点、包括文件数据的第二节点和包括第二类型文件元数据的第三节点,第二类型元数据包括文件状态以及第一和第二节点的存储位置信息。在一些实施例中,该方法还可包括:读取第三节点以检索第一节点和/或第二节点的存储位置信息,并基于检索的存储位置信息访问第一节点和/或第二节点。第一类型元数据可以包括与第二类型元数据相比改变更少的信息。例如,第一类型元数据可包括文件识别信息和/或文件创建信息,而第二类型元数据可包括文件状态信息。
根据另外的实施例,第三节点包括:包括第二节点的存储位置信息的节点;以及包括索引表的节点,索引表将第二节点的存储位置信息的存储位置交叉引用到第一节点的存储位置。该方法还可包括:基于索引表,检索包括第一类型元数据的节点的存储位置;响应于检索的存储位置,读取包括第一类型元数据的节点;从读取的包括第一类型元数据的节点中识别第一节点;检索包括与所识别的第一节点相对应的第二节点的存储位置信息的节点的存储位置;以及响应于所检索的包括与所识别的第一节点相对应的第二节点的存储位置信息的节点的存储位置,访问第二节点。
该方法还可包括执行文件写入操作,其中将文件数据和第二类型文件元数据作为新节点写入存储器中,而不将第一类型元数据写入存储器的新节点中。在另外的实施例中,以周期或非周期的方式,间歇写入包括文件数据的各个部分的新节点以及包括第二类型元数据的新节点,所述第二类型元数据包括针对包括数据的所述部分的节点的存储位置信息。
本发明另外的实施例提供了在存储器中管理文件的方法,包括:管理包括文件识别信息的第一类文件元数据以及包括文件状态信息和文件存储位置信息的第二类文件元数据,分别作为存储器中的第一和第二类型节点。在对文件的一系列文件写入操作中,第二类型节点可以比第一类型节点更频繁地写入存储器。在对文件的文件写入操作中,将新的第二类型节点写入新的存储位置,而不写入新的第一类型节点。
根据本发明另外的实施例,一种装置包括:配置成与存储器通信的存储控制电路;和文件系统管理电路,与存储控制电路可操作地连接,且配置成使得存储控制电路在存储器中存储包括第一类型文件元数据的第一节点、包括文件数据的第二节点和包括第二类型文件元数据的第三节点,第二类型元数据包括文件状态以及第一节点和第二节点的存储位置元数据。本发明另外的实施例提供了计算机程序产品,包括计算机可读存储介质中包含的计算机程序代码,该计算机程序代码包括:程序代码,配置成在存储器中存储包括第一类型文件元数据的第一节点、包括文件数据的第二节点和包括第二类型文件元数据的第三节点,所述第二类型元数据包括文件状态以及第一和第二节点的存储位置信息。另外的实施例提供了存储装置,包括非易失性存储介质,其中文件存储为包括第一类型文件元数据的第一节点、包括文件数据的第二节点和包括第二类型文件元数据的第三节点,第二类型元数据包括文件状态信息以及第一和第二节点的存储位置信息。
附图说明
图1是示出了常规计算系统体系结构的示意框图。
图2-5是示出了常规的基于FAT的闪存文件系统的示意框图。
图6是示出了根据本发明一些实施例的文件系统的示意框图。
图7是示出了图6的文件系统的装置和操作的示意框图。
图8是示出了根据本发明的一些实施例用于向使用图6的文件系统的闪存中写入文件的操作的流程图。
图9是示出了根据本发明的一些实施例用于从图6的闪存中读取文件的操作的流程图。
图10是示出了根据本发明一些实施例的文件系统的示意框图。
图11是示出了用于图10中文件系统的装置和操作的示意框图。
图12是示出了根据本发明的一些实施例用于向使用图10的文件系统的闪存中写入文件的操作的流程图。
图13是示出了根据本发明的一些实施例用于从使用图10的文件系统的闪存中读取文件的操作的流程图。
图14是示出了根据本发明另外的实施例用于支持文件系统的装置和操作的示意框图。
图15是示出了根据本发明的一些实施例用于向使用图10的文件系统闪存中写入文件的操作的流程图。
具体实施方式
以下,参考示出本发明实施例的附图更充分的描述本发明。然而,本发明可以许多不同形式实现,且不应解释为受限于此处提出的实施例。相反,提供这些实施例使得公开充分而完整,且将本发明的范围充分传达给本领域的技术人员。
在附图中,为了清楚,元件的尺寸或结构可理想化或放大。可以理解的是,当将元件称作“连接到”或“耦合到”另一元件,它可以直接连接到或耦合到另一元件,或可以存在插入元件。相反,当将元件称作“直接连接到”或“直接耦合到”另一元件,则不存在插入元件。相同数字始终指示相同元件。正如此处所使用,术语“和/或”包括一个或多个相关所列项目的任意或所有组合。
可以理解的是,尽管这里可以使用术语第一、第二、第三等描述各种元件、组件和/或部分,这些元件、组件和/或部分不应为这些术语限制。这些术语仅仅用于将一个元件、组件或部分与另一元件、组件和/或部分区分。因此,在不脱离本发明教导的情况下,下面讨论的第一元件、组件或部分可以称之为第二元件、组件或部分。
这里使用的术语仅仅是为了描述具体实施例,而不是限制本发明。正如此处使用的,单数形式也意味着包括复数形式,除非上下文中另外明确指出。进一步可以理解的是,在说明中使用的术语“包括”说明存在所说的特征、整数、步骤、操作、元件和/或组件,但是不排除存在或增加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。
除非有另外的定义,此处使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员的通常理解相同的含义。进一步可以理解的是,术语,例如在常用词典中定义的那些,应解释为具有与相关技术和本发明的背景一致的含义,而不应解释为理想化的或过于刻板的理解,除非这里明确的如此定义。
下面描述在应用于闪存装置时本发明的特定实施例。然而,可以理解的是,本发明可以应用于其他类型存储系统,包括但不限制于其他类型固态存储装置、磁存储系统和光存储系统。
本发明的一些实施例源于如下认识:通过区分相对“静态”的文件元数据(如文件名、创建日期等)与更“动态”的元数据(如文件大小、最后编辑日期等),可以在装置中,尤其是具有如闪存之类的特征(例如块擦除和类似约束条件)的装置中,实现文件的更有效存储。这些不同类型的信息可以两种不同类型的存储“节点”,即独立的存储单元,存储在存储器中,从而每次以新数据更新文件时不需要重写“静态”元数据。这可以减少一系列更新消耗的存储空间量,从而减少可归因于存储管理功能的开销,例如碎片收集。
图6示出了根据本发明的一些实施例在闪存600中实现的文件系统610。根据文件系统610,使用三种不同类型节点将文件存储在闪存600中。第一类型节点611包括动态文件元数据,例如倾向于频繁改变的文件元数据,如文件大小、最后修改时间、文件分配信息等。第二类型节点612包括静态文件元数据,例如倾向于不那么频繁改变的文件元数据,如文件ID、创建时间、文件名等。第三类型节点613包括文件数据,例如不同于元数据的数据,如数字、图形、文本、音频和/或视频数据。第一类型节点611,即动态元数据节点,包括第二和第三类型节点612、613的闪存位置信息(例如存储地址),从而可以访问动态元数据节点611以找到静态元数据节点612和数据节点613。如下面详细描述的,这种设置的使用可在修改文件时减少对闪存的数据再写入,因为静态元数据节点612可以在若干次文件修改中保持不变,从而在每次对闪存进行文件写入操作时不需要重写该元数据节点。
附图7示出了根据本发明的一些实施例用于在闪存720中实现包括动态元数据节点721、静态元数据节点722和数据节点723的文件系统的装置和方法。在处理器710(该处理器710例如可以包括如微处理器之类的计算装置以及相关存储器)上执行的应用程序712向在处理器710上执行的文件系统管理器713提供数据。文件系统管理器713设置成存储和检索来自闪存720的数据。如图所示,文件系统管理器713可包括闪存空间管理器714,闪存空间管理器714设置成为闪存720中的文件管理提供空间管理功能,例如空闲存储位置的识别和选择以及无效存储位置的碎片收集。文件系统管理器713还可包括文件元数据管理器715,文件元数据管理器715设置成维护动态元数据节点721和静态元数据节点722。
应当理解,节点721、722和723可以以多种不同方式设置在闪存内。例如,数据节点723可沿块/页边界存储,例如,每个数据节点723可以对应于页。节点721、722和723也可设置成利用闪存720的存储空间中限定的分区(partition)。例如,如图7所示,静态数据节点722和数据节点723可以依次存储在闪存装置720的“数据块”中,而动态数据节点721存储在存储装置720的“元块”(meta block)中。这在根据下面参照图9描述的方式进行读取操作期间,在试图访问静态元数据节点和数据节点722和723的存储位置信息时,可以有助于动态元数据节点721的检索,因为文件元数据管理器715可以将对文件动态元数据的检索限制在装置720的“元块”,而不必通过存储装置720的数据块进行读取。应当理解,可以使用其他类型的分割方法。
图8示出了根据本发明的一些实施例,将文件写入使用如上所述的文件系统的闪存中的示例操作。如果存在新的静态元数据,例如,如果新创建文件和/或改变静态元数据如文件名,则将静态元数据存储在闪存的静态元数据节点中(方框810、820)。如果静态元数据不是新的,例如,如果文件已经存储在闪存中且仅仅要改变动态元数据或数据,则已存储文件的静态元数据保持不变。如果存在新数据,则将数据存储在一个或多个数据节点中(方框830、840)。如果不存在新数据,例如,如果创建了文件且不包括数据,则可以绕过数据存储。文件写入操作将随着在闪存的动态元数据节点中存储动态元数据而结束,动态元数据包括静态元数据节点和创建的任何数据节点的闪存位置信息(方框850)。
图9示出了根据本发明另外的实施例从使用如上所述的文件系统的闪存中读取文件的示例操作。为了读取文件,读取闪存中存储的一个或多个动态元数据节点,以获得与之相关联的静态元数据节点的闪存位置信息(方框910)。使用该位置信息访问一个或多个静态元数据节点,以获得闪存中存储的文件的文件识别信息(方框920)。如果定位了与所请求的文件相对应的静态元数据节点,则使用与该静态元数据节点相关联的动态元数据节点中的闪存位置信息访问包含文件数据的数据节点(方框930、940)。如果在静态元数据节点的搜索中没有定位到文件,可产生错误消息(例如,“文件未发现”)(方框930、950)。
根据本发明另外的实施例,上述文件系统可通过增加交叉引用静态文件元数据节点和动态文件元数据节点的第四种类型文件存储节点进一步修改,从而文件定位不需要涉及到搜索闪存中存储的所有动态元数据节点。这种设置可帮助减少支持文件系统所需要的系统存储器(例如RAM)的数量。
图10示出了根据本发明另外的实施例使用文件系统1010设置的闪存1000。在文件系统1010中,文件存储在闪存1000中,使用第一类型节点1011,其包括索引表,所述索引表对文件动态元数据节点1012的闪存位置信息与静态元数据节点1013的闪存位置信息进行交叉引用。类似于上面参照图6-9描述的实施例,动态元数据节点1012包括动态文件元数据,例如,倾向于频繁改变的文件元数据,如文件大小、最后修改时间、文件分配信息等。静态元数据节点1013包括静态文件元数据,例如,倾向于不那么频繁改变的文件元数据,如文件ID、创建日期、文件名等。类似于上面描述的实施例,一个或多个数据节点1014包括来自文件的数据。动态元数据节点1012包括静态元数据节点1013和数据节点1014的闪存位置信息,从而可访问动态元数据节点1012以找到静态元数据节点1013和数据节点1014。
图11示出了根据本发明的一些实施例用于在闪存1120中实现包括文件的索引表节点1121、动态元数据节点1122、静态元数据节点1123和一个或多个数据节点1124的文件系统的装置和方法。在处理器1110上执行的应用程序1112向在处理器1110上执行的文件系统管理器1113提供数据。文件系统管理器1113设置成存储和检索来自闪存1120的数据。如图所示,文件系统管理器1113可包括闪存空间管理器1114,闪存空间管理器1114设置成为闪存1120中的文件管理提供空间管理功能,例如空闲存储位置的识别和选择以及无效存储位置的碎片收集。文件系统管理器1113还包括文件元数据管理器1115,文件元数据管理器1115设置成管理动态元数据节点1122和静态元数据节点1123。文件系统管理器1113进一步包括文件索引管理器1116,文件索引管理器1116设置成维护文件索引表节点1121,文件索引表节点1121交叉引用动态元数据节点1122和静态元数据节点1123的闪存位置信息。
图12示出了根据本发明的一些实施例,将文件写入使用以上参照图10和11所述的文件系统的闪存中的示例操作。如果存在新的静态元数据,例如,如果创建新文件,则将静态元数据存储在闪存的静态元数据节点中(方框1210、1220)。如果静态元数据不是新的,例如,如果文件已存储在闪存中且仅仅要改变数据和动态元数据,则已存储文件的静态元数据保持不变。如果存在新数据,则将数据存储在一个或多个数据节点中(方框1230、1240)。如果不存在新数据,例如,如果文件新创建且不包括数据,则可绕过数据存储。随后将动态元数据存储在闪存的动态元数据节点中,动态元数据包括静态元数据节点和创建的任何数据节点的闪存位置信息(方框1250)。将交叉引用静态元数据节点和动态元数据节点的闪存位置信息的信息存储在闪存中的文件索引表节点中(方框1260)。
图13示出了根据本发明另外的实施例从使用以上参照图10和11所述的文件系统的闪存中读取文件的示例操作。为了读取文件,访问闪存中存储的文件索引表节点(方框1310)。使用来自文件索引表节点的位置信息,读取闪存中存储的一个或多个静态元数据节点,以试图找到所请求的文件(方框1320)。如果发现了合适的静态元数据节点,则使用从索引表获得的位置信息访问相应动态元数据节点(方框1330、1340)。如果没有发现相应的静态元数据节点,可产生错误消息(方框1360)。如果定位了与所请求的文件相对应的静态元数据节点,则可使用与该静态元数据节点相关联的动态元数据节点中的闪存位置信息访问包括文件数据的数据节点(方框1350)。
根据本发明另外的实施例,可以修改以上参照图6-9或10-13所述的文件系统,以允许以分段形式将文件存储在闪存中。该方法例如在减少将文件写入闪存时发生数据损坏的危险方面可能是有利的,尤其对于如媒体文件等小量数据可丢失而不完全破坏该文件价值的文件。
图14示出了根据本发明的一些实施例在闪存中实现这种系统的装置和方法。在处理器1410(该处理器1410例如可包括如微处理器之类的计算装置以及相关存储器)上执行的应用程序1412向在处理器1410上执行的文件系统管理器1413提供数据。文件系统管理器1413设置成存储和检索来自闪存1420的数据。如图所述,文件系统管理器1413可包括闪存空间管理器1414,闪存空间管理器1414设置成为闪存1420中的文件管理提供空间管理功能,例如空闲存储位置的识别和选择以及无效存储位置的碎片收集。文件系统管理器1413还包括文件元数据管理器1415,文件元数据管理器1415设置成使用静态元数据节点1423和动态元数据节点1422a-c存储文件,其中动态元数据节点1422a-c在下面参照图15讨论的断续(intermittent incremental)文件写入操作中在创建相应数据节点1424a-c的同时进行创建。文件系统管理器1413进一步包括文件索引管理器1416,文件索引管理器1416设置成管理文件索引表节点1421,文件索引表节点1421交叉引用动态元数据节点1422a-c和静态元数据节点1423的闪存位置信息。
与以上参照图10-13描述的实施例不同,在图14所示的文件系统中,文件以断续方式存储在闪存中。例如,在一些实施例中,可周期性写入文件数据的一部分,在每个连续写入周期中写入新的、更新的动态元数据节点1422a-c。参照图14,例如,在第一周期,在对数据节点1424a进行写入时,写入动态元数据节点1422a,该动态元数据节点1422a包括数据节点1424a和静态元数据节点1423的闪存位置信息。在随后的周期中,写入第二数据节点1424b,同时写入新的动态元数据节点1422b,该动态元数据节点1422b包括第一数据节点1424a、第二数据节点1424b和静态元数据节点1423的闪存位置信息,从而新的动态元数据节点1422b取代第一动态元数据节点1422a。可以在文件的下个写入周期对第三数据节点1424c和第三动态元数据节点1422c执行类似操作。
图15示出了根据本发明的一些实施例用于根据以上参照图14所述以分段方式将文件写入闪存中的示例操作。如果存在新的静态元数据,例如,如果新创建文件,则将静态元数据存储在闪存的静态元数据节点中(方框1510、1520)。如果静态元数据不是新的,例如,如果文件已经存在且其静态元数据不变,则已存储在闪存中的文件的静态元数据保持不变。如果存在新数据,则将数据存储在一个或多个数据节点中(方框1530、1540)。以递归环(recursive loop)的方式,将文件数据的部分逐步写入闪存中(方框1540),同时将动态元数据存储在动态元数据节点(方框1550)中并将索引表存储在索引表节点中(方框1560)。对数据节点、动态元数据节点和索引表节点进行递归写入,直到文件不再有数据需要存储(方框1570)。如果不存在新的数据,例如,如果文件新创建且不包括数据,可绕过数据存储。应当理解,以上面参照图14和15描述的方式存储的文件可使用基本上与上面参照图13描述的相同操作来读取,除了访问与相应于所需文件的静态节点相对应的动态元数据节点的操作(方框1340)可涉及访问最后写入的动态元数据节点,该动态元数据节点包括通过一系列间断写入周期(例如,参照图14描述的写入周期)写入的数据节点的闪存位置信息。
应当理解,在一些实施例中,间断写入周期可以是非周期性的和/或在每个周期可写入不同量的数据。在其他实施例中,可基于文件类型和/或其他因素选择性地执行周期和非周期写入操作,且可基于文件类型和/或其他因素选择性应用根据图6-9和10-13的间断操作和写入操作。例如,相对短的文件和/或数据完整性对其重要的文件可使用上面参照图10-13描述的操作进行写入,而较长的文件和/或不太重要的文件可使用参照图14和15讨论的操作进行存储。
上文是对本发明的说明且不应解释为其限制。尽管已经描述了本发明的一些示例性实施例,但是本领域的技术人员可以容易的理解,可能做出对示例性实施例的许多修改而不实际脱离本发明的新颖教导和优点。因此,所有这些修改应包含在权利要求限定的本发明的范围内。因此,可以理解的是,上文是对本发明的说明而不应解释为局限于所公开的具体实施例,且对公开实施例的修改以及其他实施例应包含在所附权利要求的范围内。

Claims (10)

1.一种在存储器中管理文件的方法,该方法包括:
在存储器中存储包括静态文件元数据的静态元数据节点、包括文件数据的数据节点和包括动态文件元数据的动态元数据节点,所述动态文件元数据包括文件状态以及静态元数据节点和数据节点的存储位置信息,
其中,动态文件元数据包括倾向于频繁改变的文件元数据,静态文件元数据包括与动态文件元数据相比倾向于更少频繁改变的文件元数据,文件数据包括不同于元数据的数据,
在写入文件时执行文件写入操作,其中将文件数据和动态文件元数据作为新节点写入存储器中,而不将静态文件元数据写入存储器的新节点中,以及
在访问文件时读取动态元数据节点,以检索静态元数据节点和/或数据节点的存储位置信息;和基于所检索的存储位置信息,访问静态元数据节点和/或数据节点。
2.根据权利要求1的方法,进一步包括:周期写入包括文件数据的各个部分在内的新节点以及包括动态文件元数据的新节点,所述动态文件元数据包括针对包括文件数据的所述部分在内的节点的存储位置信息。
3.根据权利要求1的方法,其中,动态元数据节点包括:包括数据节点的存储位置信息在内的节点;以及包括索引表的节点,所述索引表将数据节点的存储位置信息的存储位置交叉引用到静态元数据节点的存储位置。
4.根据权利要求3的方法,进一步包括:
基于索引表,检索包括静态文件元数据的节点的存储位置;
响应于所检索的存储位置,读取包括静态文件元数据的节点;
从读取的包括静态文件元数据的节点中识别静态元数据节点;
检索包括与所识别的静态元数据节点相对应的数据节点的存储位置信息在内的节点的存储位置;和
响应于所检索的包括与所识别的静态元数据节点相对应的数据节点的存储位置信息在内的节点的存储位置,访问数据节点。
5.根据权利要求1的方法,其中,静态文件元数据包括文件识别信息和/或文件创建信息,动态文件元数据包括文件状态信息。
6.根据权利要求1的方法,其中,存储器设置成多个块,每个块包括多个页,且向数据节点分配页。
7.一种在存储器中管理文件的设备,该设备包括:
用于在存储器中存储包括静态文件元数据的静态元数据节点、包括文件数据的数据节点和包括动态文件元数据的动态元数据节点的装置,所述动态文件元数据包括文件状态以及静态元数据节点和数据节点的存储位置信息,
其中,动态文件元数据包括倾向于频繁改变的文件元数据,静态文件元数据包括与动态文件元数据相比倾向于更少频繁改变的文件元数据,文件数据包括不同于元数据的数据,
用于在写入文件时执行文件写入操作的装置,其中将文件数据和动态文件元数据作为新节点写入存储器中,而不将静态文件元数据写入存储器的新节点中,以及
用于在访问文件时读取动态元数据节点的装置,以检索静态元数据节点和/或数据节点的存储位置信息;和基于所检索的存储位置信息,访问静态元数据节点和/或数据节点。
8.根据权利要求7的设备,其中,所述用于在写入文件时执行文件写入操作的装置进一步用于周期写入包括文件数据的各个部分在内的新节点以及包括动态文件元数据的新节点,所述动态文件元数据包括针对包括文件数据的所述部分在内的节点的存储位置信息。
9.根据权利要求7的设备,其中,动态元数据节点包括:包括数据节点的存储位置信息在内的节点以及包括索引表的节点,所述索引表将数据节点的存储位置信息的存储位置交叉引用到静态元数据节点的存储位置。
10.根据权利要求7的设备,其中,静态文件元数据包括文件识别信息和/或文件创建信息,动态文件元数据包括文件状态信息。
CN200810107950.9A 2007-10-12 2008-05-21 使用分割文件元数据的文件管理方法和装置 Expired - Fee Related CN101408880B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR10-2007-0103183 2007-10-12
KR1020070103183A KR101433859B1 (ko) 2007-10-12 2007-10-12 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
KR1020070103183 2007-10-12
US12/015,878 2008-01-17
US12/015,878 US7970806B2 (en) 2007-10-12 2008-01-17 Methods and apparatus for file management using partitioned file metadata

Publications (2)

Publication Number Publication Date
CN101408880A CN101408880A (zh) 2009-04-15
CN101408880B true CN101408880B (zh) 2014-06-11

Family

ID=40535260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810107950.9A Expired - Fee Related CN101408880B (zh) 2007-10-12 2008-05-21 使用分割文件元数据的文件管理方法和装置

Country Status (4)

Country Link
US (1) US7970806B2 (zh)
KR (1) KR101433859B1 (zh)
CN (1) CN101408880B (zh)
TW (1) TW200917031A (zh)

Families Citing this family (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US7756826B2 (en) * 2006-06-30 2010-07-13 Citrix Systems, Inc. Method and systems for efficient delivery of previously stored content
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US9063886B2 (en) * 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
CN101799820B (zh) * 2010-02-08 2013-03-20 深圳市同洲电子股份有限公司 闪存、文件系统挂载方法及装置、数据管理方法及装置
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag
US8892981B2 (en) 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
US8438139B2 (en) 2010-12-01 2013-05-07 International Business Machines Corporation Dynamic rewrite of files within deduplication system
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US8954647B2 (en) 2011-01-28 2015-02-10 Apple Inc. Systems and methods for redundantly storing metadata for non-volatile memory
US9229818B2 (en) 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
CN103067461B (zh) * 2012-12-18 2016-03-30 曙光信息产业(北京)有限公司 一种文件的元数据管理系统以及元数据管理方法
US9069695B2 (en) 2013-03-14 2015-06-30 Apple Inc. Correction of block errors for a system having non-volatile memory
CN103310000B (zh) * 2013-06-25 2017-06-16 曙光信息产业(北京)有限公司 元数据管理方法
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
CN105335095B (zh) * 2014-08-11 2019-04-05 北京兆易创新科技股份有限公司 闪存文件系统的处理方法及装置
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9588691B2 (en) * 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10509770B2 (en) 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11593036B2 (en) 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
WO2018231350A1 (en) 2017-06-12 2018-12-20 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10671434B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Storage based artificial intelligence infrastructure
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US20190354628A1 (en) 2018-05-21 2019-11-21 Pure Storage, Inc. Asynchronous replication of synchronously replicated data
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
GB201810533D0 (en) * 2018-06-27 2018-08-15 Nordic Semiconductor Asa Hardware protection of files in an intergrated-circuit device
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
CN109407989B (zh) * 2018-10-18 2022-02-18 郑州云海信息技术有限公司 一种元数据刷写的方法和装置
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11379254B1 (en) 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11550514B2 (en) 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11625416B1 (en) 2019-09-13 2023-04-11 Pure Storage, Inc. Uniform model for distinct types of data replication
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US20210173945A1 (en) 2019-12-06 2021-06-10 Pure Storage, Inc. Replicating data to a storage system that has an inferred trust relationship with a client
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US12014065B2 (en) 2020-02-11 2024-06-18 Pure Storage, Inc. Multi-cloud orchestration as-a-service
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
RU2754601C1 (ru) * 2020-12-18 2021-09-03 Акционерное Общество "Крафтвэй Корпорэйшн Плс" Способ инкрементального сохранения
US20220197944A1 (en) * 2020-12-22 2022-06-23 Netapp Inc. File metadata service
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
CN113434506B (zh) * 2021-06-29 2023-05-16 平安科技(深圳)有限公司 数据管理及检索方法、装置、计算机设备及可读存储介质
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US12001300B2 (en) 2022-01-04 2024-06-04 Pure Storage, Inc. Assessing protection for storage resources
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction
US12019877B2 (en) * 2022-07-18 2024-06-25 Micron Technology, Inc. Metadata allocation in memory systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734430A (zh) * 2004-08-04 2006-02-15 三星电子株式会社 文件的有效数据管理的方法和设备
CN1920796A (zh) * 2005-08-24 2007-02-28 三星电子株式会社 用于将文件的数据存储在存储块中的高速缓存方法及系统
CN1959672A (zh) * 2005-07-01 2007-05-09 Qnx软件操作系统德国有限公司 文件系统完整性的优化启动验证
CN1983266A (zh) * 2005-07-01 2007-06-20 Qnx软件操作系统德国有限公司 闪速类介质中存储事务记录的文件系统
CN101000629A (zh) * 2006-01-11 2007-07-18 三星电子株式会社 管理隐藏区域的装置和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3715690B2 (ja) 1995-08-02 2005-11-09 キヤノン株式会社 マルチメディアデータファイリングシステム
KR100542572B1 (ko) 2003-02-10 2006-01-11 삼성전자주식회사 파일의 용량 및 메모리 잔량 디스플레이 장치 및 방법
KR20060039373A (ko) 2004-11-02 2006-05-08 삼성전자주식회사 데이터 보호시스템 및 그 방법
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
KR100739722B1 (ko) 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US7516267B2 (en) * 2005-11-03 2009-04-07 Intel Corporation Recovering from a non-volatile memory failure
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
KR20070096429A (ko) * 2006-03-24 2007-10-02 부산대학교 산학협력단 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US10291724B2 (en) * 2007-10-10 2019-05-14 Core Wireless Licensing S.A.R.L. Method, apparatus and computer program product for enabling access to a dynamic attribute associated with a service point
US8140746B2 (en) * 2007-12-14 2012-03-20 Spansion Llc Intelligent memory data management

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1734430A (zh) * 2004-08-04 2006-02-15 三星电子株式会社 文件的有效数据管理的方法和设备
CN1959672A (zh) * 2005-07-01 2007-05-09 Qnx软件操作系统德国有限公司 文件系统完整性的优化启动验证
CN1983266A (zh) * 2005-07-01 2007-06-20 Qnx软件操作系统德国有限公司 闪速类介质中存储事务记录的文件系统
CN1920796A (zh) * 2005-08-24 2007-02-28 三星电子株式会社 用于将文件的数据存储在存储块中的高速缓存方法及系统
CN101000629A (zh) * 2006-01-11 2007-07-18 三星电子株式会社 管理隐藏区域的装置和方法

Also Published As

Publication number Publication date
CN101408880A (zh) 2009-04-15
KR20090037705A (ko) 2009-04-16
KR101433859B1 (ko) 2014-08-27
US20090100115A1 (en) 2009-04-16
TW200917031A (en) 2009-04-16
US7970806B2 (en) 2011-06-28

Similar Documents

Publication Publication Date Title
CN101408880B (zh) 使用分割文件元数据的文件管理方法和装置
CN110678836B (zh) 用于键值存储的持久性存储器
TWI775122B (zh) 用來存取至少一非揮發性記憶體元件的處理單元
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
CN1078364C (zh) 存储器管理方法
US6477616B1 (en) Storage device, storage system, memory management method, recording medium, and computer data signal
KR100389867B1 (ko) 플래시 메모리 관리방법
CN101147133B (zh) 可再编程非易失性存储器系统的方法及存储器系统
CN1223945C (zh) 改进的闪速文件系统
US6678785B2 (en) Flash management system using only sequential write
US5745418A (en) Flash memory mass storage system
JP4738038B2 (ja) メモリカード
US9606746B2 (en) Shiftable memory supporting in-memory data structures
US20080235306A1 (en) Garbage collection in nonvolatile memories using data attributes, computer program products and methods of operating the same
US8819376B2 (en) Merging arrays using shiftable memory
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
KR20080038368A (ko) 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱
CN1542624A (zh) 一种在Flash文件系统中加快逻辑块映射速度的方法
CN113254265B (zh) 基于固态硬盘的快照实现方法、存储系统
US20060224817A1 (en) NOR flash file allocation
KR100479170B1 (ko) 메모리 억세스 제어장치 및 방법
KR101247574B1 (ko) 메모리 기기 상의 데이터 저장 방법, 기기 및 데이터 구조
US8122183B2 (en) Data managing method for flash memory and flash memory device using the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140611

Termination date: 20150521

EXPY Termination of patent right or utility model