CN112384905A - 针对内容复制的浅高速缓冲存储器 - Google Patents
针对内容复制的浅高速缓冲存储器 Download PDFInfo
- Publication number
- CN112384905A CN112384905A CN201980040778.6A CN201980040778A CN112384905A CN 112384905 A CN112384905 A CN 112384905A CN 201980040778 A CN201980040778 A CN 201980040778A CN 112384905 A CN112384905 A CN 112384905A
- Authority
- CN
- China
- Prior art keywords
- cache
- path
- hash
- paths
- file
- 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
Links
- 230000010076 replication Effects 0.000 title description 5
- 238000000034 method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 9
- 230000003362 replicative effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
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/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/27—Using a specific cache architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
实施例涉及将数据从源存储空间高效地复制到目标存储空间。存储空间共享路径的共同命名空间,内容单元被存储在该路径处。针对目标存储空间维持了浅高速缓冲存储器。在高速缓冲存储器中的每个条目包括目标存储空间中的内容单元的哈希以及目标存储空间中的相关联的层级路径,对应的内容单元被存储在该路径处。当源存储空间中的内容单元的集合被复制到目标存储空间处时,在高速缓冲存储器中具有哈希的任何内容单元从高速缓冲存储器中的相关联的路径中的一个路径被复制,因此避免了必须从源存储空间复制内容。
Description
背景技术
计算系统存储和管理内容单元或数据项的层级。在这种层级或存储空间中的每个内容单元都有路径或位置。路径全部在相同的命名空间中,并且内容单元能够通过引用它们的路径而被访问。常常,一个存储空间的部分需要被复制到另一存储空间。即,源存储空间中在相应的路径处的内容单元的集合可能需要被复制到共享相同的命名空间的目标存储空间。例如,在远程文件系统中的目录可能需要被复制到在本地文件系统中的目录。
取决于应用或者存储装置的类型,内容单元的相同的实例可能被存储在存储空间中的多个路径中。在文件系统文件的情况下,可能存在包含相同的内容但是在文件系统中的不同的完整路径处的多个文件。例如,相同的文件内容“X”可能被存储在“\A\B”处和“\A\C\D”处。文件“B”和“D”存储相同的内容,但是在不同的位置处并且具有不同的文件名。
当从源存储空间向目标存储空间复制路径和相应的内容单元的集合时,内容单元的复制可能具有低效率。相同的内容可以多次从源被传递到目标。参考上面的示例,当文件“B”和“D”包含相同的内容时,将文件“B”和“D”两者从源复制到目标将是多余的浪费的。如仅发明人所观察到的,当要被传递到目标存储空间的源存储空间的部分的内容单元已经存在于目标存储空间处时,可能会发生另一种低效率。例如,如果在“\A\B”处和“\A\C”处的内容单元可能要作为包(package)被传递,如果目标存储空间已经包含与例如“\A\B”相同的内容,但是在不同的本地位置(诸如“\D\E\F”)处,发明人已经观察到由于在目标存储空间中(在“\D\E\F”处)已经可获得相同的内容,传递在“\A\B”处的内容单元是潜在地可避免的。
下面所讨论的技术涉及使用浅高速缓冲存储器通过利用在目标存储空间处的现有内容来高效地从源存储空间向目标存储空间传递内容单元或数据项的包或集合。
发明内容
下面的发明内容被包括以仅介绍在以下的具体实施方式中所讨论地一些概念。此发明内容不是广泛的并且不旨在描绘所要求保护的主题的范围,其由随附的权利要求书阐述。
实施例涉及从源存储空间向目标存储空间高效地复制数据。存储空间共享存储内容单元的路径的共同命名空间。针对目标存储空间维持了浅高速缓冲存储器。在高速缓冲存储器中的每个条目包括在目标存储空间中的内容单元的哈希以及对应的内容单元被存储在目标存储空间中的相关联的层级路径。当在源存储空间中的内容单元的集合将要在目标存储空间处被复制时,在高速缓冲存储器中具有哈希的任何内容单元从在高速缓冲存储器中的相关联的路径中的一个路径被复制,因此避免了必须从源存储空间复制内容。
附带的特征中的许多特征将在下面参考结合附图考虑的以下详细描述来被解释。
附图说明
根据附图阅读以下详细的描述将更好地理解本说明书,其中在所附说明书中相同的附图标记被用于指代相同的部件。
图1示出了用于从源存储空间向目标存储空间复制数据项的数据集的系统。
图2示出了数据集的附加细节。
图3示出了用于构建数据集的过程。
图4示出了由浅高速缓冲存储器补充的目标存储空间。
图5示出了用于初始化浅高速缓冲存储器的过程。
图6示出了用于使用浅高速缓冲存储器来向目标存储空间复制数据集的过程。
图7示出了初始化浅高速缓冲存储器的复制的示例。
图8示出了使用浅高速缓冲存储器用于复制数据集的示例。
图9示出了本文所描述的实施例可以在其上被实现的计算设备的细节。
具体实施方式
图1示出了用于从源存储空间100向目标存储空间102复制数据项的数据集100的系统。数据项或内容单元可以是任何类型的数据的分立单元,诸如文件、存储器块、介质数据等,只要它们单独地可区分并且可访问。它们可以具有可变的长度或者统一的大小。存储空间102/104可以共同位于相同的计算设备上或者它们可以在由网络连接的相应的不同的计算设备上。值得注意的是,它们共享相同的命名空间。此外,存储空间通常以层级的方式组织它们的内容单元。在存储空间中的内容单元可以由名称、路径、树节点的标识符等来被布置或定位。术语“路径”将在下文被使用以指代这些类型的层级位置描述符。
共同操作是将源存储空间102的部分复制到目标存储空间104。从概念上,这涉及复制数据集100,该数据集100包括在源存储空间102中的路径的集合以及驻留在源存储空间102中的路径处的对应的内容单元。在文件系统的情况下,数据集100可以是全部的目录或者分散的文件的集合。
在典型的系统中,数据集100或者用于传递的数据的其他结构可以涉及诸如在源侧的数据集构建器106的软件组件,该数据集构建器106收集必须的数据和信息以允许接收器重构正在被准备的源数据的部分。任何已知的打包工具可以被使用。如稍后详细描述的,数据集100可以是源数据的部分的标记(indicia)的组合,例如内容单元路径的清单。数据集100可以可选地包括内容单元的副本。在一个实施例中,清单被使用,并且目标侧可以使用清单来根据需要决定拉取哪些内容单元。
数据集构建器106可以执行构建过程108,该构建过程108包括诸如接收构建数据集的请求以及随后构建数据集的步骤。请求可以指定路径的集合、根路径或子树等。在一个实施例中,如下面更详细地讨论的,构建数据集100包括标识具有相同内容的内容项、提供针对内容的标识符(例如,哈希)、和添加标识符或哈希以及包含相同的对应的内容的对应的源路径。在文件系统的情况下,数据集100是在数据集中的每个唯一的哈希的列表,并且每个哈希伴随着具有该相同哈希的文件的完整路径名的列表。
在目标侧从源侧拉取数据的拉取场景中,数据复制器过程100等执行复制过程112。数据复制器过程100可以包括诸如以下的步骤:选择数据集100、向源侧提供针对数据集100的请求、至少复制数据集中的内容的标记、以及之后从源存储空间102复制相关的内容单元并且将它们分布到目标存储空间104中的正确的命名空间位置或路径。
图1所示的系统仅是示例。在不同的实施例中,可以以不同的次序或者在不同的地点执行步骤。所有的构建和复制可以在源侧上或者目标侧上发生。构建和复制可以以组合的形式被执行。
图2示出了数据集的附加细节。正如指出的,源存储空间102存储内容单元120。在一个实施例中,内容单元120可以被存储在使用与目标存储空间104的层级相同的(或重叠的)命名空间的层级中(未示出)。数据集构建器106可以以要被构建或打包的内容单元的路径的列表开始。哈希函数122被应用到列表中的每个路径处的每个内容单元120,以针对相应的内容单元创建哈希121。哈希可以在源存储空间中的所有内容单元上提前被执行。在任一情况中,数据集构建器106通过将所列出的内容单元的哈希合并来构建清单124。具体地,具有相同哈希的任何内容单元包含相同内容。这样的哈希与具有相同哈希的相应的内容单元在源存储空间中的所有路径的集合一起被添加到清单124。结果是清单124按组表示具有相同内容(和哈希值)的内容单元。
在一个实施例中,数据集100可以包括在数据段(section)125中的相关的内容单元120的副本。为了最小化尺寸,仅包括具有相同内容的内容单元的一个副本。
目标存储空间104以路径126的有组织的层级来存储内容单元。在图2所示的示例中,路径“A/B”是在节点B处的内容单元在命名空间树中的完整的路径或位置。在文件系统的情况下,路径126是在文件系统中的完整或绝对路径。使用示例路径“A/B”,被命名为“B”的文件被存储在该路径处。路径126也可以是共享共同子根的相对路径。一旦数据集复制器110被指示复制哪个数据集100,数据集复制器110就访问清单124。如下面所描述的,数据集复制器110然后根据实际情况确定,从源存储空间102或者从数据段125需要传递哪些内容单元。无论从哪个源,包括从目标存储空间104中的副本,路径的列表和相应的内容单元都在目标存储空间104中被复制。被包括在数据集100中的每个路径及其相应的内容单元被复制在目标存储空间104的命名空间中。
图3示出了用于创建数据集的过程。在步骤140处,形成数据集的请求被接收。请求包括内容单元的路径的列表或者对内容单元的引用。在步骤142处,针对请求列表中的每个内容单元,哈希被计算或者被获取。可以使用任何已知的哈希函数用于计算哈希。在步骤144处,针对数据集中的每个唯一的哈希,在源数据中的对应的路径的列表被编译。在步骤146处,清单124用被表示为与对应的哈希相关联的至少一个路径的请求列表中的每个内容单元被构建。
图4示出了由浅高速缓冲存储器160补充的目标存储空间104。浅高速缓冲存储器160不需要高速缓存内容单元。相反,浅高速缓冲存储器160追踪目标存储空间104中包含相同内容单元的路径。这可以是以哈希表格或者哈希文件的形式,其中每个哈希具有相关联的路径的集合。浅高速缓冲存储器中的哈希的路径集指示在目标存储空间104中相同内容可能位于的每个位置。在一些实施例中,浅高速缓冲存储器不需要严格地被维持。浅高速缓冲存储器160连续不断地反映目标存储空间104的实际内容可能是没有必要的。例如,如果在浅高速缓冲存储器160中所列出的内容单元被删除,则浅高速缓冲存储器160不需要被更新。如果内容单元被添加,则浅高速缓冲存储器160也不需要被更新。备选地,浅高速缓冲存储器160可以通过目标存储空间104的潜在的实现(即,存储装置更新操作包括高速缓冲存储器更新)被保持更新,或者由通过浅高速缓冲存储器的使用来了解浅高速缓冲存储器的准确度来被保持更新。
实际上,浅高速缓冲存储器160指示内容单元中的至少一些内容单元很可能在目标存储空间104中可获得。如下面所讨论的,浅高速缓冲存储器160可以被用于通过允许将正在被复制的内容单元从目标存储单元而不是从源侧被获取,来提高从源存储空间向目标存储空间复制数据集的效率。如下面所讨论的,当向目标存储空间复制数据集时,浅高速缓冲存储器可以被更新;如果入站(inbound)内容单元的新的哈希尚未存在,则它们可以被添加,并且如果它们已经存在,对应的路径集可以被扩展以包括这样的内容单元被添加到的任何新的位置。
图5示出了用于初始化浅高速缓冲存储器160的过程。浅高速缓冲存储器160可以以多种方法被初始化。在一个实施例中(未示出),在目标存储空间中可以执行对全部内容单元的完整的扫描。每个内容单元的哈希可以被计算,并且相同的每个唯一的哈希的路径集被构造。针对大的内容,这可能是禁止的。另一种方案是随着相应的数据集被添加到目标存储空间而使用清单的内容来构建浅高速缓冲存储器160。在步骤170处,正在被复制的数据集以其全部从源侧被复制。由于初始地浅高速缓冲存储器是空的,当这个第一数据集被复制,不知道是否有任何内容单元的本地副本会被复制。因此,数据集的内容单元的所有内容单元从源被复制。在步骤172处,来自源的内容单元被添加到本地存储空间中如由数据集的清单所指示的路径。在步骤174处,在清单中的哈希到路径集的映射被存储在浅高速缓冲存储器160中。在一个实施例中,清单本身仅被存储作为初始浅高速缓冲存储器。如果存储空间被实现为文件系统文件,则浅高速缓冲存储器可以被存储在特殊的目录中并且通过在特殊的目录中存储清单来被初始化。
图6示出了用于使用浅高速缓冲存储器来将数据集复制到目标存储空间的过程。假设浅高速缓冲存储器已经被初始化并且包含哈希以及在目标存储空间中的内容单元的相应的路径列表。在步骤190处,接收复制数据集的请求。在步骤192处,数据集的清单被复制或下载。
在步骤194处,使用下面的算法将数据集复制到目标存储空间。在清单中的哈希被遍历。针对清单中的每个哈希值H,检查在浅高速缓冲存储器中H的存在。如果H不存在,那么针对H的内容的源被设置为源存储空间。然而,如果在浅高速缓冲存储器中找到H,那么在浅高速缓冲存储器中与H相关联的路径列表中的路径中的每个路径被检查以查看它是否存在,并且是否在路径处存在对应的内容单元的有效副本。第一个被找到的有效副本接着被设置为源,该源将被用来获取对应的内容单元。最终,无论哪个源将被用于由当前H所表示的内容单元(即,源存储空间或者在目标存储空间中的路径),内容单元都从该源被复制到与清单中的H相关联的每个路径。总而言之,针对要被复制的内容的每个唯一的单元,如果可能,内容单元根据浅高速缓冲存储器从目标存储空间被获取,并且否则内容单元从源侧被获取。并且,无论内容单元是从哪里被获取,一旦它被获取,它被复制到由清单所指示的该内容单元(哈希)的路径。
在步骤194期间,浅高速缓冲存储器还可以被更新。在浅高速缓冲存储器中被发现为不存在的任何路径可以从浅高速缓冲存储器被删除。如果在浅高速缓冲存储器中的路径处的内容单元被发现为具有与浅高速缓冲存储器中的哈希不匹配的哈希,那么目标存储空间中的该路径被添加到高速缓冲存储器(在现有的或新的哈希/条目处,视情况而定)。
在步骤196处,被复制的数据集的清单被用来更新浅高速缓冲存储器。该步骤的细节将取决于浅高速缓冲存储器如何被实现。在文件系统实现中,清单可以被添加到浅高速缓冲存储器目录。在另一实施例中,清单的内容与浅高速缓冲存储器逻辑地合并。这可以涉及到将新的路径添加到现有的高速缓冲存储器条目(哈希路径列表对),在这些新的路径处,内容单元已经被添加。在另一实施例中,高速缓冲存储器数据的清单或单元可以被周期性地合并。
图7示出了初始化浅高速缓冲存储器的复制的示例。清单124包括针对两个相应的内容单元的两个清单条目。内容单元1 200由包括哈希值哈希1的清单条目所表示,该哈希值哈希1与路径p1和p2(分别为“\A\B”和“\A\B\C\D”)相关联。内容单元2 202由包括哈希值哈希2的清单条目所表示,该哈希值哈希2与路径p3(“\A\B\K\L\M\N\O”)相关联。按照清单中的路径,内容单元1 200从源侧被复制到目标存储空间中的路径p1和p2,并且内容单元2202从源侧被复制到目标存储空间中的路径p3。清单或其中的哈希-路径数据是初始浅高速缓冲存储器数据。
图8示出了使用浅高速缓冲存储器用于复制数据集的示例。该示例构建在图7中所示的示例上。在该示例中,清单124包括表示内容单元3和内容单元4的条目。如在清单中所示的,内容单元3由与路径4和路径5相关联的哈希3所表示,并且内容单元4由与路径6相关联的哈希1所表示。首先,针对内容单元3 204的清单条目被处理。在浅高速缓冲存储器160中检查哈希3的存在。因为它没有被找到,内容单元3从源侧被复制到路径p4和路径p5,并且哈希3与路径p4和p5一起被添加到浅高速缓冲存储器(其现在反映所添加的内容)。
然后,针对内容单元4的清单条目被处理。哈希1在浅高速缓冲存储器中被搜索并且被找到。对应的高速缓冲存储器条目中的路径被选择(例如,随机地),在该示例中,路径p2从哈希1的高速缓冲存储器条目中被选择。在目标存储空间中的路径p2处所存储的内容单元被复制到如在清单中所指定的新的路径p6("\Q\R\S\T\A\B\C")(如果其他路径被指定,它们也会被创建并且接收副本)。因此,来自源侧的副本被避免了。此外,路径p6被添加到哈希1的高速缓冲存储器条目。如果路径p2不存在或者不包含被哈希到哈希1的内容单元,那么p2可能会从哈希1高速缓冲存储器条目被删除,并且哈希1高速缓冲存储器条目中的另一路径(例如,p1)可能会被尝试。如果不存在有效路径,则高速缓冲存储器条目可能被删除并且内容单元4可能从源侧被复制。
正如上面指出的,在一个实施例中,新的高速缓冲存储器条目被添加而不考虑可能的哈希重复,并且在方便的时候执行重复数据删除。
又如上面指出的,存储空间可以以很多形式被实现。它们可以是文件系统、在相同的虚拟或物理存储器空间中的数据结构、云存储服务、数据库元素等。复制可以是例如经由网络在设备之间,或者在相同的设备上的存储空间之间。
图9示出了上面所描述的实施例可以在其上被实现的计算设备300的细节。本文的技术公开对于程序员写软件、和/或配置可重新配置的处理硬件(例如,现场可编程门阵列(FPGA))、和/或设计专用集成电路(ASIC)等以在计算设备300上运行(可能经由云API)来实现本文所描述的实施例是充足的。
计算设备300可以具有一个或多个显示器322、网络接口324(或若干)、以及存储硬件326和处理硬件328,该处理硬件328可以是以下任何一项或多项的组合:中央处理单元、图形处理单元、模数转换器、总线芯片、FPGA、ASIC、专用标准产品(ASSP)、复杂可编程逻辑器件(CPLD)等。存储硬件326可以是以下任何组合:磁性存储装置、静态存储器、易失性存储器、非易失性存储器、光学或磁性可读物质等。本文所使用的术语“存储装置”的含义不是指信号或能量本身,而是指物理装置或者物质的状态。计算设备300的硬件元素可以以机器计算领域中很好理解的方式协作。此外,输入设备可以与计算设备300集成或者与计算设备300通信。计算设备300可以具有任何形状因数或可以在任何类型的包围设备中使用。计算设备300可以处于以下形式:诸如智能电话的掌上型设备、平板计算机、游戏设备、服务器、机架安装或背板的机载计算机、片上系统或其他。
上面所讨论的实施例和特征可以以存储在易失性或非易失性的计算机或设备可读介质中的信息的形式被实现。这被认为至少包括以下介质:诸如光学存储装置(例如,光盘只读存储器(CD-ROM))、磁性介质、闪存只读存储器(ROM)、或者任何目前的或者未来的存储数字信息的装置。所存储的信息能够处于以下形式:机器可执行指令(例如,经编译的可执行二进制代码)、源代码、字节代码、或者能够被用来支持计算设备或配置计算设备以执行上面所讨论的各种实施例的任何其他信息。这也被认为至少包括易失性存储器(诸如,随机存储存储器(RAM))和/或在实现实施例的程序的执行期间存储信息(诸如,中央处理单元(CPU)指令)的虚拟存储器、以及存储允许程序或可执行文件被加载并执行的信息的非易失性介质。实施例和特征可以在任何类型的计算设备上被执行,包括便携设备、工作站、服务器、移动无线设备等。
Claims (15)
1.一种由计算设备执行的方法,所述计算设备包括处理硬件和存储硬件,所述方法包括:
在所述存储硬件中存储包括本地数据项的本地数据存储库,所述本地数据项具有相应的唯一的存储路径,所述本地数据项在所述存储路径处被存储在所述本地数据存储库中;
维持包括高速缓冲存储器条目的浅高速缓冲存储器,每个高速缓冲存储器条目表示所述本地数据存储库中的相应的本地数据项,每个高速缓冲存储器条目包括被对应地表示的所述本地数据项的哈希并且包括路径的集合,所述本地数据项的相应的副本在所述路径处被存储在所述本地数据存储库中;
确定将数据集从远程设备添加到所述数据存储库,所述数据集由包括清单条目的列表的清单表示,每个清单条目包括在所述远程设备处的相应的远程数据项的哈希以及路径的集合,所述远程数据项的相应的副本在所述路径处被存储在所述远程设备上;
基于确定将所述数据集从所述远程设备添加到所述数据存储库,通过以下操作添加所述数据集:
针对所述清单中的每个清单条目,确定是否有任何高速缓冲存储器条目包含所述清单条目的所述哈希;以及
当高速缓冲存储器条目被确定为包含清单条目的哈希时,将本地数据项(i)从所述高速缓冲存储器条目的路径的集合中的路径复制到(ii)所述清单条目的路径的集合中的所述路径中的每个路径。
2.根据权利要求1所述的方法,其中当确定了没有高速缓冲存储器条目包含所述清单条目的所述哈希时,在所述清单条目的路径集合中的所述路径处将对应的远程数据项复制到所述本地数据存储库。
3.根据权利要求1所述的方法,还包括确定所述清单中的给定的哈希存在于所述浅高速缓冲存储器中的给定的高速缓冲存储器条目中,确定所述给定的高速缓冲存储器条目中的所述路径的集合中的所述路径中的每个路径不包含对应于所述给定的哈希的给定的数据项,以及基于此将所述给定的数据项从所述远程设备复制到所述本地数据存储库并且相应地更新所述浅高速缓冲存储器。
4.根据权利要求1所述的方法,其中所述本地数据存储库包括文件系统,所述数据存储库中的所述数据项包括所述文件系统中的文件,并且所述高速缓冲存储器条目中的所述路径的集合中的所述路径包括所述文件系统中的文件路径。
5.根据权利要求1所述的方法,还包括允许数据项从所述本地数据存储库被删除,而无需对所述浅高速缓冲存储器的对应的更新。
6.根据权利要求1所述的方法,还包括接收针对相应的数据集的多个清单,以及合并所述清单的与所述清单中的相同哈希相关联的路径。
7.一种计算设备,包括:
处理硬件,所述处理硬件被配置为与存储硬件交互操作;
所述存储硬件,所述存储硬件存储指令,所述指令被配置为当由所述处理硬件执行时,使所述计算设备执行过程,所述过程包括:
提供内容可寻址存储装置,所述内容可寻址存储装置存储文件的层级,每个文件被存储在所述文件的层级中的相应的唯一的路径处,其中相同文件的实例被存储在所述文件的层级中的不同的相应的唯一的路径处;
维持包括所述文件的层级中的文件的哈希的浅高速缓冲存储器,所述浅高速缓冲存储器还包括分别与所述哈希相关联的路径列表,与相应的哈希相关联的每个路径列表包括所述文件的层级中存储对应于所述哈希的所述文件的一个或多个相应的实例的一个或多个路径的列表,其中所述路径列表中的至少一些路径列表包括多个路径;以及
通过以下操作来将文件添加到所述内容可寻址存储装置中的相应的新的路径:每次文件要被添加到所述内容可寻址存储装置中的一个或多个新的路径时,确定所述文件的哈希是否存在于所述浅高速缓冲存储器中,其中当文件的哈希被确定为存在于所述浅高速缓冲存储器中时,所述文件从所述对应的路径列表中的路径被复制到所述对应的新的路径中的每个路径。
8.根据权利要求7所述的计算设备,其中当文件的哈希被确定为不存在于所述浅高速缓冲存储器中时,所述文件从远程的源被复制到对应于所述文件的所述新的路径中的每个路径,所述远程的源已经提供了所述新的路径。
9.根据权利要求8所述的计算设备,其中当所述浅高速缓冲存储器中的路径列表被用来将所述对应的文件的新的实例添加到所述内容可寻址存储装置时,所述路径列表中的路径被确定为不存在并且基于此所述路径列表中的另一路径被用作源来添加所述对应的文件的所述新的实例。
10.根据权利要求7所述的计算设备,所述过程还包括,当使用所述浅高速缓冲存储器将新的文件添加到所述内容可寻址存储装置时,确定所述浅高速缓冲存储器中的路径列表中的路径是无效的并且基于此从所述路径列表中移除所述路径。
11.根据权利要求7所述的计算设备,其中当文件以及对应的新的路径被添加到所述内容可寻址存储装置时,所述新的路径中的每个路径被添加到所述内容可寻址存储装置并且所述新的路径中的每个所添加的路径包括所述文件的实例被存储的位置。
12.一种存储指令的计算机可读存储硬件,所述指令被配置为使计算设备执行过程,所述过程包括:
维持包括内容单元的存储装置,每个内容单元被存储在完整路径处,每个完整路径属于相同的命名空间,其中所述完整路径中的一些完整路径包含相同的相应的内容单元的实例;
维持位置高速缓冲存储器,所述位置高速缓冲存储器指示哪些内容单元被存储在所述存储装置中的哪些完整路径处,其中给定任意的内容单元,所述任意的内容单元的相应的实例被存储在所述存储装置中的完整路径能够基于所述任意的内容单元的哈希被获取;
接收第一请求以将第一目标内容单元添加到所述存储装置的所述命名空间中的第一目标完整路径处;
通过以下操作响应所述第一请求:获取所述第一目标内容单元的第一目标哈希,基于所述目标哈希从所述位置高速缓冲存储器获取源完整路径,以及使用所获取的所述源完整路径以将所述源完整路径处的内容单元复制到所述目标完整路径中的每个目标完整路径。
13.根据权利要求12所述的计算机可读存储硬件,其中所述位置高速缓冲存储器包括相应的内容单元的哈希,并且其中通过在所述位置高速缓冲存储器中搜索所述第一目标哈希,所述源完整路径从所述位置高速缓冲存储器被获取。
14.根据权利要求12所述的计算机可读存储硬件,所述过程还包括接收第二请求以将第二目标内容单元添加到所述存储装置的所述命名空间中的第二目标完整路径处,确定所述位置高速缓冲存储器不包含所述第二目标内容单元的有效位置,并且基于此将所述第二目标内容单元从远程存储装置复制到所述存储装置的所述第二目标完整路径处。
15.根据权利要求12所述的计算机可读存储硬件,所述过程还包括接收第二请求以将第二目标内容单元添加到所述存储装置的所述命名空间中的第二目标完整路径处,确定所述位置高速缓冲存储器包含对应于所述第二目标内容单元的哈希的候选的完整路径,以及基于此计算被存储在所述候选的完整路径处的内容单元的哈希。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/017,985 | 2018-06-25 | ||
US16/017,985 US10534708B1 (en) | 2018-06-25 | 2018-06-25 | Shallow cache for content replication |
PCT/US2019/036217 WO2020005512A1 (en) | 2018-06-25 | 2019-06-10 | Shallow cache for content replication |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112384905A true CN112384905A (zh) | 2021-02-19 |
Family
ID=67108140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980040778.6A Pending CN112384905A (zh) | 2018-06-25 | 2019-06-10 | 针对内容复制的浅高速缓冲存储器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10534708B1 (zh) |
EP (1) | EP3811228A1 (zh) |
CN (1) | CN112384905A (zh) |
WO (1) | WO2020005512A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390352A (zh) * | 2019-06-26 | 2019-10-29 | 华中科技大学 | 一种基于相似性哈希的图像暗数据价值评估方法 |
US11748374B2 (en) * | 2021-11-30 | 2023-09-05 | Snowflake Inc. | Replication group objects configuration in a network-based database system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1513065A1 (en) * | 2003-09-04 | 2005-03-09 | Hitachi, Ltd. | File system and file transfer method between file sharing devices |
CN103765817A (zh) * | 2011-08-30 | 2014-04-30 | 国际商业机器公司 | 从源服务器向目标服务器复制数据对象 |
US9323758B1 (en) * | 2009-12-22 | 2016-04-26 | Emc Corporation | Efficient migration of replicated files from a file server having a file de-duplication facility |
CN106126441A (zh) * | 2015-05-04 | 2016-11-16 | Arm 有限公司 | 追踪缓存的内容 |
CN107153707A (zh) * | 2017-05-12 | 2017-09-12 | 华中科技大学 | 一种针对非易失内存的哈希表构建方法及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373345B2 (en) | 2003-02-21 | 2008-05-13 | Caringo, Inc. | Additional hash functions in content-based addressing |
US7444389B2 (en) | 2003-12-09 | 2008-10-28 | Emc Corporation | Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time |
US20060117018A1 (en) | 2004-11-30 | 2006-06-01 | Microsoft Corporation | Method and system for caching remote files locally |
US9424266B2 (en) | 2007-10-01 | 2016-08-23 | Microsoft Technology Licensing, Llc | Efficient file hash identifier computation |
EP2545452B1 (en) * | 2010-03-08 | 2017-11-29 | Hewlett-Packard Enterprise Development LP | Data storage apparatus and methods |
US9471696B2 (en) * | 2010-11-12 | 2016-10-18 | Yahoo! Inc. | Methods and systems for pathing analysis |
US9098406B2 (en) * | 2012-01-23 | 2015-08-04 | Empire Technology Development Llc | Managing addressable memory in heterogeneous multicore processors |
US9729659B2 (en) | 2013-03-14 | 2017-08-08 | Microsoft Technology Licensing, Llc | Caching content addressable data chunks for storage virtualization |
US20150227543A1 (en) | 2014-02-11 | 2015-08-13 | Atlantis Computing, Inc. | Method and apparatus for replication of files and file systems using a deduplication key space |
US9986029B2 (en) | 2014-03-19 | 2018-05-29 | Red Hat, Inc. | File replication using file content location identifiers |
US9612967B1 (en) * | 2015-09-25 | 2017-04-04 | Dell Products, L.P. | Cache load balancing by reclaimable block migration |
US20180095985A1 (en) | 2016-09-30 | 2018-04-05 | Cubistolabs, Inc. | Physical Location Scrambler for Hashed Data De-Duplicating Content-Addressable Redundant Data Storage Clusters |
-
2018
- 2018-06-25 US US16/017,985 patent/US10534708B1/en active Active
-
2019
- 2019-06-10 CN CN201980040778.6A patent/CN112384905A/zh active Pending
- 2019-06-10 EP EP19734557.2A patent/EP3811228A1/en active Pending
- 2019-06-10 WO PCT/US2019/036217 patent/WO2020005512A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1513065A1 (en) * | 2003-09-04 | 2005-03-09 | Hitachi, Ltd. | File system and file transfer method between file sharing devices |
US9323758B1 (en) * | 2009-12-22 | 2016-04-26 | Emc Corporation | Efficient migration of replicated files from a file server having a file de-duplication facility |
CN103765817A (zh) * | 2011-08-30 | 2014-04-30 | 国际商业机器公司 | 从源服务器向目标服务器复制数据对象 |
CN106126441A (zh) * | 2015-05-04 | 2016-11-16 | Arm 有限公司 | 追踪缓存的内容 |
CN107153707A (zh) * | 2017-05-12 | 2017-09-12 | 华中科技大学 | 一种针对非易失内存的哈希表构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2020005512A1 (en) | 2020-01-02 |
US20190391917A1 (en) | 2019-12-26 |
EP3811228A1 (en) | 2021-04-28 |
US10534708B1 (en) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9195673B2 (en) | Scalable graph modeling of metadata for deduplicated storage systems | |
EP2324440B1 (en) | Providing data structures for determining whether keys of an index are present in a storage system | |
US8682874B2 (en) | Information processing system | |
CA2723731C (en) | Managing storage of individually accessible data units | |
EP2784665A1 (en) | Program and version control method | |
US10310904B2 (en) | Distributed technique for allocating long-lived jobs among worker processes | |
JP2007122302A (ja) | 情報検索システムとインデクス管理方法およびプログラム | |
EP3103025A2 (en) | Content based organization of file systems | |
US9659023B2 (en) | Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
US10241963B2 (en) | Hash-based synchronization of geospatial vector features | |
US11650967B2 (en) | Managing a deduplicated data index | |
CN112384905A (zh) | 针对内容复制的浅高速缓冲存储器 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
US20040117437A1 (en) | Method for efficient storing of sparse files in a distributed cache | |
CN114840487A (zh) | 分布式文件系统的元数据管理方法和装置 | |
US10146466B1 (en) | Merging mapping metadata to promote reference counting efficiency | |
US20220222146A1 (en) | Versioned backup on an object addressable storage system | |
US20190147047A1 (en) | Object-level image query and retrieval | |
CN114661676B (zh) | 分布式数据库管理系统、方法、电子设备及可读存储介质 | |
US10942912B1 (en) | Chain logging using key-value data storage | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
CN110008178B (zh) | 分布式文件系统元数据的组织方法及装置 | |
US9916372B1 (en) | Folded-hashtable synchronization mechanism | |
CN105046162A (zh) | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |