CN116954488A - 块和快照删除 - Google Patents

块和快照删除 Download PDF

Info

Publication number
CN116954488A
CN116954488A CN202211295065.4A CN202211295065A CN116954488A CN 116954488 A CN116954488 A CN 116954488A CN 202211295065 A CN202211295065 A CN 202211295065A CN 116954488 A CN116954488 A CN 116954488A
Authority
CN
China
Prior art keywords
block
period
epoch
identifier
deletion
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
CN202211295065.4A
Other languages
English (en)
Inventor
S·瓦拉丁
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN116954488A publication Critical patent/CN116954488A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及块和快照删除。在一些示例中,一种系统维护存储装置中的数据的映射元数据,所述数据被划分成块,所述映射元数据包括将块的块标识符映射到存储位置的块条目,其中,块标识符随着块的创建而单调增大。系统响应于触发数据的快照创建而更新时期。响应于第一块的删除,系统更新第一块的第一块条目以包括第一块的创建时期标识符和删除时期标识符。响应于多个快照中的第一快照的删除,系统使用创建时期标识符和删除时期标识符来确定是否从映射元数据中移除第一块条目。

Description

块和快照删除
技术领域
本公开涉及数据存储领域。
背景技术
存储系统(storage system)可以用于存储数据。在一些情况下,存储系统可以是基于对象的存储系统,其中,数据作为对象而被存储。对象又可以被划分成块(chunks)。在一些情况下,可以应用重复数据删除(deduplication)来减少或消除存储系统中存储的重复块的出现。
发明内容
根据本公开的一个示例性方面,提供一种非暂态机器可读存储介质,包括指令,所述指令在执行时使系统进行以下操作:维护存储装置(storage)中的数据的映射元数据,所述数据被划分成块,所述映射元数据包括将所述块的块标识符映射到存储位置的块条目,其中,所述块标识符随着块的创建而单调增大,并且所述块是不可变的;响应于触发所述数据的快照创建而更新时期,所述快照包括数据的时间点表示,其中,所述时期具有块标识符的范围,其中,多个快照共享对至少一个块的引用;响应于第一块的删除而更新所述第一块的第一块条目以包括所述第一块的创建时期标识符和删除时期标识符,所述第一块条目是所述映射元数据中的所述块条目的一部分,所述创建时期标识符标识创建所述第一块的时期,并且所述删除时期标识符标识删除所述第一块的时期;以及响应于所述多个快照中的第一快照的删除而使用所述创建时期标识符和所述删除时期标识符来确定是否从所述映射元数据中移除所述第一块条目。
附图说明
关于以下附图描述了本公开的一些实施方式。
图1是根据一些示例的包括计算节点的集群(cluster)和共享存储池(storagepool)的布置的框图。
图2是根据一些示例的图示了在拍摄数据快照时创建时期(epoch)的图。
图3是根据一些示例的存储机器可读指令的存储介质的框图。
图4是根据一些示例的系统的框图。
图5是根据一些示例的过程的流程图。
在所有附图中,相同的附图标记表示相似但不一定相同的要素。附图不一定是按比例绘制的,并且一些部分的尺寸可以被放大以更清楚地图示所示的示例。此外,附图提供了与描述一致的示例和/或实施方式;然而,描述不限于附图中提供的示例和/或实施方式。
具体实施方式
在本公开中,除非上下文另外明确指示,否则使用术语“一个/一种(a/an)”或“所述(the)”旨在同样包括复数形式。同样地,当在本公开中使用时,术语“包括(includes/including/comprises/comprising)”、“具有(have/having)”指明存在所述元件,但不排除存在或添加其他元件。
如这里所使用的,术语“对象(object)”可以指任何可标识的数据单元。例如,可以使用对象标识符、对象名称、统一资源标识符(URI)或任何其他类型的标识符来标识对象。
“对象存储(object store)”是指对象的数据存储库。数据存储库可以指任何逻辑或物理存储布置或数据。
一个对象可以被划分成块(chunk)的集合,其中,块的集合可以包括单个块或多个块。“块”可以指较大数据的任何段。
在一些示例中,索引可以用于将块标识符映射到存储装置中的存储由块标识符标识的相应块的存储位置。
在一些示例中,索引可以呈如B树等树数据结构的形式。B树索引可以包括将块标识符映射到存储装置中存储相应块的相应存储位置的块条目。B树索引的每个块条目可以包括键值对;键可以是块标识符,并且值是对应的存储位置。在这样的示例中,B树索引呈键值存储的形式。
尽管参考了B树索引作为可以用于将块标识符映射到存储位置的索引的示例,但是在其他示例中,可以使用其他类型的索引。更一般地,可以采用将块标识符映射到块的存储位置的映射元数据。
“块标识符”可以指用于标识块以使得该块可以与另一个块区分开的任何值。
在本公开的一些示例中,随着块被写入存储系统,块标识符单调增大。换句话说,当(第一个块之后的)每个新块被写入存储系统时,新块被分配相应的块标识符,该块标识符相对于紧接在新块之前被写入存储系统的块的相应块标识符具有递增值(递增了某个指定值,例如1或不同的值)。在这样的示例中,分配给写入存储系统的相应块的每个连续的块标识符大于分配给先前写入的块的每个块标识符。在这样的示例中,后写入的块可以不被分配具有比先前写入的块更低的值的块标识符。以这种方式,为新块生成的连续的块标识符的值可以不相对于彼此减少。
当接收到要写入存储系统的传入数据时,索引可以用于检查,以确定传入数据的任何块是否已存储在存储系统中。如果是,作为重复数据删除过程的一部分,传入数据的重复块不会再次被存储在存储系统中。替代地,存储对这样的重复块的引用,并且还可以递增引用计数以指示已接收到的每个块的实例的数量。
为了提供从数据故障中恢复的能力,可以拍摄数据快照(snapshots)。“快照”是指数据的时间点副本。例如,可以对卷(volume)集合(一个卷或多个卷)拍摄快照。“卷”可以指可以包含对象集合(例如,一个对象或多个对象,或者(多个)对象的(多个)部分)的数据逻辑单元。在时间t拍摄的卷集合的快照包含在时间t存在的卷集合中的数据版本。
在一些示例中,快照不存储数据,而是可以包括对存储在存储系统中的块的引用。对快照中包含的块的“引用”可以包括该块的块标识符。可以在不同的时间点拍摄不同的快照。当检测到故障或错误并且系统执行恢复过程以恢复在给定时间点存在的数据时,可以使用对应于给定时间点的快照来执行恢复。
在不同时间点拍摄的快照可以共享一些对块的引用。例如,在时间t1拍摄的快照S1可以包括对块C1、C2和C3的引用。如果块C3在时间t1之后但在时间t2之前被删除,则在时间t2拍摄的快照S2可以包括对块C1和C2的引用。在该示例中,快照S1和S2共享对块C1和C2的引用。
当对象在存储系统中被删除时(例如,由于来自用户、程序或机器的请求),对象的对应块也可以被删除。然而,与采用快照的存储系统相关联的问题是,快照也可以引用块。结果,即使由于对应的对象被删除而导致块被删除,如果这些块被任何快照引用,则这些被删除的块也不会从存储系统中被移除。在一些示例中,被删除的块可以被存储系统的垃圾收集过程标记为移除。“垃圾收集”过程可以指移除未使用的数据以释放存储系统的存储容量的过程。
如这里所使用的,块的删除是指将这样的块标记为删除。被删除的块(即,被标记为删除的块)仍然存储在存储系统中(此外,与这样的被删除的块相关联的元数据可以仍然被存储),其中,元数据可以是例如B树索引的一部分。因此,如果要使用引用被删除的块的快照来执行恢复操作,则该块仍可用于执行恢复操作。
移除被删除的块是指释放该块所占据的存储位置、移除对该块的引用等,从而使得该块在存储系统内不再可(例如,经由存储系统的数据结构)访问。块的移除可以通过垃圾收集过程来执行。在垃圾收集过程中确定是否可以移除被删除的块在一些情况下可能是低效的,因为垃圾收集过程可能必须执行潜在耗时的搜索来确定是否有任何快照或其他数据容器引用了被删除的块。
根据本公开的一些实施方式,为了如在垃圾收集过程期间高效地移除块,使用与快照相关联的时期(epoch)。这些时期可以跟踪被删除的块是否被任何快照共享。这些时期可以用于更高效地移除被删除的块。
根据本公开的一些示例,在数据块被删除时,针对被删除的块,映射元数据(例如,B树索引)中的元数据的相应块条目通过添加删除标记(本文中也称为“逻辑删除(tombstone)”)而被更新。
在一些示例中,删除标记可以包括删除时期标识符。每个块条目进一步包括创建时期标识符。当快照被删除时,检查具有删除标记(例如,删除时期标识符)的块条目这些块条目是否可以被移除;该检查确定对应的块是否没有被系统中的任何存活快照共享(“存活快照”是没有被删除或以其他方式被指示为无效的快照)。
“时期”表示与拍摄快照相关联的逻辑时间。当拍摄快照时,当前时期会滚动(rollover)到下一个时期。为此,随着由于快照创建而导致的时期滚动,时期标识符单调增大。每个时期可以包括时期元数据或者可以与时期元数据相关联,时期元数据包括时期状态信息和块标识符的范围(下面进一步讨论)。
根据本公开的一些实施方式的技术或机制被应用于快照引用不可变(immutable)的块(即,块可以被删除,但是它们不能被修改后的块覆写)的上下文中。
1.系统布置
图1是包括计算节点102-1至102-N的集群的示例系统100的框图,其中,N≥1。尽管图1示出了系统100中的多个计算节点(例如,N>1),但是在其他示例中,可以在系统100中仅提供单个计算节点(例如,N=1)。
计算节点102-1至102-N例如通过网络被耦接到共享存储池104。计算节点能够通过其与共享存储池104通信的网络可以包括存储区域网(SAN)、局域网(LAN)、广域网(WAN)等。
共享存储池104包括存储设备(storage device)的集合(单个存储设备或多个存储设备)。每个存储设备可以被实施为基于磁盘的存储设备、固态驱动器或任何其他合适类型的存储设备。
响应于来自102-1至102-N中的计算节点的写入,共享存储池104可以存储包含各种对象108的对象存储106。
在一些示例中,对象存储106可以呈日志结构文件系统(LFS)的形式,其中,对象和相关联的元数据可以按顺序被写入日志。在其他示例中,对象存储106可以具有其他形式。
共享存储池104还可以存储B树索引110,该B树索引包含对象存储106中的对象108的块的映射元数据。B树索引110具有包含块条目的叶节点。B树索引110的叶节点是B树索引的树结构的层级底部的节点(即,每个叶节点没有任何子节点)。叶节点可以包括多个块条目,其中,每个块条目将块标识符映射到对象存储106中的存储位置。存储位置可以是地址、偏移量等形式。
B树索引110在B树索引110的树结构的层级顶部具有根节点。根节点包含指向根节点的子节点的指针,并且B树索引110中的每个非叶节点又包含指向非叶节点的子节点的指针。“非叶节点”是指B树索引110的树结构中不是叶节点的节点。B树索引110中的最低层非叶节点具有指向B树索引110中的叶节点的指针。
尽管示例参考了以B树索引110的形式布置的映射元数据,但是应当注意,在其他示例中,包含块条目的映射元数据可以呈不同的形式(例如,映射表、文件等)。
根据本公开的一些示例,两种不同类型的块条目可以存在于B树索引110中,更具体地,存在于B树索引110的叶节点中。第一类型的块条目被称为“常规”块条目,如常规块条目110-1。B树索引110中的第二种类型的块条目是逻辑删除(tombstone)条目,如逻辑删除条目110-2。
常规块条目与存储在对象存储106中且尚未被删除的块相关联。逻辑删除条目与已被删除但尚未从对象存储106中移除的块相关联。被删除的块的移除可以由垃圾收集器(如相应计算节点102-1至102-N中的任何基于时期的垃圾收集器112-1至112-N)来执行。
移除块可以指从对象存储106移除块,并且从映射元数据(例如,呈B树索引110的形式)移除与块相关联的元数据,使得块和相关联的元数据不再存储在存储池104中。
常规块条目110-1和逻辑删除条目110-2之间的差异将在下面进一步讨论。
还可以对对象存储106中的数据拍摄快照116。在一些示例中,对象存储106可以包括数据卷,其中,每个卷可以包括对象108的集合。每个快照116可以引用卷集合的数据。
快照的拍摄可以由计算节点102-1中的快照控制器(SC)114来控制。在系统100中存在多个计算节点的一些示例中,计算节点之一可以被指定或选举为领导计算节点。计算节点102-1至102-N的集群中的任何计算节点都可以被指定或选举为领导计算节点。
领导计算节点102-1可以负责拍摄对象存储106中的数据的快照。在其他示例中,计算节点102-1至102-N(包括非领导计算节点)中的每一个可以包括快照控制器来拍摄对象存储106中的数据的快照。
快照控制器114拍摄的快照116由快照控制器114在不同的时间点拍摄。因此,每个快照116对应于在相应时间点的卷集合中的数据版本。
计算节点102-1至102-N进一步包括相应的更新缓冲区118-1至118-N,这些更新缓冲区被存储在对应的计算节点102-1至102-N中的相应的存储器(memory)126-1至126-N中。每个更新缓冲区是在接收到块时存储数据(包括块条目更新)的存储结构。尽管以单数意义提及,但是“更新缓冲区”还可以包括多个缓冲区。
计算节点中的存储器可以使用存储器设备的集合(单个存储器设备或多个存储器设备)来实施。存储器设备的示例可以包括以下各项中的任一项或某种组合:动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备等。
每个更新缓冲区118-i(i=1到N)用于存储与要写入对象存储106的传入数据的块相关联的块条目更新。传入数据是指要写入对象存储106的数据。传入数据可以与由请求者(例如,用户、程序或机器)发出的写入请求相关联,请求者可以通过网络与系统100通信,或者可替代地,可以是系统100的一部分。
块条目更新包括与要写入对象存储106的块相关联的映射元数据。块条目更新可以包括映射到对象存储106中的相应存储位置的块标识符。在图1的示例中,更新缓冲区118-1包括与要被写入对象存储106的相应块相关联的块条目更新120-1。类似地,更新缓冲区118-N包括块条目更新。每个更新缓冲区118-i中的块条目更新将由对应的计算节点102-i合并到B树索引110中。
如上所述,每个快照可以与对应的时期相关联。时期的创建由时期管理逻辑122执行,在一些示例中,时期管理逻辑可以是快照控制器114的一部分。在其他示例中,时期管理逻辑122可以与快照控制器114分离。
在一些示例中,每个基于时期的垃圾收集器112-1至112-N和快照控制器114可以使用相应计算节点中的一个或多个硬件处理电路来实施,或者使用可在相应计算节点中的一个或多个硬件处理电路上执行的机器可读指令的组合来实施。硬件处理电路可以包括微处理器、多核微处理器的核、微控制器、可编程集成电路、可编程门阵列、或另一硬件处理电路中的任一项或一些组合。
时期管理逻辑122可以创建和更新时期信息,包括存储在相应存储器126-1至126-N中的时期信息124-1至124-N。
时期信息124-1可以包括时期标识符的集合,以标识对应的时期。时期信息124-1将每个所标识的时期与对应的时期状态信息相关联。在一些示例中,时期可以具有几种不同状态中的一种:未受保护状态、进行中状态、受保护状态和已删除状态。
时期信息124-N包括类似的信息。
2.时期
如图2中进一步示出的,响应于拍摄快照(创建快照)的快照请求202,快照控制器114可以指示计算节点的集群中的计算节点102-1至102-3(在该示例中,假设有三个计算节点)中的每一个准备(静默(Quiesce))(204)对象存储106的计算节点实例,冻结(206)对象存储106的实例,然后执行快照(208)。
在时间间隔220中接收到快照请求202时,时期k(k≥1)是当前时期。时期k与将由快照请求202创建的快照k相关联。
在时间间隔220中,时期k的时期状态是未受保护状态。在未受保护状态下,时期k能够接收块的写入和块的相关联的映射元数据的更新。接收块的写入和相关联的元数据的更新的时期是指这样的状况,即对象存储106和B树索引110响应于数据写入而更新,并且这样的更新后的数据和相关联的元数据将被包括在要创建的下一个快照中。换句话说,处于未受保护状态的时期k可以接收将被包括在响应于快照请求202而要创建的快照k中的块的写入和相关联的映射元数据的更新。
静默对象存储106的实例可以指在对应的计算节点处完成任何进行中的写入。冻结对象存储106的实例可以指拒绝接受对对象存储106的任何写入请求。执行快照可以指由计算节点102-i创建快照的一部分。
当每个计算节点完成其快照部分的创建时,该计算节点可以向快照控制器114提供完成响应。在接收到响应快照请求202的最后一个计算节点的完成响应之后,当前时期(时期k)滚动(在210处)到下一个时期(时期k+1)。
响应于从时期k到时期k+1的滚动,时期k的时期状态从未受保护状态转换到进行中状态,并且时期k+1的时期状态被设置为未受保护状态。
在时期k的进行中状态中,在时间间隔220期间更新的任何块(如计算节点102-i中的写入缓存中的块,未示出)和相关联的元数据(在更新缓冲区126-i中)被计算节点102-i分别同步到存储池104中的对象存储106和B树索引110。
一旦滚动完成,所请求的快照就已被创建,并且现在可以恢复写入,如通过解冻(thaw)(250)对象存储106的实例所指示的。
一旦块和相关联的元数据已被计算节点102-i同步到存储池104,计算节点102-i就已将其针对时期k的更新提交到持久性存储装置(在存储池104中),这由相应的检查点222-i指示。检查点222-1指示计算节点102-1将其针对时期k的更新提交到存储池104的时间,检查点222-2指示计算节点102-2将其针对时期k的更新提交给存储池104的时间,并且检查点222-3指示计算节点102-3将其针对时期k的更新提交给存储池104的时间。
最后一个计算节点提交其针对时期k的更新的时间被认为是时期k被提交的点,表示为224。在图2的示例中,计算节点102-2是最后一个提交其针对时期k的更新的节点,因此检查点222-2的时间是时期k被提交的时间。
时期k的快照k是指由计算节点102-1至102-3针对时期k提交的块。在时期k被提交之后,时期k的时期状态被转换到受保护状态。
在紧接时间间隔220之后的时间间隔226中,时期k+1处于未受保护状态。
如图2中进一步示出的,在时间间隔226期间,快照控制器114接收到另一个快照请求230,这触发了与上面针对时期k所讨论的动作类似的一组动作。响应于快照请求230,时期k+1滚动到时期k+2(在232处)。
如上所述,随着块被写入对象存储106,块标识符单调增大。在本公开的一些示例中,块是不可变的(即,块可以被删除,但是不能被修改后的块覆写)。由于块的不可变特性,新块的元数据被添加到B树索引110的右侧边,并且被移除的块将不会回来。
此外,由于块标识符单调增大,随着块条目被添加到B树索引110的右侧边,所添加的块条目具有连续增大的块标识符。因此,在一些示例中,在较早添加的块条目右侧的稍后添加的块条目将具有比较早添加的块条目更大的块标识符。
由于添加到B树索引110的块条目中的这种块标识符模式,块标识符可以按时期来划分。在图1中,时期k的块标识符的范围在B树索引110的段150-k中,时期k+1的块标识符的另一范围在B树索引110的段150-k+1中,并且时期k+2的块标识符的又另一范围在B树索引110的段150-k+2中。任何时期的块标识符的范围与任何其他时期的块标识符的范围不同且不重叠。
每个时期x的块标识符的范围可以由最大块标识符来限定。由于前一时期x-1的最大块标识符是已知的,所以时期x的块标识符的范围可以简单地用一个值(即,时期x的最大块标识符)来限定。在这样的示例中,时期x的块标识符的范围开始于紧接时期x-1的最大块标识符的下一个块标识符,并结束于时期x的最大块标识符。实际上,最大块标识符标识了不同时期的块标识符范围的边界。
在其他示例中,每个时期x的块标识符的范围可以由最小块标识符和最大块标识符来限定。
在B树索引110中,在一些示例中,被写入但未被删除的块的每个常规块条目(例如,图1中的110-1)可以包括以下信息:
Chunk_ID→{Storage Location,Creation_epoch,Size,Checksum}。
“Chunk_ID”表示块的块标识符,“Storage Location”表示块在对象存储106中的存储位置,“Creation_epoch”表示响应于添加相应块而创建块条目的时期,“Size”表示块条目的大小,并且Checksum表示基于块条目中的内容计算出的校验和,其中,当读取块条目时,校验和可以用于检测块条目中是否存在错误。
在现有块被删除时,现有块的常规块条目被转换成逻辑删除条目(例如,图1中的110-2)。
在一些示例中,逻辑删除条目包含以下信息。
Chunk_ID→{Storage Location,Creation_epoch,Deletion_epoch,Size,Checksum}。
在逻辑删除条目中,添加了“Deletion_epoch”,其为指示块条目是逻辑删除条目的删除标记。“Deletion_epoch”表示删除相应块的时期(或者更准确地说,请求删除但尚未移除相应块的时期)。
例如,如果给定的块在时期k(在图2中的时间间隔220期间)被添加到对象存储,则Creation_epoch被设置为时期k(时期k的标识符)。如果给定块稍后在时期k+n(其中,n≥1)中被删除,则Deletion_epoch被设置为时期k+n(时期k+n的标识符)。注意,有可能给定块是在其被添加到对象存储106的同一时期中被删除的,在这种情况下,Creation_epoch和Deletion_epoch将具有相同的值。
给定块的常规块条目不同于给定块的逻辑删除条目,因为常规块条目不包括删除时期标识符。不包括删除时期标识符的块条目可以指省略删除时期标识符的信息元素的块条目,或者可替代地,可以指不具有删除时期标识符的有效值的块条目。
3.垃圾收集
垃圾收集过程可以响应于快照的删除而被触发。快照的删除可以响应于来自用户或另一实体的请求、响应于保留策略的应用等等。例如,保留策略可以指定可以删除超过指定时间的快照。
根据本公开的一些实施方式,垃圾收集过程可以由每个计算节点102-i的基于时期的垃圾收集器112-i来执行。
每个基于时期的垃圾收集器112-i可以在从B树索引110中移除被删除的块之前使用B树索引110中的逻辑删除条目来标识共享对被删除的块的引用的快照。
基于时期的垃圾收集器112-i可以确定可以从B树索引110中移除哪些具有逻辑删除条目的块。
基于时期的垃圾收集器112-i使用的输入如下:P,其表示紧接在与被删除的快照相关联的时期之前的先行(predecessor)时期(具有受保护状态或进行中状态);以及S,其表示紧接在与被删除的快照相关联的时期之后的后继(successor)时期(具有受保护状态或进行中状态)。
基于时期的垃圾收集器112-i遍历B树索引110的子集,开始于具有等于时期P的最大块标识符的块标识符的块条目,并且结束于时期r的最大块标识符(其中,时期r与正被删除的快照r相关联)。以这种方式,基于时期的垃圾收集器112-i仅检查从正经历删除的时期r的最大块标识符到时期P(先行时期)的最大块标识符的块条目,这减少了在B树索引110中用于标识垃圾收集期间要移除的块条目的搜索时间,从而提高了垃圾收集效率。
在本公开的一些示例中,是否移除Creation_epoch=C且Deletion_epoch=D的逻辑删除条目的决策如下:
IF(C>P)AND(D≤S):从B树索引110中移除逻辑删除条目;
ELSE:跳过且不移除逻辑删除条目。
上述标准指明,如果逻辑删除条目的Creation_epoch(C)大于先行时期(P),并且逻辑删除条目的Deletion_epoch(D)小于或等于后继时期,则可以删除逻辑删除条目。如果满足上述标准(C>P)AND(D≤S),则表明除了被删除的快照之外,没有快照共享与逻辑删除条目相关联的块。
下面提供了示例事件序列。
时间T1:块1000在时期k被写入对象存储106(即,Creation_epoch=k)。
在时间T1之后:发生一系列时期滚动,从而使得时期前进到当前时期k+n。
时间T2:对在T1写入的块标识符为1000的块发出删除请求。作为删除请求的结果,块标识符为1000的块的常规块条目通过添加设置为当前时期k+n的Deletion_epoch而被转换成逻辑删除条目。
时间T3:与时期k相关联的快照k被删除。在示例中,受保护状态或进行中状态下的最近的先行时期是时期k-1,受保护状态或进行中状态下的最远离(least recent)的后继时期是时期k+2。时期k的最近的先行时期是在时期k之前的处于受保护状态或进行中状态的最近时期。时期k的最远离的后继时期是在时期k之后的处于受保护状态或进行中状态的最早时期。在该示例中,假设时期k+1不处于受保护状态或进行中状态(例如,时期k+1可能已被删除,并且因此处于已删除状态)。
在示例中,假设n>2,使得当前时期是时期k+3或更晚。在检查在时间T2创建的逻辑删除条目时,垃圾收集器112-i可以确定块标识符为1000的块的创建时期k大于先行时期k-1(满足C>P),但是删除时期k+n大于后继时期k+2(即,不满足条件D≤S)。这指示该块由与开始于时期k+2并结束于时期k+n-1的时期相关联的所有快照共享。因此,垃圾收集器112-i不移除块标识符为1000的块以及与块标识符为1000的块相关联的逻辑删除条目,因为其他快照共享块标识符为1000的块。
在不同的示例中,假设n=2,使得当前时期是时期k+2。在这种情况下,垃圾收集器112-i可以确定块标识符为1000的块的创建时期k大于先行时期k-1(满足C>P),并且删除时期k+2等于后继时期k+2(即,满足条件D≤S)。这指示块标识符为1000的块未被任何现有快照引用。
通常,如果不满足C>P,这意味着逻辑删除条目的创建时期小于或等于P,这指示至少时期P(以及可能早于时期P的(多个)其他时期)引用与逻辑删除条目相关联的块标识符为1000的块,使得块标识符为1000的块不能被移除。
如果不满足条件D≤S,这意味着逻辑删除条目中的删除时期大于S,这指示与逻辑删除条目相关联的块标识符为1000的块在时期S之后被删除,并且因此被与开始于时期S并结束于时期k+n-1(比当前时期小一)的时期相关联的快照共享,从而使得不能移除块标识符为1000的块。
4.进一步的实施方式
图3是存储有机器可读指令的非暂态机器可读或计算机可读存储介质300的框图,这些机器可读指令在(例如,由一个或多个硬件处理电路)执行时使系统执行各种任务。系统可以包括一个计算机或多个计算机。
机器可读指令包括映射元数据维护指令302,用于维护存储装置(例如,存储池104中的对象存储106)中的数据的映射元数据(例如,图1的B树索引110)。数据被划分成块,并且映射元数据包括将块的块标识符映射到(例如,对象存储106的)存储位置的块条目。块标识符随着块的创建而单调增大。
机器可读指令包括时期更新指令304,用于响应于触发数据的快照创建而更新时期。更新时期可以指改变时期的状态,并将时期滚动到下一个时期。在一些示例中,时期与相应的快照相关联,并且时期具有随着时期滚动的发生而单调增大的标识符。
机器可读指令包括块条目更新指令306,用于响应于第一块的删除而更新第一块的第一块条目以包括第一块的创建时期标识符和删除时期标识符,第一块条目是映射元数据中的块条目的一部分。创建时期标识符标识创建第一块的时期,删除时期标识符标识删除第一块的时期。
机器可读指令包括块条目移除指令308,用于响应于多个快照中的第一快照的删除而使用创建时期标识符和删除时期标识符来确定是否从映射元数据中移除第一块条目。创建时期标识符和删除时期标识符可以用于确定是否有任何快照引用第一块。如果有任何快照引用第一块,则阻止移除第一块。如果没有快照引用第一块,则允许移除第一块。
在一些示例中,映射元数据是具有根节点和叶节点的树形结构索引的一部分,并且叶节点包含块条目。从映射元数据移除第一块条目包括从树形结构索引的叶节点移除第一块条目。
在一些示例中,树形结构索引被划分成与相应时期相关联的多个段,其中,树形结构索引的每个段包括具有在相应块标识符范围内的块标识符的块条目。
在一些示例中,使用创建时期标识符和删除时期标识符来确定是否从映射元数据中移除第一块条目包括:将创建时期标识符与标识与正被删除的第一快照相关联的第一时期的先行时期的先行时期标识符进行比较,以及将删除时期标识符与标识与正被删除的第一快照相关联的第一时期的后继时期的后继时期标识符进行比较。
在一些示例中,第一时期和先行时期中的每一个都具有相应的块标识符范围。响应于第一快照的删除,机器可读指令可以遍历映射元数据的子集以识别要移除的逻辑删除条目,该子集从先行时期的块标识符范围的末尾开始、到达第一时期的块标识符范围的末尾。为了提高效率,响应于第一快照的删除,机器可读指令不会遍历映射元数据的其他子集来识别要移除的逻辑删除条目。
图4是包括一个硬件处理器402(或多个硬件处理器)的系统400的框图。硬件处理器可以包括微处理器、多核微处理器的核、微控制器、可编程集成电路、可编程门阵列、或另一硬件处理电路。
系统400包括存储介质404,该存储介质存储可在一个或多个硬件处理器402上执行以执行各种任务的机器可读指令。可在硬件处理器上执行的机器可读指令可以指可在单一硬件处理器上执行的指令或可在多个硬件处理器上执行的指令。
存储介质404中的机器可读指令包括映射元数据维护指令406,用于维护存储装置中的数据的映射元数据,数据被划分成块,映射元数据包括将块的块标识符映射到存储位置的块条目,其中,块标识符随着块的创建而单调增大。
存储介质404中的机器可读指令包括时期-快照关联指令408,用于将时期与数据的相应快照相关联,其中,时期中的每个时期包括时期元数据,这些时期元数据包括相应块标识符范围和时期状态。
存储介质404中的机器可读指令包括时期更新指令410,用于响应于触发数据的快照创建而更新时期中的当前时期,快照包括数据的时间点表示,其中,更新当前时期包括触发将当前时期的数据更新提交到存储装置并滚动到下一个时期。
存储介质404中的机器可读指令包括块条目更新指令412,用于响应于第一块的删除而更新第一块的第一块条目以包括第一块的创建时期标识符和删除时期标识符,第一块条目是映射元数据中的块条目的一部分,创建时期标识符标识创建第一块的时期,并且删除时期标识符标识删除第一块的时期。
存储介质404中的机器可读指令包括块条目移除指令414,用于响应于快照中的第一快照的删除而使用创建时期标识符和删除时期标识符来确定是否从映射元数据中移除第一块条目。
图5是根据一些示例的过程500的流程图。
过程500包括维护(在502处)存储装置中的数据的映射元数据,数据被划分成块,映射元数据包括将块的块标识符映射到存储位置的块条目,其中,块标识符随着块的创建而单调增大。
过程500包括响应于触发数据的快照创建而更新(在504处)当前时期,其中,时期具有块标识符范围,其中,更新当前时期包括滚动到下一个时期,并且其中,当前时期和下一个时期中的每一个表示与快照的拍摄相关联的相应逻辑时间。
过程500包括响应于第一块的删除而更新(在506处)第一块的第一块条目以包括第一块的创建时期标识符和删除时期标识符,第一块条目是映射元数据中的块条目的一部分,创建时期标识符标识创建第一块的时期,并且删除时期标识符标识删除第一块的时期。
过程500包括响应于多个快照中的第一快照的删除,执行任务508和510。
任务508包括使用创建时期标识符和删除时期标识符来确定是否有任何快照引用第一块。
任务510包括基于确定是否有任何快照引用第一块来确定是否从映射元数据中移除第一块条目。
存储介质(例如,图3中的300或图4中的404)可以包括以下各项中的任一项或某种组合:半导体存储器设备,如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪速存储器等;磁盘,如固定盘、软盘和可移动盘等;另一种磁介质,包括磁带;光学介质,如光盘(CD)或数字视频盘(DVD)等;或另一类型的存储设备。注意,上文讨论的指令可以在一个计算机可读或机器可读存储介质上提供,或者可替代地,可以在分布在具有可能多个节点的大型系统中的多个计算机可读或机器可读存储介质上提供。这种一个或多个计算机可读或机器可读存储介质被认为是物品(或制品)的一部分。物品或制品可以指任何制造的单个部件或多个部件。一个或多个存储介质可以位于运行机器可读指令的机器中、或者位于远程站点处,可以通过网络从所述远程站点下载机器可读指令以供执行。
在前述描述中,阐述了许多细节以使得理解本文中所公开的主题。然而,可以在没有这些细节中的一些细节的情况下实践实施方式。其他实施方式可以包括上文所讨论的细节的修改和变化。所附权利要求旨在覆盖这样的修改和变化。

Claims (20)

1.一种非暂态机器可读存储介质,包括指令,所述指令在执行时使系统进行以下操作:
维护存储装置中的数据的映射元数据,所述数据被划分成块,所述映射元数据包括将所述块的块标识符映射到存储位置的块条目,其中,所述块标识符随着块被创建而单调增大,并且所述块是不可变的;
响应于触发所述数据的快照创建而更新时期,所述快照包括数据的时间点表示,其中,所述时期具有块标识符的范围,其中,多个快照共享对至少一个块的引用;
响应于第一块的删除而更新所述第一块的第一块条目以包括所述第一块的创建时期标识符和删除时期标识符,所述第一块条目是所述映射元数据中的所述块条目的一部分,所述创建时期标识符标识所述第一块被创建的时期,并且所述删除时期标识符标识所述第一块被删除的时期;以及
响应于所述多个快照中的第一快照的删除,使用所述创建时期标识符和所述删除时期标识符来确定是否从所述映射元数据中移除所述第一块条目。
2.如权利要求1所述的非暂态机器可读存储介质,其中,所述映射元数据是具有根节点和叶节点的树形结构索引的一部分,所述叶节点包含所述块条目,并且
其中,从所述映射元数据中移除所述第一块条目包括从所述树形结构索引的叶节点中移除所述第一块条目。
3.如权利要求2所述的非暂态机器可读存储介质,其中,所述树形结构索引被划分成与相应时期相关联的多个段,所述树形结构索引的多个段中的每个段包括具有在相应块标识符范围内的块标识符的块条目。
4.如权利要求1所述的非暂态机器可读存储介质,其中,使用所述创建时期标识符和所述删除时期标识符来确定是否从所述映射元数据中移除所述第一块条目包括:
将所述创建时期标识符与先行时期标识符进行比较,所述先行时期标识符标识与正被删除的所述第一快照相关联的第一时期的先行时期,以及
将所述删除时期标识符与后继时期标识符进行比较,所述后继时期标识符标识与正被删除的所述第一快照相关联的所述第一时期的后继时期。
5.如权利要求4所述的非暂态机器可读存储介质,其中,所述第一时期和所述先行时期中的每一个都具有相应的块标识符范围,其中,所述指令在执行时使所述系统进行以下操作:
响应于所述第一快照的删除,遍历所述映射元数据的子集以标识要移除的逻辑删除条目,所述子集从所述先行时期的块标识符范围的末尾开始、到达所述第一时期的块标识符范围的末尾。
6.如权利要求5所述的非暂态机器可读存储介质,其中,所述映射元数据被划分成与相应时期相关联的多个段,所述映射元数据的多个段中的每个段包括具有在相应块标识符范围内的块标识符的块条目。
7.如权利要求4所述的非暂态机器可读存储介质,其中,所述先行时期是在所述第一时期之前的处于如下状态的最近的先行时期,即所述最近的先行时期的元数据正在或已被提交给所述存储装置。
8.如权利要求7所述的非暂态机器可读存储介质,其中,将所述创建时期标识符与所述先行时期标识符进行比较包括确定所述创建时期标识符是否大于所述先行时期标识符。
9.如权利要求8所述的非暂态机器可读存储介质,其中,确定从所述映射元数据中移除所述第一块条目基于确定所述创建时期标识符大于所述先行时期标识符。
10.如权利要求9所述的非暂态机器可读存储介质,其中,确定不从所述映射元数据中移除所述第一块条目基于确定所述创建时期标识符不大于所述先行时期标识符。
11.如权利要求4所述的非暂态机器可读存储介质,其中,所述后继时期是在所述第一时期之后的处于如下状态的最远离的后继时期,即所述最远离的后继时期的元数据a正在或已被提交给所述存储装置。
12.如权利要求11所述的非暂态机器可读存储介质,其中,将所述删除时期标识符与所述后继时期标识符进行比较包括确定所述删除时期标识符是否小于或等于所述后继时期标识符。
13.如权利要求12所述的非暂态机器可读存储介质,其中,确定从所述映射元数据中移除所述第一块条目基于确定所述删除时期标识符小于或等于所述后继时期标识符。
14.如权利要求13所述的非暂态机器可读存储介质,其中,确定不从所述映射元数据中移除所述第一块条目基于确定所述删除时期标识符不小于或等于所述后继时期标识符。
15.如权利要求1所述的非暂态机器可读存储介质,其中,更新所述时期包括:
将所述时期的状态从允许针对所述时期的数据更新的状态改变为将所述数据更新提交到所述存储装置的状态,以及
从所述时期滚动到下一个时期。
16.一种系统,包括:
硬件处理器;以及
存储指令的非暂态存储介质,所述指令能够在所述硬件处理器上执行以进行以下操作:
维护存储装置中的数据的映射元数据,所述数据被划分成块,所述映射元数据包括将所述块的块标识符映射到存储位置的块条目,其中,所述块标识符随着块被创建而单调增大;
将时期与所述数据的相应快照相关联,其中,所述时期中的每个时期包括时期元数据,所述时期元数据包括相应块标识符范围和时期状态;
响应于触发所述数据的快照创建而更新所述时期中的当前时期,所述快照包括数据的时间点表示,其中,更新所述当前时期包括触发将所述当前时期的数据更新提交到所述存储装置并滚动到下一个时期;
响应于第一块的删除而更新所述第一块的第一块条目以包括所述第一块的创建时期标识符和删除时期标识符,所述第一块条目是所述映射元数据中的所述块条目的一部分,所述创建时期标识符标识所述第一块被创建的时期,并且所述删除时期标识符标识所述第一块被删除的时期;以及
响应于所述快照中的第一快照的删除,使用所述创建时期标识符和所述删除时期标识符来确定是否从所述映射元数据中移除所述第一块条目。
17.如权利要求16所述的系统,其中,在更新所述第一块条目之前,所述第一块条目包括所述创建时期标识符,但是不包括所述删除时期标识符。
18.如权利要求16所述的系统,其中,使用所述创建时期标识符和所述删除时期标识符来确定是否从所述映射元数据中移除所述第一块条目包括:
将所述创建时期标识符与先行时期标识符进行比较,所述先行时期标识符标识与正被删除的所述第一快照相关联的第一时期的先行时期,以及
将所述删除时期标识符与后继时期标识符进行比较,所述后继时期标识符标识与正被删除的所述第一快照相关联的所述第一时期的后继时期。
19.如权利要求18所述的系统,其中,所述第一时期和所述先行时期中的每一个都具有相应的块标识符范围,并且其中,所述指令能够在所述硬件处理器上执行以进行以下操作:
响应于所述第一快照的删除,遍历所述映射元数据的子集以标识要移除的逻辑删除条目,所述子集从所述先行时期的块标识符范围的末尾开始、到达所述第一时期的块标识符范围的末尾。
20.一种包括硬件处理器的系统的方法,所述方法包括:
维护存储装置中的数据的映射元数据,所述数据被划分成块,所述映射元数据包括将所述块的块标识符映射到存储位置的块条目,其中,所述块标识符随着块被创建而单调增大;
响应于触发所述数据的快照创建而更新当前时期,所述快照包括数据的时间点表示,其中,所述当前时期具有块标识符的范围,更新所述当前时期包括滚动到下一个时期,并且所述当前时期和所述下一个时期中的每一个表示与快照的拍摄相关联的相应逻辑时间;
响应于第一块的删除,更新所述第一块的第一块条目以包括所述第一块的创建时期标识符和删除时期标识符,所述第一块条目是所述映射元数据中的所述块条目的一部分,所述创建时期标识符标识所述第一块被创建的时期,并且所述删除时期标识符标识所述第一块被删除的时期;以及
响应于所述快照中的第一快照的删除:
使用所述创建时期标识符和所述删除时期标识符来确定是否有任何快照引用所述第一块,以及
基于确定是否有任何快照引用所述第一块来确定是否从所述映射元数据中移除所述第一块条目。
CN202211295065.4A 2022-04-18 2022-10-21 块和快照删除 Pending CN116954488A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/659,583 2022-04-18
US17/659,583 US11989097B2 (en) 2022-04-18 2022-04-18 Chunk and snapshot deletions

Publications (1)

Publication Number Publication Date
CN116954488A true CN116954488A (zh) 2023-10-27

Family

ID=88191631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211295065.4A Pending CN116954488A (zh) 2022-04-18 2022-10-21 块和快照删除

Country Status (3)

Country Link
US (1) US11989097B2 (zh)
CN (1) CN116954488A (zh)
DE (1) DE102022127415A1 (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323775B2 (en) 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US9069780B2 (en) 2011-05-23 2015-06-30 Hewlett-Packard Development Company, L.P. Propagating a snapshot attribute in a distributed file system
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9317525B2 (en) 2013-01-30 2016-04-19 Hewlett Packard Enterprise Development Lp Reconstructing a state of a file system using a preserved snapshot
US10140185B1 (en) 2015-03-31 2018-11-27 Maginatics Llc Epoch based snapshot summary
US11360936B2 (en) 2018-06-08 2022-06-14 Qumulo, Inc. Managing per object snapshot coverage in filesystems
US11455275B2 (en) 2018-07-18 2022-09-27 Weka.IO Ltd. Storing a point in time coherently for a distributed storage system
US11481132B2 (en) 2020-09-18 2022-10-25 Hewlett Packard Enterprise Development Lp Removing stale hints from a deduplication data store of a storage system

Also Published As

Publication number Publication date
US20230333939A1 (en) 2023-10-19
US11989097B2 (en) 2024-05-21
DE102022127415A1 (de) 2023-10-19

Similar Documents

Publication Publication Date Title
US20220309049A1 (en) Key-Value Store System
US10564850B1 (en) Managing known data patterns for deduplication
US9619160B2 (en) NVRAM data organization using self-describing entities for predictable recovery after power-loss
US9665304B2 (en) Storage system with fast snapshot tree search
US10936441B2 (en) Write-ahead style logging in a persistent memory device
US10229009B2 (en) Optimized file system layout for distributed consensus protocol
US9268653B2 (en) Extent metadata update logging and checkpointing
US20170011062A1 (en) Flow control technique for eos system
US11755427B2 (en) Fast recovery and replication of key-value stores
US10997153B2 (en) Transaction encoding and transaction persistence according to type of persistent storage
US10789134B2 (en) NVRAM loss handling
US10977143B2 (en) Mirrored write ahead logs for data storage system
Son et al. SSD-assisted backup and recovery for database systems
US9411692B2 (en) Applying write elision
US11556513B2 (en) Generating snapshots of a key-value index
US11829291B2 (en) Garbage collection of tree structure with page mappings
US11860840B2 (en) Update of deduplication fingerprint index in a cache memory
US10452496B2 (en) System and method for managing storage transaction requests
CN116954488A (zh) 块和快照删除
Lee et al. Validity Tracking Based Log Management for In-Memory Databases
이광진 Validity Tracking Based Log Management for In-Memory Databases
Xie The Design and Implementation of a Log-Structured File System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication