CN103473250B - 用于保存文件***节点的过去状态的方法与*** - Google Patents
用于保存文件***节点的过去状态的方法与*** Download PDFInfo
- Publication number
- CN103473250B CN103473250B CN201310218204.8A CN201310218204A CN103473250B CN 103473250 B CN103473250 B CN 103473250B CN 201310218204 A CN201310218204 A CN 201310218204A CN 103473250 B CN103473250 B CN 103473250B
- Authority
- CN
- China
- Prior art keywords
- node
- file system
- snapshot
- row
- time
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
通过向文件***表中用于节点的行添加位图来保存文件***中所述节点的过去状态,对文件***表使用选择性元组版本化,以便保存文件***节点的过去状态。
Description
技术领域
本发明总体上涉及计算机,而且更特别地,涉及通过向文件***表中用于节点的行添加位图来对文件***表使用选择性元组版本化(selective tuple versioning),以保存该节点的过去状态。
背景技术
在当今社会,计算机***是普遍存在的。计算机***可以在工作场所、在家庭或者在学校找到。计算机***可以包括数据存储***,或者盘存储***,来处理并存储数据。在各种计算环境中,计算机***包含用于“归档(file away)”信息的文件***,随后用户将检索这种文件***进行处理。文件***是用于组织并管理计算机文件的方法或数据结构。文件***提供用于在计算机上物理地和逻辑地组织文件的更好途径。用于文件***实现的一种已知方法是通过使用关系型数据库。由于各种因素,对于维护计算环境中文件***的状态,出现了挑战。
发明内容
如以上所提到的,文件***是用于组织和管理计算机文件的方法或数据结构。用于文件***实现的一种已知方法是使用关系型数据库。文件***数据库实现为文件***的用户和开发者提供了关系型数据库***的高级的、可扩展的特征。这种特征包括涉及文件***中多个节点(例如,文件/目录)的有效事务与查询。给定这些特征,连同未提到的其它特征一起,对于文件***数据库实现,存在启用/允许维护文件***中单个节点在某个时间点的状态的需求。
相应地,并且鉴于以上所述,提供了各种示例性的方法、***和 计算机程序产品实施例,用于在计算环境中使用选择性元组版本化提供维持文件***(例如,节点的容器)状态的位图。在一种实施例中,仅仅是作为示例,通过向文件***表中用于节点的行添加位图来对文件***使用选择性元组版本化,以保存文件***中该节点的过去状态。
除了以上的示例性方法实施例,还提供了其它示例性***与计算机产品实施例并且提供相关的优点。以上概述的提供是为了以简化的形式介绍在以下具体描述中进一步描述的概念的选择。这种概述不是要识别所保护主题的关键特征或本质特征,也不是要用于帮助确定所保护主题的范围。所保护的主题不限于解决背景技术中所指出的任何或全部缺点的实现。
附图说明
为了让本发明的优点很容易理解,以上简单描述过的本发明的更特定描述将通过参考附图中说明的具体实施例来给出。应当理解,这些图绘出了本发明的实施例,但不能因此就认为是对其范围的限定,通过使用附图,将以附加的特征与细节描述和解释本发明,其中:
图1是说明其中可以实现本发明各方面的、具有示例存储设备的计算***环境的框图;
图2是说明其中可以实现本发明各方面的计算机***中示例性数据存储***的硬件结构的框图;
图3是说明通过向文件***表中用于节点的行添加位图来对文件***表使用选择性元组版本化以保存文件***中该节点的过去状态的示例性方法的流程图;
图4A是说明用于创建节点的示例性方法的流程图;
图4B是说明用于创建快照的示例性方法的流程图;
图4C是说明用于请求保存节点的示例性方法的流程图;
图4D是说明用于更新节点的示例性方法的流程图;
图4E是说明用于检索节点属性的示例性方法的流程图;
图4F是说明用于除去对于保存一特定节点的请求的示例性方法的流程图;
图4G是说明用于删除快照的示例性方法的流程图;
图4H是说明用于删除节点的示例性方法的流程图;及
图5是说明使用选择性元组版本化来保存文件***状态的示例性文件***与快照表的框图。
具体实施例
文件***是节点的容器,而节点是文件/目录的通用名。文件***表代表文件***,而节点被表示为文件***表中所包含的行。文件***可以包含大量节点。文件***数据库实现为文件***的用户和开发者提供关系型数据库***的高级的可扩展的特征。这种特征包括涉及文件***中多个节点(例如,文件/目录)的有效事务与查询。
应用常常需要维护文件***在某个时间点的状态。因此,需要对文件***使用选择性元组版本化来提供文件***快照以维护计算环境中文件***(例如,节点的容器)的状态。还需要通过向文件***表中用于节点的行添加位图来对文件***使用选择性元组版本化以保存该节点的过去状态。为了解决这些需求,计算***必须满足以下要求。(1)计算***应当使得能够利用快照保存文件***在某个时间点的状态,而保存文件***的该状态。(2)计算***应当使得能够在某个时间点保存文件***的节点(例如,通过使用位图来保存)。(3)计算***应当使得能够访问通过快照和/或位图保存的文件***和/或节点。(4)当创建快照时,计算***应当需要恒定的时间和输入/输出(I/O)复杂度并且消耗恒定量的存储空间。(5)在快照的生命周期内,保存文件***的快照的开销不得给文件***用于操纵操作的常规成本增加超过一小恒定因子。而且,快照所消耗的空间应当是在快照的创建与文件***的当前状态之间改变的节点个数的函数(例如,从创建快照的时刻开始改变了两次的文件***(和/或节点)应当只被保存一次)。(6)快照删除必须需要作为由该快照保 存的文件***(和/或节点)个数的函数的时间和I/O复杂度,并且释放由所述快照保存的、被文件***(和/或节点)占用的所有空间。
为了解决以上列出的需求,所说明的实施例设法提供用于在文件***表中保存单个时间点时文件***(例如,节点的容器)状态的文件***快照。每次请求都需要细粒度的快照来保存文件***(例如,节点的容器)的状态。因而,文件***快照实现在复杂度与空间消耗方面必须是可扩展的和高效的。保存(preservation)意味着:如果在拍摄快照之前创建的节点被修改,那么就保存快照创建之前的状态。快照是利用快照表实现的。这种快照表只包含快照创建的时间而不包含关于文件***或文件***节点的任何信息。快照表为每个快照存储单个条目,这个条目包含快照标识(ID)与快照时间戳。
此外,在备选实施例中,通过向文件***表添加位图来保存单个节点的状态,对文件***使用选择性元组版本化。如前面所提到的,文件***是包含文件***中所有节点的表,包括文件***的根目录在内。不同的各种快照下的节点行被存储在文件***表中,挨着不在快照下的行。文件***表中的所有行都包含起始时间和结束时间。快照的创建不影响文件***表中的行,因为行可以在文件***表中被更新,其中的行是在快照之下(如利用起始时间、结束时间和快照时间戳推导出的),该更新会造成行的复制与行的保存。快照的创建向快照表添加新行。稍后,当文件***表中处于快照之下的一行被更新时(如利用起始时间、结束时间和快照时间戳推导出的),该行被复制,而不是被原地更新。一旦创建了快照,文件***就应当允许访问通过该快照保存的节点。文件***必须允许删除快照,并且释放先前被该快照保存的文件***(和/或节点)所占用的所有空间。
在一种实施例中,仅仅是作为示例,文件***节点存储在表中。表的行包含用于每个节点的唯一标识符(例如,节点ID)和诸如名字、大小、创建时间等的节点属性。文件***条目不保留在数据库中。相反,文件***表包含那个文件***中的节点的条目(包括代表 该文件***的根目录的节点)。换句话说,当创建一个文件***时,该文件***是作为只包含根节点的表创建的。随后,其它节点作为根节点的后代(decedent)被创建。为了维护文件***树的层次结构,通过在节点的每个行中保留其父ID,都可以有从每个节点到父节点的参考。基于这种框架,使用元组版本化并且为文件***快照和位图实现而修改元组版本化,并且将其称为选择性元组版本化。选择性元组版本化帮助保存一个维度中行和/或单个节点的过去状态。一个维度可以被定义为数据(例如,消费者/产品数据)的逻辑分组。
在一种实施例中,为了维护文件***与单个节点的状态而使用元组版本化的保存是通过向每一行添加定义该行有效的时间周期的起始时间和结束时间来实现的。当新的一行添加到表时,起始时间包含该新行被添加的时间而且该行的结束时间被设置成无穷大(∞)。为了检索表中的当前条目,查询结束时间等于无穷大的行。当一行在时刻“T”被更新时(其中“T”是用作示例的任意时间变量),该行被复制,以形成一个新行而且该新行的起始时间被设置成等于时刻“T”。要被更新的行是结束时间设置成无穷大的行。旧行的结束时间被更新并设置成等于时刻“T”。为了检索节点表中与时刻“T”相关的条目,查询起始时间小于时刻“T”而且结束时间大于“T”的行(例如,起始时间<T且结束时间>T)。
为了维护文件***的状态,应用选择性元组版本化。通过要求将附加信息添加到数据库,选择性元组版本化使得元组版本化具有“选择性”。选择性元组版本化使得能够有选择性,使得不是表中的所有行都将自动被复制,而是只复制与快照相关的行。首先,“快照表”添加到数据库。换句话说,附加的行添加到快照表并且与节点ID表一起工作。快照表包含拍摄快照的时间,具体而言,快照表中的行包含快照时间戳。与快照相关的所有其它信息(例如,与快照相关的节点)都在主文件***表中维护。而且,为了使得能够保存单个节点,将与特定节点相关的附加字段添加到每一行,以便指示该节点应当还是不应当被保存。新的字段可以表示为位,其中每一位都指利用该节点的应用。与快照表相比,位图允许具体地选择哪些节点要保存,其中快照表保存任意时刻“T”之前的所有节点。使用位图,而不是简单的布尔标志或者引用计数,以便通过给每个应用指定不同的位,允许多个应用彼此独立地保存单个节点。而且,与引用计数(reference count)相反,位图容许应用尝试保存或去保存(unpreserve)相同节点多于一次。
利用快照表中的附加信息和/或文件***表中的位图,通过检查与特定节点有关的行的起始时间是否早于拍摄快照的时间或者通过检查该行中的一位被开启(例如,设置成表示开启的“1”)的时间,可以确定是否要保存该行。
在一种实施例中,对通过快照保存的文件***节点的访问是通过使用与快照相关的快照标识(ID)来实施的。在备选实施例中,对通过位图保存的单个节点的访问是通过使用关于特定节点的行中的起始时间来实施的。快照ID提供了对快照表时间的访问,以便获取创建快照的时间。与快照相关的节点在行中具有小于快照时间戳的起始时间且在行中具有大于快照时间戳的结束时间。
另一方面,如上面所提到的,文件***表中的特定节点是通过位图保存的而且可以通过与该特定节点有关的行中的起始时间来访问。类似于通过使用时间“T”由快照保存的行来访问通过位图保存的行,其中T大于行的起始时间并且小于行的结束时间。通过把快照行从快照表中除去并且通过除去与被删除的快照关联的所有节点,快照可以被删除(例如,节点的结束时间小于无穷大并且在所述节点被创建之后没有创建其它快照,并且所述节点的位图中的每一个都被设置成零“0”)。
对于每个新创建的节点,起始时间和结束时间都添加到主文件***表中的每一行。但是,快照表只包含具有不同快照时间的条目。向文件***表中的每一行添加起始时间与结束时间和保留快照表的结合保存了文件***在某个时间点的状态。另一方面,文件***表中的位图用于保存单个节点在某个时间点的状态。快照ID用于访问通过该快照保存的文件***节点。由于快照的创建只涉及向快照表添加单个行,因此在时间和I/O操作中允许恒定的复杂度并且允许使用恒定量的存储空间。通过复制与特定节点相关的行,在快照的生命周期内通过对快照表的一次查询和对文件***主表的另一次查询来保存节点的状态。可以假定快照表的大小显著小于节点表,因此可以认为与快照表查找操作有关的开销是很小的。对于更新事务,被保存的行的副本添加行***到文件***表。由于***和更新是在单个数据库事务中进行的,因此操作被高效地执行。
此外,从第一次更新之后开始,文件***(例如,节点的容器)被同一个快照保存一次,文件***的起始时间将比快照时间(例如,快照时间戳)晚(例如,在其之后)。这种操作允许消耗这样的空间,该空间是在快照与文件***的当前状态之间发生变化的节点的个数的函数(例如,从快照创建时刻开始改变了两次的节点应当只被保存一次)。
快照也可以被删除。在这么做的时候,快照从快照表的行中被删除,并且执行从文件***表除去不再被任何其它快照引用的节点的查询。由于从快照表除去快照和从文件***表除去节点可以在单个事务中执行,因此大部分数据库***将需要比由快照保存的节点数少得多的I/O操作。而且,在快照删除操作之后,由快照保存的节点所消耗的全部空间都将被释放。而且,应当指出,位图不直接连接到快照,并且用于实现选择性元组版本化。位图允许对单个节点级的更加细粒度的保存。
现在转向图1,绘出了计算***环境的示例性体系结构10。计算机***10包括中央处理单元(CPU)12,其中CPU12连接到通信端口18和存储器设备16。通信端口18与通信网络20通信。通信网络20和存储网络可以配置成与服务器(主机)24和22及存储***通信,其中存储***可以包括存储设备14。存储***可以包括硬盘驱动器(HDD)设备、固态设备(SSD)等,这些设备可以以独立磁盘冗余阵列(RAID)配置。如下所述的操作可以在存储设备14上执 行,其中存储设备14可以位于***10中或者别的地方而且可以具有独立地工作和/或与其它CPU设备12一起工作的多个存储器设备16。存储器设备16可以包括像电可擦除可编程只读存储器(EEPROM)这种存储器或者相关设备的主机。存储器设备16和存储设备14经信号承载介质连接到CPU12。此外,CPU12通过通信端口18连接到通信网络20,其中通信网络20具有附连的多个附加计算机主机***24和22。此外,存储器设备16和CPU12可以嵌入并包括在计算***10的每个部件当中。每个存储***还可以包括一起工作或者作为单独的存储器设备16和/或CPU12的单独的和/或不同的存储器设备16和CPU12。
图2是示出根据本发明的计算机***中数据存储***的硬件结构的示例性框图200。示出了主机计算机210、220、225,每个都充当用于作为数据存储***200的一部分执行数据处理的中央处理单元。群集主机/节点(物理的或虚拟的设备)210、220和225可以是一个或多个新的物理设备或逻辑设备,用于在数据存储***200中实现本发明的目的。在一种实施例中,仅仅是作为示例,数据存储***200可以实现为StorageTMDS8000TM。网络连接260可以是光纤通道架构、光纤通道点到点链路、以太网架构或点到点链路上的光纤通道、FICON或ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、异质的、同质的、公共的(即,互联网)、私有的或者其任意组合。主机210、220和225可以是本地的或者在一个或多个位置之间分布的而且可以配备有到存储控制器240的任何类型的架构(或架构通道)(在图2中未示出)或网络适配器260,诸如光纤通道、FICON、ESCON、以太网、光纤、无线或同轴适配器。数据存储***200相应地配备有用于通信的合适架构(在图2中未示出)或网络适配器260。数据存储***200在图2中绘制为包括存储控制器240及群集主机210、220和225。群集主机210、220和225可以包括群集节点。
为了方便对在此所述方法的更清楚的理解,存储控制器240在图 2中示为单个处理单元,包括微处理器242、***存储器243和非易失性储存装置(“NVS”)216,这将在以下更具体地描述。应当指出,在有些实施例中,存储控制器240包括多个处理单元,每个处理单元都具有其自己的处理器联合体和***存储器,并且通过数据存储***200中的专用网络互连。储存装置230(在图3中标记为230a、230b和230n)可以包括一个或多个存储设备,诸如存储阵列,这些存储设备(通过存储网络)连接到存储控制器240,其中一个或多个群集主机210、220和225连接到每个存储控制器240。
在有些实施例中,储存装置230中所包括的设备可以以回路体系结构连接。存储控制器240管理储存装置230并且便于针对储存装置230的写和读请求的处理。存储控制器240的***存储器243存储程序指令与数据,处理器242可以访问这些程序指令与数据,以便为了执行和管理储存装置而执行本发明的功能和方法步骤,如在此所描述的那样。在一种实施例中,为了执行在此所述的方法与操作,***243包括操作软件250、与之关联或者与之通信。如图2中所示,***存储器243还可以包括用于储存装置230的高速缓存245或者与之通信,在这里高速缓存245也称为“高速缓存存储器”,用于缓冲“写数据”和“读数据”,其中“写数据”和“读数据”分别指写/读请求及它们的关联数据。在一种实施例中,高速缓存245在***存储器243外部的设备中被分配,但仍然可以被微处理器242访问而且,除了执行在此所述的操作之外,还可以用来提供防止数据丢失的附加安全性。
在有些实施例中,高速缓存245是利用易失性存储器和非易失性存储器实现的,并且经本地总线(在图2中未示出)耦合到微处理器242,用于增强数据存储***200的性能。数据存储控制器中所包括的NVS216可以被微处理器242访问并且用来为其它图中所述的本发明的操作和执行提供附加的支持。NVS216也可以被称为“永久性”高速缓存或者“高速缓存存储器”,而且是利用可以使用或者可以不使用外部电力来保持其中所存储数据的非易失性存储器实现的。 为了适于实现本发明目标的任何目的,NVS可以存储在高速缓存245中和利用高速缓存245来存储。在有些实施例中,在数据存储***200断电的情况下,后备电源(在图2中未示出),诸如电池,为NVS216提供足够的电力来保持其中所存储的数据。在某些实施例中,NVS216的容量小于或等于高速缓存245的总容量。
储存装置230可以物理地包括一个或多个存储设备,诸如存储阵列。存储阵列是单个存储设备,诸如硬盘,的逻辑分组。在某些实施例中,储存装置230包括JBOD(简单磁盘捆绑)阵列或者RAID(独立磁盘冗余阵列)阵列。物理存储阵列的集合可以进一步组合,以形成秩,该秩使物理存储与逻辑配置去相关。秩中的存储空间可以分配到逻辑卷中,其中逻辑卷定义写/读请求中规定的存储位置。
在一种实施例中,仅仅是作为示例,如图2中所示的存储***可以包括逻辑卷,或者简单地说是“卷”,可以具有不同种类的分配。储存装置230a、230b和230n示为数据存储***200中的秩,并且在这里被称为秩230a、230b和230n。秩可以是数据存储***200本地的,或者可以位于物理上远离的位置。换句话说,本地存储控制器可以与远端存储控制器连接并且管理位于远端位置的储存装置。秩230a示为配置成具有两个整卷234和236及一个部分卷232a。秩230b示为具有另一个部分卷232b。因此,卷232跨秩230a和230b分配。秩230n示为完全分配到卷238—即,秩230n指卷238的整个物理储存装置。根据以上示例将认识到,秩可以配置成包括一个或多个部分和/或整卷。卷和秩可以进一步分成所谓的“轨道”,其中“轨道”代表固定的存储块。因此,轨道与给定的卷关联并且可以赋予给定的秩。
存储控制器240可以包括快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259。快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259可以与存储控制器240、主机210、220、225和存储设备230中的每一个部件一起工作。快照模块255、 时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259可以在结构上是一个完整的模块或者可以与其它单独的模块关联和/或包括在其中。快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259还可以位于高速缓存245或者其它部件中。
存储控制器240包括用于控制到主机计算机210、220、225的光纤通道协议的控制开关241,用于控制所有存储控制器240的微处理器242,用于存储用于控制存储控制器240操作的微程序(操作软件)250、控制数据和后述每个表的非易失性控制存储器243,用于临时存储(缓冲)数据的高速缓存245及用于帮助高速缓存245读写数据的缓冲器244,用于控制协议以控制到/从存储设备230、快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259——其中可以设置信息——的数据传输的控制开关241。多个缓冲器244可以利用本发明来实现,以帮助在此所述的操作。在一种实施例中,群集主机/节点210、220、225和存储控制器240是通过作为接口的网络适配器(这可以是光纤通道)260——即,经至少一个称为“架构(fabric)”的开关——连接的。
在一种实施例中,主机计算机或者一个或多个物理的或虚拟的设备210、220、225和存储控制器240通过作为接口的网络适配器(这可以是光纤通道)260——即,经至少一个称为“架构”的开关——连接的。在一种实施例中,将描述图2中所示***的操作。微处理器242可以控制存储器243存储来自主机设备(物理的或虚拟的)210的命令信息和用于识别主机设备(物理的或虚拟的)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259彼此通信并且可以是单独的部件或者是一个单独的部件。而且,如果不是全部部件的话,至少几个部件,诸如操作软件250,可以包括在存储器243中。为了适合本发明的目的,所示设备中的每个部件都可以链 接到一起并且彼此通信。
如以上所提到的,快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259还可以位于高速缓存245或者其它部件中。应当指出,RAM模块259可以比作短期(short-term)存储器,而硬盘可以比作长期(long-term)存储器。换句话说,RAM模块259是随机存取存储器。RAM(随机存取存储器)是计算机中保持操作***、应用程序和当前使用的数据的地方,使得它们可以被计算机的处理器242快速到达。RAM比从计算机中其它类型的储存装置、硬盘、软盘和CD-ROM读写都快得多。因而,基于存储体系结构和用户偏好,根据需要,可以使用一个或多个快照模块255、时间戳模块256、主文件***表模块257、位图模块258和选择性元组版本化模块259。
现在转向图3,示出了说明通过向文件***表中用于节点的行添加位图来保存文件***(例如,节点的容器)中该节点的过去状态,对文件***表使用选择性元组版本化的示例性方法300的流程图。方法300开始(步骤302),通过向文件***表中用于节点的行添加位图来保存文件***中该节点的过去状态,对文件***表使用选择性元组版本化(步骤304)。方法300结束(步骤306)。
为了帮助利用选择性元组版本化提供文件***快照以维护文件***的状态,生成文件***(例如,节点的容器)所使用的各种时间戳(例如,起始时间戳、结束时间戳和快照时间戳)。时间戳是通过利用随时间严格递增(单调)的函数生成的。在这种函数(f)中,如果时刻“T1”大于时刻“T2”(例如,T1>T2),则函数f(T1)大于或等于f(T2)(例如,f(T1)≥f(T2)),其中f是函数,T1是第一时刻,而T2是第二时刻。由此,所生成的时间戳是唯一的而且将决不会随时间减小,而是随时间增加。无穷大(∞)的时间值可以通过使用“null”和/或时间计数器可以保留的最大值来定义。
以下描述使用各种文件***操作通过利用选择性元组版本化提供文件***快照以便维护文件***状态的过程。还如下描述使用各种文 件***操作通过利用选择性元组版本化提供位图以便维护单个节点状态的过程。图4A是说明用于创建节点的示例性方法400的流程图。方法400开始(步骤402),连同节点属性一起接收对于创建新节点的请求(步骤404)。在文件***表中创建节点(步骤406)。生成标记为“T1”的新时间戳值(步骤408)。包含新创建的文件***属性的新行被添加到文件***表,新行的起始时间等于“T1”(例如,起始时间=T1)而结束时间等于无穷大(例如,结束时间=∞)(步骤410)。方法400结束(步骤412)。
图4B是说明用于创建快照的示例性方法401的流程图。方法401开始(步骤403)。连同快照ID一起,接收对于创建快照的请求(步骤405)。方法401可以创建快照(步骤407)。生成时间为“T2”的新快照时间戳值(步骤409)。新行添加到快照表,新行的时间戳被设置成等于“T2”(例如,时间=T2)的(步骤411)。方法401结束(步骤413)。
图4C是说明用于请求保存节点的示例性方法405的流程图。方法405开始(步骤414)。方法405可以连同节点ID和请求应用位一起接收保存特定节点的请求(步骤416)。保存特定节点的请求只与位图相关。应当指出,使用快照进行保存是在快照被创建的时候执行的。在节点位图中设置一位(步骤418)。节点起始时间返回到用户,使得能够在随后访问所保存的节点(步骤420)。方法405结束(步骤421)。
图4D是说明用于更新节点的示例性方法425的流程图。方法425开始(步骤417)而且可以连同节点ID和应当改变的节点属性一起接收更新节点的请求(步骤422)。生成时间为“T3”的新时间戳值(步骤424)。然后,方法425确定节点位图是否设置了一位,或者是否存在其中快照时间“T3”大于文件***表中该节点的起始时间且小于该节点的结束时间的快照(步骤426)。如果存在,节点信息就被复制到新行中,该节点的旧行的结束时间设置成等于“T3”(例如,结束时间=T3)(步骤428)。关于该节点的新行是根据更 新请求更新的而且更新后的行的起始时间设置成等于时间“T3”并且更新后的行的位图可以被清除(步骤430)。如果不存在,方法42就结束(步骤431)。
图4E是说明用于从快照检索节点属性的示例性方法435的流程图。方法435开始(步骤432),可以连同节点ID和快照ID一起接收对于从快照检索节点属性的请求(步骤433)。快照时间戳是通过使用快照ID从快照表检索的(步骤436)。方法435使用节点ID从文件***表检索起始时间小于所述快照时间戳而结束时间大于所述快照时间戳的节点(例如,属性)(步骤438)。方法435结束(步骤439)。
图4F是说明用于除去对于保存特定节点的请求的示例性方法445的流程图。方法445开始(步骤440)而且可以接收停止保存节点的请求,该请求包括节点ID、请求应用位和节点起始时间(步骤441)。方法445除去对于保存特定节点的请求(步骤442)。文件***表中位图中的一位可以不被设置(步骤443)。如果节点的位图被清除而且节点的结束时间与无穷大不同,那么,如果该节点的结束时间小于快照表中最早的快照时间戳或者如果该节点的起始时间大于快照表中最近的快照时间戳,就删除该节点的行(步骤444)。方法445结束(步骤446)。
图4G是说明用于删除快照的示例性方法455的流程图。方法455开始(步骤447)而且可以连同快照ID一起接收删除快照的请求(步骤448)。方法455可以删除快照(步骤450)。方法455可以通过使用快照ID从快照表检索快照时间戳“T”(步骤452)。方法455检查是否存在在要删除的快照之前的快照(步骤454)。如果有,方法455就把“Tprev”设置成前一快照的时间(步骤456)。如果不存在之前的快照,就把“Tprev”设置成零“0”(步骤458)。方法455检查是否存在在要删除的快照之后的快照(步骤460)。如果存在,“Tnext”就设置成之后的快照的时间(步骤461)。如果不存在后续的快照,“Tnext”就设置成无穷大“∞”(步骤462)。方 法455可以删除节点表中其位图已经被清除掉而且其起始时间大于Tprev且结束时间小于Tnext的每个节点(步骤463)。从快照表中删除快照行(步骤464)。方法455结束(步骤461)。
图4H是说明用于删除节点的示例性方法465的流程图。方法465开始(步骤466)而且可以连同节点ID一起接收对于删除节点的请求(步骤468)。方法465检查是否节点位图设置了一位,和/或,是否存在其中快照时间戳大于所述节点的起始时间并且小于所述节点的结束时间的快照(步骤469)。如果存在,就生成新的时间戳值“T”并且把该节点的行的结束时间设置成“T”(步骤470)。如果不存在,就从节点表删除该节点行(步骤472)。方法465结束(步骤474)。
图5是说明利用选择性元组版本化来保存文件***的状态的示例性文件***表和快照表的框图500。在图5中,绘出了文件***表和快照表并且其标记为包括“更新前的”和“更新后的”。在“更新前的”文件***表中,说明了用于节点标识(ID)(例如,文件***ID)、起始时间、结束时间、位图、大小和其它各种条目(在图中示为“等等…”)的列。作为示例,图5示为把节点1、2和3添加到文件***表的“更新前的”文件***表。节点1具有起始时间T1,设置成无穷大(∞)的结束时间,位图中设置成等于0000的位,而且节点的大小示为任意值100(在这里仅仅是作为示例示出的)。节点2具有起始时间T2,设置成无穷大(∞)的结束时间,位图中设置成等于0001的位,而且节点的大小示为任意值100(在这里仅仅是作为示例示出的)。节点3具有起始时间T3,设置成无穷大(∞)的结束时间,位图中设置成等于0000的位,而且节点的大小示为任意值100(在这里仅仅是作为示例示出的)。快照表包括标记为快照ID和用于快照时间戳的快照时间的至少两列。快照ID指示设置成等于一“1”的任意值而且快照时间设置成等于T2。没有两个快照时间戳是完全相同的。时间戳之间的次序可以是T1小于T2,而T2小于T3(例如,T1<T2<T3)而且快照时间戳可以标记为“Ts” 而且Ts大于T1并小于T2(例如,Ts>T1并且<T2)。
作为示例,图5还说明了更新了节点1、2和3的“更新后的”文件***表。在节点1中,保存了自从节点1处于快照之下(例如,快照时间戳)以来的状态。通过使用位图保存了自从节点2具有被设置成“开启”的位(例如,位被设置成0001)以来的节点2的状态。但是,节点3的状态没有保存,因为它既不在快照之下(例如,快照时间戳)也没有通过开启位(例如,设置成0001)使用位图来保存。
对于节点1,创建用于节点1的复制行并且用于复制节点1的值具有起始时间T1、设置成T5的结束时间、位图中设置成等于0000的位而且节点的大小示为任意值100(在这里仅仅是作为示例示出的)。现在,在更新之后,所保存的节点1具有起始时间T5、设置成∞的结束时间、位图中设置成等于0000的位且节点的大小示为任意值200(在这里仅仅是作为示例示出的)。
对于节点2,创建用于节点2的复制行并且用于复制节点2的值具有起始时间T2、设置成T6的结束时间、位图中设置成等于0001的位且节点的大小示为任意值100(在这里仅仅是作为示例示出的)。现在,在更新之后,所保存的节点2具有起始时间T6、设置成∞的结束时间、位图中被清除且被设置成等于0000的位且节点的大小示为任意值200(在这里仅仅是作为示例示出的)。
节点3的状态没有保存,因为节点3既不在快照之下(例如,快照时间戳)也没有通过开启位(例如,设置成0001)使用位图来保存。对节点3没有出现复制,而且在更新之后,节点3具有起始时间T7、设置成∞的结束时间、位图中设置成等于0000的位且节点的大小示为任意值200(在这里仅仅是作为示例示出的)。
如图5中所说明的,通过添加与文件***表关联的快照表,对文件***表使用选择性元组版本化,用于在文件***表中存储与节点有关的行。节点行只存储在文件***表中,而快照表用于存储快照请求并保留拍摄快照的时间。文件***表包含具有利用时间戳识别的条目 的行,其中时间戳与为保存文件***的过去状态而创建的快照有关。与快照关联的快照标识(ID)添加到快照表,用于访问特定快照。文件***表只包含关于文件***中所包含的节点的数据。起始时间和结束时间添加到与文件***表中的新节点关联的行。起始时间设置成等于该新行添加到文件***表的时间。结束时间设置成无穷大。换句话说,文件***表中的每一行都包含起始时间和结束时间。当用于节点的一行(在时刻“T”)添加到文件***表时,该节点的起始时间设置成“T”而且结束时间设置成无穷大。
当拍摄快照时,快照时间戳添加到快照表中所创建的新行的一个条目。这个快照保存在该快照创建之前所创建的文件***表中的所有节点。位图用于保存单个节点而不是整个文件***(例如,节点的容器)。文件***表可以被更新,和/或可以接收用于除去对于保存文件***和/或特定节点的状态的请求的请求。新字段添加到文件***表中的每个节点行,用于指示该节点是否应当保存。作为保存的一部分,该字段中的位可以设置成用于响应于接收到保存节点的请求而保存该节点。该位指使用所述节点的应用。作为保存节点的请求的一部分,保存节点的请求是连同节点标识(ID)和用于请求保存该节点的位一起接收的。快照标识(ID)返回到用户,以便访问被保存的节点。当保存使用位图的节点时,返回到用户的值是保存的当前时间,以便允许用户访问所保存的行。快照ID是在快照创建过程中指定的并且允许用户访问通过快照保存的所有行。
还可以连同节点ID和该节点需要更新的相关属性一起接收用于更新节点的请求。请求只能一次更新一个节点。换句话说,一次不能更新多行,而是每次每个请求更新一行。生成指示更新时间的新时间戳。与更新一起,与要更新的节点关联的行被复制到新行中,其结束时间设置成等于所生成的新时间戳。只有当存在快照时间戳大于节点的起始时间并小于节点的结束时间的快照时,才执行复制。节点的起始时间设置成等于新时间戳。
在任何时间点,都可以接收用于请求删除快照的请求。当接收到 删除快照的请求时,删除快照和快照标识(ID)。而且,执行用于除去由所删除快照保存的并且不与快照表中任何其它快照关联的节点的查询。
同时,作为接收用于删除快照和快照标识(ID)的请求的一部分,快照时间戳是通过使用快照ID从快照表检索的。检索之前的快照(例如,在被删除的快照之前并且被标记为“Tprev”的快照)的时间戳和之后的快照(例如,在被删除的快照之后并且标记为“Tnext”的快照)的时间戳。如果在快照表中没有找到在要删除的快照之前的快照,标记为“Tprev”(和/或“之前”)的时间戳就设置成值零。如果在快照表中没有找到在要删除的快照之后的快照,标记为“Tnext”(和/或“之后”)的时间戳就设置成值无穷大。删除快照和与该快照关联的、关于文件***的行,其中所述行具有大于其之前快照的时间戳的起始时间和小于其之后快照的时间戳的结束时间。
所属技术领域的技术人员知道,本发明的各个方面可以实现为***、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器 件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面已经参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把计算机程序指令加载到计算 机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管已经具体地说明了本发明的一种或多种实施例,但是本领域技术人员将认识到,在不背离如以下权利要求中所述的本发明范围的情况下,可以对那些实施例进行修改与变更。
Claims (16)
1.一种在使用处理器设备的计算环境中利用选择性元组版本化来保存文件***节点的过去状态的方法,包括:
通过向文件***表中用于节点的行添加位图来对文件***表使用选择性元组版本化,以保存文件***中所述节点的过去状态;
连同节点标识与所述节点的需要被更新的相关属性一起接收对于更新所述节点的请求,
生成指示所述更新的时间的第二时间值,
如果用于所述节点的位图中的位被设置,就把用于所述节点的行复制到所述文件***表中的新行中,所述新行的结束时间被设置成等于所述第二时间值,及
根据更新请求更新与所述节点相关的行,其中所述行的起始时间被设置成等于第二时间值,并且所述位图被清除。
2.如权利要求1所述的方法,还包括:与使用选择性元组版本化一起,执行以下步骤:
创建节点,所述节点具有要添加到所述文件***表的至少节点标识和相关属性,其中所述节点标识与相关属性包括在所述节点的行中,
生成指示所述行被添加到文件***表的时间的第一时间值,及
把起始时间和结束时间添加到所述文件***表中所述节点的行,其中所述起始时间被设置成等于所述第一时间值,而所述结束时间被设置成等于无穷大。
3.如权利要求2所述的方法,还包括:
使用所述节点的起始时间来访问通过位图保存的节点。
4.如权利要求1所述的方法,还包括:
设置位图中用于保存所述节点的位。
5.如权利要求1所述的方法,还包括:
为使用所述节点的多个应用中的每一个应用指定所述位图中的位中不同的一个位,以允许多个应用中的每一个应用独立地保存所述节点。
6.如权利要求1所述的方法,还包括:
删除文件***表中的节点与行,其中与至少一个文件***有关的位被清除以便删除。
7.如权利要求1所述的方法,还包括执行以下步骤:
连同节点标识、请求应用位和所述节点的起始时间一起接收对于中止保存所述节点的请求,
清除在所述节点的位图中的应用位,及
如果所述节点的位图被清除且所述节点的结束时间不等于无穷大,就删除所述文件***表中的行。
8.一种在计算环境中利用选择性元组版本化保存文件***节点的过去状态的***,包括:
能够在所述计算环境中操作的至少一个处理器设备,其中所述至少一个处理器设备适于:
通过向文件***表中用于节点的行添加位图来对文件***表使用选择性元组版本化,以保存文件***中所述节点的过去状态;
连同节点标识与所述节点的需要被更新的相关属性一起接收对于更新所述节点的请求,
生成指示所述更新的时间的第二时间值,
如果用于所述节点的位图中的位被设置,就把用于所述节点的行复制到所述文件***表中的新行中,所述新行的结束时间被设置成等于所述第二时间值,及
根据更新请求更新与所述节点相关的行,其中所述行的起始时间被设置成等于第二时间值,并且所述位图被清除。
9.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于执行:
创建节点,所述节点具有要添加到所述文件***表的至少节点标识和相关属性,其中所述节点标识与相关属性包括在所述节点的行中,
生成指示所述行被添加到文件***表的时间的第一时间值,及
把起始时间和结束时间添加到所述文件***表中所述节点的行,其中所述起始时间被设置成等于所述第一时间值,而所述结束时间被设置成等于无穷大。
10.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:与使用选择性元组版本化一起,执行以下步骤:
创建节点,所述节点具有要添加到所述文件***表的至少节点标识和相关属性,其中所述节点标识与相关属性包括在所述节点的行中,
生成指示所述行被添加到文件***表的时间的第一时间值,及
把起始时间和结束时间添加到所述文件***表中所述节点的行,其中所述起始时间被设置成等于所述第一时间值,而所述结束时间被设置成等于无穷大。
11.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:
设置位图中所述至少一个文件***的位,以把快照关联到所述至少一个文件***。
12.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于使用所述节点的起始时间来访问通过所述位图保存的节点。
13.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:
设置位图中用于保存所述节点的位。
14.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:
为使用所述节点的多个应用中的每一个应用指定所述位图中的位中不同的一个位,以允许多个应用中的每一个应用独立地保存所述节点。
15.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:
删除文件***表中的节点与行,其中与至少一个文件***有关的位被清除以便删除。
16.如权利要求8所述的***,其中所述至少一个处理器设备进一步适于:与删除快照和快照标识一起,执行以下步骤:
连同节点标识、请求应用位和所述节点的起始时间一起接收对于中止保存所述节点的请求,
清除在所述节点的位图中的应用位,及
如果所述节点的位图被清除且所述节点的结束时间不等于无穷大,就删除所述文件***表中的行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/489,392 | 2012-06-05 | ||
US13/489,392 US9031911B2 (en) | 2012-06-05 | 2012-06-05 | Preserving past states of file system nodes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473250A CN103473250A (zh) | 2013-12-25 |
CN103473250B true CN103473250B (zh) | 2016-08-17 |
Family
ID=49671552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310218204.8A Active CN103473250B (zh) | 2012-06-05 | 2013-06-04 | 用于保存文件***节点的过去状态的方法与*** |
Country Status (2)
Country | Link |
---|---|
US (2) | US9031911B2 (zh) |
CN (1) | CN103473250B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
US9940205B2 (en) * | 2015-03-27 | 2018-04-10 | EMC IP Holding Company LLC | Virtual point in time access between snapshots |
US10482065B1 (en) * | 2015-03-31 | 2019-11-19 | EMC IP Holding Company LLC | Managing deletion of replicas of files |
US11386060B1 (en) * | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
CN107291710B (zh) | 2016-03-30 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种用于分布式数据库***的更新数据的方法及装置 |
US10509767B2 (en) * | 2016-06-12 | 2019-12-17 | Apple Inc. | Systems and methods for managing snapshots of a file system volume |
US10671588B2 (en) * | 2016-07-08 | 2020-06-02 | Ebay Inc. | Multiple database updates using paths |
US10430378B1 (en) * | 2016-09-19 | 2019-10-01 | Tintri By Ddn, Inc. | Fast container distribution with storage acceleration |
US10095729B2 (en) | 2016-12-09 | 2018-10-09 | Qumulo, Inc. | Managing storage quotas in a shared storage system |
CN106547926A (zh) * | 2016-12-14 | 2017-03-29 | 北京华云网际科技有限公司 | 分布式块存储的快照树的根节点的优化方法和装置 |
WO2018208047A1 (en) | 2017-05-09 | 2018-11-15 | Samsung Electronics Co., Ltd. | Method and system for managing and displaying application |
KR101826176B1 (ko) * | 2017-06-20 | 2018-02-14 | 주식회사 비츠코리아 | 스냅샷 방식의 이미지 테이블을 이용한 백업데이터 제어방법 |
US10430100B2 (en) | 2018-02-28 | 2019-10-01 | International Business Machines Corporation | Transactional operations in multi-master distributed data management systems |
US11360936B2 (en) | 2018-06-08 | 2022-06-14 | Qumulo, Inc. | Managing per object snapshot coverage in filesystems |
US11042522B2 (en) * | 2018-06-11 | 2021-06-22 | International Business Machines Corporation | Resolving versions in an append-only large-scale data store in distributed data management systems |
US11663207B2 (en) * | 2018-09-24 | 2023-05-30 | Salesforce, Inc. | Translation of tenant identifiers |
US10534758B1 (en) | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
US10795796B1 (en) * | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
US10860372B1 (en) | 2020-01-24 | 2020-12-08 | Qumulo, Inc. | Managing throughput fairness and quality of service in file systems |
US11151001B2 (en) | 2020-01-28 | 2021-10-19 | Qumulo, Inc. | Recovery checkpoints for distributed file systems |
CN113495891B (zh) * | 2020-03-19 | 2023-09-26 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
US11157458B1 (en) | 2021-01-28 | 2021-10-26 | Qumulo, Inc. | Replicating files in distributed file systems using object-based data storage |
US11461241B2 (en) | 2021-03-03 | 2022-10-04 | Qumulo, Inc. | Storage tier management for file systems |
US11567660B2 (en) | 2021-03-16 | 2023-01-31 | Qumulo, Inc. | Managing cloud storage for distributed file systems |
US11132126B1 (en) | 2021-03-16 | 2021-09-28 | Qumulo, Inc. | Backup services for distributed file systems in cloud computing environments |
US11669255B2 (en) | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11294604B1 (en) | 2021-10-22 | 2022-04-05 | Qumulo, Inc. | Serverless disk drives based on cloud storage |
US11354273B1 (en) | 2021-11-18 | 2022-06-07 | Qumulo, Inc. | Managing usable storage space in distributed file systems |
US11599508B1 (en) | 2022-01-31 | 2023-03-07 | Qumulo, Inc. | Integrating distributed file systems with object stores |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11966592B1 (en) | 2022-11-29 | 2024-04-23 | Qumulo, Inc. | In-place erasure code transcoding for distributed file systems |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553339A (zh) * | 2003-06-05 | 2004-12-08 | 联想(北京)有限公司 | 细粒度快照实现方法 |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101178677A (zh) * | 2007-11-09 | 2008-05-14 | 中国科学院计算技术研究所 | 一种计算机文件***的快照方法 |
CN101387976A (zh) * | 2008-11-07 | 2009-03-18 | 清华大学 | 一种基于数据差异的逻辑卷快速同步方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756844B2 (en) | 2003-07-08 | 2010-07-13 | Pillar Data Systems, Inc. | Methods of determining and searching for modified blocks in a file system |
US8032496B2 (en) | 2003-09-06 | 2011-10-04 | Oracle International Corporation | Method and mechanism for row versioning |
US7440966B2 (en) | 2004-02-12 | 2008-10-21 | International Business Machines Corporation | Method and apparatus for file system snapshot persistence |
JP4550541B2 (ja) | 2004-10-06 | 2010-09-22 | 株式会社日立製作所 | ストレージシステム |
US7970742B2 (en) * | 2005-12-01 | 2011-06-28 | Oracle International Corporation | Techniques for implementing indexes on columns in database tables whose values specify periods of time |
EP2013822A4 (en) * | 2006-04-14 | 2012-07-18 | Vertafore Inc | METHOD, SYSTEM, AND COMPUTER READABLE MEDIUM FOR UNIFORMIZING DOCUMENT COMMENTS ON MULTIPLE COMPUTER PLATFORMS |
US8010495B1 (en) | 2006-04-25 | 2011-08-30 | Parallels Holdings, Ltd. | Method and system for fast generation of file system snapshot bitmap in virtual environment |
US7818302B2 (en) | 2007-03-09 | 2010-10-19 | Emc Corporation | System and method for performing file system checks on an active file system |
US7958325B2 (en) | 2007-09-11 | 2011-06-07 | International Business Machines Corporation | Handling temporary files in a file system with snapshots |
US8108364B2 (en) * | 2008-08-06 | 2012-01-31 | International Business Machines Corporation | Representation of system clock changes in time based file systems |
EP2270691B1 (en) * | 2009-06-30 | 2019-01-16 | Hasso-Plattner-Institut für Digital Engineering gGmbH | Computer-implemented method for operating a database and corresponding computer system |
US20110093437A1 (en) | 2009-10-15 | 2011-04-21 | Kishore Kaniyar Sampathkumar | Method and system for generating a space-efficient snapshot or snapclone of logical disks |
US20110302195A1 (en) | 2010-06-08 | 2011-12-08 | International Business Machines Corporation | Multi-Versioning Mechanism for Update of Hierarchically Structured Documents Based on Record Storage |
US8468151B2 (en) | 2010-06-29 | 2013-06-18 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators |
US8990272B2 (en) | 2010-07-30 | 2015-03-24 | Nasuni Corporation | Versioned file system with pruning |
US8892845B2 (en) * | 2010-12-22 | 2014-11-18 | Cleversafe, Inc. | Segmenting data for storage in a dispersed storage network |
US9613104B2 (en) | 2012-02-17 | 2017-04-04 | Netflix, Inc. | System and method for building a point-in-time snapshot of an eventually-consistent data store |
-
2012
- 2012-06-05 US US13/489,392 patent/US9031911B2/en not_active Expired - Fee Related
-
2013
- 2013-06-04 CN CN201310218204.8A patent/CN103473250B/zh active Active
-
2015
- 2015-04-21 US US14/691,681 patent/US9747317B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553339A (zh) * | 2003-06-05 | 2004-12-08 | 联想(北京)有限公司 | 细粒度快照实现方法 |
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101178677A (zh) * | 2007-11-09 | 2008-05-14 | 中国科学院计算技术研究所 | 一种计算机文件***的快照方法 |
CN101387976A (zh) * | 2008-11-07 | 2009-03-18 | 清华大学 | 一种基于数据差异的逻辑卷快速同步方法 |
Non-Patent Citations (2)
Title |
---|
一种细粒度高效多版本文件***;向小佳 等;《软件学报》;20090331;第20卷(第3期);第754-765页 * |
复合式快照算法及其两种变型的分析与比较;杨树庆 等;《计算机工程》;20070331;第33卷(第6期);第77-79页 * |
Also Published As
Publication number | Publication date |
---|---|
US9031911B2 (en) | 2015-05-12 |
US9747317B2 (en) | 2017-08-29 |
US20150227564A1 (en) | 2015-08-13 |
US20130325808A1 (en) | 2013-12-05 |
CN103473250A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103473250B (zh) | 用于保存文件***节点的过去状态的方法与*** | |
US9569458B2 (en) | Preserving a state using snapshots with selective tuple versioning | |
CN103473252B (zh) | 用于文件***复制中复制标识与冲突避免的方法与*** | |
CN106407040B (zh) | 一种远程数据复制方法及*** | |
US8200631B2 (en) | Snapshot reset method and apparatus | |
CN103365743B (zh) | 用于在计算环境中处理快照的方法和*** | |
CN104199815B (zh) | 在重复数据删除***中减少摘要存储消耗的方法和*** | |
US7574435B2 (en) | Hierarchical storage management of metadata | |
JP5411250B2 (ja) | 冗長データ記憶システムへの指示に従ってのデータ配置 | |
CN101743546B (zh) | 用于提供快照的文件***的分层存储管理 | |
CN104395904B (zh) | 高效的数据对象存储和检索 | |
CN110062925A (zh) | 用于云集成的快照元数据布置 | |
CN103109292B (zh) | 在容错数据库管理***中聚集查询结果的***和方法 | |
EP1836621B1 (en) | Methods and apparatus for managing deletion of data | |
JP5449524B2 (ja) | 計算機とその処理方法および計算機システム | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
CN106662981A (zh) | 存储设备、程序和信息处理方法 | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
US20100306236A1 (en) | Data Policy Management System and Method for Managing Data | |
CN103678473A (zh) | 用于在去重虚拟介质中进行高效文件归档回收的方法和*** | |
US20120284244A1 (en) | Transaction processing device, transaction processing method and transaction processing program | |
CN104657672A (zh) | 用于对数据安全存档的方法和*** | |
US20140250075A1 (en) | Using a file system interface to access a remote storage system | |
JP4937863B2 (ja) | 計算機システム、管理計算機及びデータ管理方法 | |
US10095700B2 (en) | Persistent file handle object container memory expiry |
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 |