用于在分散式数据保护系统中归档数据的系统和方法与流程

文档序号:21406944发布日期:2020-07-07 14:41阅读:157来源:国知局
用于在分散式数据保护系统中归档数据的系统和方法与流程

本公开涉及用于在数据归档中使用的节点、用于管理数据归档中的节点的方法以及用于其的非暂时性计算机可读介质。



背景技术:

计算设备可存储信息。该信息可反映由某个用户输入的信息。这种信息可能对用户很重要。例如,用户可能向数据库中输入信息,可能向电子表格添加数据,或者可能起草电子邮件。用户与计算设备之间的这些交互中的每一次交互都可能将对用户很重要的信息存储在计算设备中。

在分布式计算环境中,多个计算设备可以可操作地彼此连接。为了提供冗余,可将数据的副本存储在多个计算设备中,以防止这些计算设备中某个计算设备的故障引起数据丢失。



技术实现要素:

在一个方面中,本发明的一个或多个实施例的用于数据归档的节点包括持久性存储装置和数据保护代理。该持久性存储装置存储数据副本。该数据保护代理获得对数据副本进行归档的请求;响应于该请求:生成数据副本的档案;将该档案存储在档案节点中;根据该档案生成元数据;从持久性存储装置删除数据副本;并在删除数据副本后向第二节点通告该数据副本被存储在所述节点中。

在一个方面中,本发明的一个或多个实施例的用于管理数据归档中的节点的方法包括:获得对存储在节点中的数据副本进行归档的请求;响应于该请求:生成数据副本的档案;将该档案存储在档案节点中;根据该档案生成元数据;从所述节点的持久性存储装置删除数据副本;并在删除数据副本后向第二节点通告该数据副本被存储在所述节点中。

在一个方面中,本发明的一个或多个实施例的非暂时性计算机可读介质包括在由计算机处理器执行时使计算机处理器能够执行用于管理数据归档中的节点的方法的计算机可读程序代码。该方法包括:获得对存储在节点中的数据副本进行归档的请求;响应于该请求:生成数据副本的档案;将该档案存储在档案节点中;根据该档案生成元数据;从所述节点的持久性存储装置删除数据副本;并在删除数据副本后向第二节点通告该数据副本被存储在所述节点中。

附图说明

下面将参照附图说明本发明的一些实施例。但是,附图仅通过示例的方式示出了本发明的某些方面或实施方式,并不意味着限制权利要求的范围。

图1.1示出了本发明的一个或多个实施例的系统的示意图;

图1.2示出了本发明的一个或多个实施例的数据节点的示意图;

图1.3示出了本发明的一个或多个实施例的档案节点的示意图;

图2.1示出了本发明的一个或多个实施例的复本元数据的示意图;

图2.2示出了本发明的一个或多个实施例的本地数据元数据的示意图;

图3.1示出了本发明的一个或多个实施例的对数据进行归档的方法的流程图;

图3.2示出了本发明的一个或多个实施例的对数据状态验证请求做出响应的方法的流程图;

图3.3示出了本发明的一个或多个实施例的对数据归档请求做出响应的方法的流程图;

图3.4示出了本发明的一个或多个实施例的对数据副本请求做出响应的方法的流程图;

图4.1-4.7示出了一个示例性系统在不同时间点时的示意图;

图5示出了本发明的一个或多个实施例的计算设备的示意图。

具体实施方式

下面将参照附图说明本发明的具体实施例。在以下说明中,阐述了许多细节作为本发明的示例。本领域技术人员应理解,无需这些具体细节即可实践本发明的一个或多个实施例,并且在不脱离本发明的范围的情况下可做出各种变化或修改。在本文中省略了本领域普通技术人员已知的某些细节,以避免使说明变得模糊。

在以下的附图说明中,在本发明的多个实施例中参照一个附图说明的任何部件可以等同于参照任何其他附图说明的一个或多个以相似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每个实施例通过引用结合在此,并假定其可选地存在于具有一个或多个以相似方式命名的部件的其他附图中。此外,根据本发明的多个实施例,对附图的部件的任何说明应理解为可选的实施例,这种可选的实施例可以是除了相对于任何其他附图中的以相似方式命名的相应部件说明的实施例之外的实施例,与这些实施例结合实施,或者代替这些实施例。

本发明的实施例总体涉及一种用于在分散式数据存储系统中提供数据保护的系统、装置和方法。本发明的实施例的系统可包括数据节点和档案节点。数据节点可出于数据完整性目的冗余地存储数据的多个副本。

在本发明的一个或多个实施例中,数据节点将数据归档在档案节点中。在数据节点将数据副本归档在档案节点中时,即使在删除了数据副本之后,该数据节点仍可继续通告其仍存储有数据副本。在删除数据副本之前,数据节点可生成与数据档案相关联的档案元数据,该档案元数据使数据节点能确保请求该数据副本的任何实体都能够检索数据副本。这样,本发明的实施例可提供一种分散式数据保护系统,该系统能容忍系统的节点之间的网络连接的变化。相反,目前的分散式数据存储装置在分散式数据存储系统的节点之间的连接发生变化和/或遇到变故时可能易发生数据丢失,或者可能其数据存储效率很低。

图1示出了本发明的一个或多个实施例的计算系统。该系统可以是分散式数据保护系统。该系统可包括生成数据的数据节点(100)和存储由数据节点(100)和/或其他实体生成的归档数据的档案节点(110)。为了实现分散式数据保护系统,数据节点(100)可支持将由任何数据节点(100)生成的数据的多个副本存储在多个数据节点(100)中的架构。例如,数据节点(100)可分别遵循要求在所有时间点将三个数据副本(或其他数量的副本)存储在数据节点(100)中的策略。这样,与仅在数据节点中存储数据的单个副本相比,分散式数据保护系统能提高存储数据的可靠性(100)。

图1的系统的每个组件可通过有线和无线连接的任何组合可操作地连接。但是,每个组件之间的可操作连接可能并不总是可用的。例如,由于每个数据节点(例如100.2、100.4)与每个档案节点(例如110.2、110.4)之间的网络拓扑结构,每个节点可能不一定始终连接至每个其他节点。

例如,请考虑每个数据节点(100)是汽车的计算设备而每个档案节点(110)是连接至互联网的云资源的情况。由于可操作地互连数据节点(100)的无线连接的问题,任何数据节点(100)相对于任何其他数据节点(100)和/或任何档案节点(110)可能暂时无法访问。

考虑到分散式数据保护系统的节点的拓扑结构是变化的,因此本发明的实施例可提供一种用于验证存储在数据节点(100)中的数据是否有足够数量的副本来满足分散式数据保护系统的数据保护策略的要求、对存储在数据节点(100)中的数据进行归档以及对存储在数据保护系统中的数据进行检索的方法。为了进一步解释本发明的实施例的各个方面,下面论述图1.1的系统的每个组件。

数据节点(100)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器或云资源。所述计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。所述持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的数据节点(100)的功能和/或图3.1-3.4中所示的全部方法或一部分方法的计算机指令,例如计算机代码。在不脱离本发明的情况下,数据节点(100)可以是其他类型的计算设备。欲了解计算设备的更详细信息,请参考图5。

在本发明的一个或多个实施例中,数据节点(100)是分布式计算设备。分布式计算设备可指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,数据节点(100)可以是包括分布在任何数量的独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,数据节点(100)的功能可由多个不同的物理计算设备执行。

数据节点(100)可实施用于分散式数据保护系统的数据保护策略。该数据保护策略可包括:在数据节点中存储预定数量的数据副本;在满足预定条件时将数据副本归档在档案节点(110)中;在存储了数据的每个相应归档副本的数据节点中本地存储关于数据的归档副本的元数据;在数据节点将数据的归档副本存储在档案节点(110)中之后,从数据节点删除数据副本;并继续向其他数据节点通告删除了数据副本的数据节点仍具有该数据副本。这样,即使在分散式数据保护系统的节点因网络拓扑结构的变化而变得不可访问时,分散式数据保护系统也能提供数据冗余和数据归档服务。在数据节点(110)与其他实体之间的连接可能遇到变故的环境中,由数据节点(110)执行的上述数据保护策略能提高在分布式系统中存储数据的可靠性,并且,即使数据副本已被归档,也能提高检索数据副本的效率。欲了解数据节点(100)的更详细信息,请参考图1.2。

档案节点(110)可以是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器或云资源。所述计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。所述持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的档案节点(110)的功能和/或图3.1-3.4中所示的全部方法或一部分方法的计算机指令,例如计算机代码。在不脱离本发明的情况下,档案节点(110)可以是其他类型的计算设备。欲了解计算设备的更详细信息,请参考图5。

在本发明的一个或多个实施例中,档案节点(110)是分布式计算设备。分布式计算设备可指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一个或多个实施例中,档案节点(110)可以是包括分布在任何数量的独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,档案节点(110)的功能可由多个不同的物理计算设备执行。

档案节点(110)可为数据节点(100)提供数据归档服务。例如,档案节点(110)可存储数据档案,并提供所存储的数据档案的副本。欲了解档案节点(110)的更详细信息,请参考图1.3。

如上所述,数据节点(100)可实施分散式数据保护系统的数据保护策略。图1.2示出了本发明的一个或多个实施例的数据节点a(100.2)的示意图。图1.1的其他数据节点可与数据节点a(100.2)类似。

如上所述,数据节点a(100.2)可实施图1.1的分散式数据保护系统的数据保护策略。为了实施数据保护策略,数据节点a(100.2)可包括数据保护代理(102)和持久性存储装置(104)。下面论述数据节点a(100.2)的每个组件。

在本发明的一个或多个实施例中,数据保护代理(102)管理存储在持久性存储装置(104)中的数据。为了管理存储在持久性存储装置(104)中的数据,数据保护代理(102)可:(i)将数据副本存储在其他数据节点中;(ii)响应于预定条件对存储的数据副本进行归档;(iii)生成关于数据的归档副本的元数据,该元数据使得数据的归档副本能被检索;(iv)在归档后删除数据副本;并且(v)在删除数据副本之后继续通告该数据副本可用。为了提供数据保护代理(102)的上述功能,数据保护代理可执行图3.1-3.4中所示的全部或一部分方法。

在本发明的一个或多个实施例中,数据保护代理(102)是包括电路的硬件设备。数据保护代理(102)例如可以是数字信号处理器、现场可编程门阵列或应用专用集成电路。在不脱离本发明的情况下,数据保护代理(102)可以是其他类型的硬件设备。

在本发明的一个或多个实施例中,数据保护代理(102)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行数据保护代理(102)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。

在本发明的一个或多个实施例中,持久性存储装置(104)是存储数据结构的存储装置。持久性存储装置(104)可以是物理或逻辑设备。例如,持久性存储装置(104)可包括用于提供数据存储功能的固态驱动器、固态驱动器、磁带驱动器和其他组件。或者,持久性存储装置(104)可以是利用其他组件的物理计算资源提供数据存储功能的逻辑设备。

在本发明的一个或多个实施例中,永久性存储装置(104)存储本地数据(106)、远程数据(108)、数据保护策略(104.2)以及分布式数据存储图(104.4)。这些数据结构中的每一个将在下文中说明。

本地数据(106)可以是包括关于由数据节点a(100.2)生成的数据的信息的数据结构。例如,本地数据(106)可包括本地数据存储库(106.2),该本地数据存储库包括由数据节点a(100.2)生成的数据。本地数据存储库(106.2)包括由数据节点a(100.2)生成的任何数量的数据。本地数据(106)还可包括本地元数据(106.4)。本地元数据(106.4)可包括关于存储在本地数据存储库(106.2)中的数据的信息。

如下文中所进一步详述,数据保护代理(102)可存储在本地数据存储库(106.2)和其他数据节点中存储的数据的副本,以满足数据保护策略(106.2)的要求。本地元数据(106.4)可包括指示数据副本存储位置的信息。例如,在本地数据元数据(106.4)中可包括存储来自本地数据存储库(106.2)的数据副本的每个其他数据节点的标识符信息。这样,数据节点a(100.2)能够确定本地数据存储库(106.2)的数据副本的位置。欲了解本地元数据的更详细信息,请参考图2.2。

远程数据(108)可以是包括关于从其他数据节点获得的数据副本的信息的数据结构。例如,远程数据(108)可包括复本存储库(108.4),该复本存储库包括来自其他数据节点的数据的副本。这种副本可在分散式数据保护系统中提供数据冗余。远程数据(108)还可包括复本元数据(108.6)。

如下文所进一步详述,数据保护代理(102)可对存储在复本存储库(108.4)中的数据副本进行归档,并且可在档案节点中存储档案副本之后删除存储在复本存储库(108.4)中的数据副本。复本元数据(108.6)可包含使数据保护代理(102)能够确保其他节点能获取已由数据保护代理(102)归档的数据副本的信息。欲了解复本元数据(108.6)的更详细信息,请参考图2.1。

数据保护策略(104.2)可以是包含关于分散式数据保护系统的要求的信息的数据结构。例如,数据保护策略(104.2)可规定:(i)必须存储在不同数据节点中的数据副本的数量,(ii)何时应归档数据和数据副本,和/或(iii)在节点无法验证存储在不同数据节点中的数据副本的数目是否符合要存储在不同数据节点中的必要副本的数目时应采取的措施。在不脱离本发明的情况下,数据保护策略(104.2)可规定分散式数据保护系统的更多、不同和/或更少的要求。

分布式数据存储图(104.4)可以是规定分散式数据保护系统中的数据和/或数据副本的存储位置的数据结构。分散式数据保护系统的每个节点可不断通告存储在每个相应节点中的数据,以确保由每个节点维护的分布式数据存储图(104.4)是最新的。分布式数据存储图(104.4)包含使数据保护代理(102)能够确定数据和/或数据副本的存储位置的信息。

在本发明的一个或多个实施例中,分布式数据存储图(104.4)被实现为分布式哈希表。例如,分布式数据存储图(104.4)可将数据的哈希值映射到该数据的位置信息。因此,可使用数据的哈希值来获得数据的位置。在不脱离本发明的情况下,可使用不同类型的数据结构来实现分布式数据存储图(104.4)。

虽然图1.2所示的持久性存储装置104被示为包括有限数量的数据结构,但是在不脱离本发明的情况下,持久性存储装置104可包括更多、更少的和/或不同的数据结构。此外,虽然所述数据结构被示为是独立的,但是在不脱离本发明的情况下,包含在存储于持久性存储装置(104)内的数据结构中的数据可存储为单个数据结构,可包含除了上述信息之外的其他信息,并且可存储在不同的位置。

如上所述,数据节点可将数据的档案存储在档案节点中。图1.3示出了本发明的一个或多个实施例的档案节点a(110.2)的示意图。图1.1的其他档案节点可与档案节点a(110.2)类似。

如上所述,档案节点a(110.2)可向数据节点提供数据归档服务。为了提供该功能,档案节点a(110.2)可包括归档代理(112)和持久性存储装置(114)。下面论述档案节点a(110.2)的每个组件。

在本发明的一个或多个实施例中,归档代理(112)向数据节点提供归档服务。例如,归档代理(112)可从数据节点获得数据,并将该数据存储在持久性存储装置(114)中。归档代理(112)还可响应于来自数据节点和/或其他实体的请求提供存储在持久性存储装置(114)中的数据副本。

在本发明的一个或多个实施例中,归档代理(112)是包括电路的硬件设备。归档代理(112)例如可以是数字信号处理器、现场可编程门阵列或应用专用集成电路。在不脱离本发明的情况下,归档代理(112)可以是其他类型的硬件设备。

在本发明的一个或多个实施例中,归档代理(112)实现为存储在持久性存储装置上的计算代码,该计算代码在由处理器执行时执行归档代理(112)的功能。所述处理器可以是包括电路的硬件处理器,例如中央处理单元或微控制器。在不脱离本发明的情况下,所述处理器可以是用于处理数字信息的其他类型的硬件设备。

在本发明的一个或多个实施例中,持久性存储装置(114)是存储数据结构的存储装置。持久性存储装置(114)可以是物理或逻辑设备。例如,持久性存储装置(114)可包括用于提供数据存储功能的固态驱动器、固态驱动器、磁带驱动器和其他组件。或者,持久性存储装置(114)可以是利用其他组件的物理计算资源提供数据存储功能的逻辑设备。

在本发明的一个或多个实施例中,持久性存储装置(114)存储归档数据存储库(114.2)。归档数据存储库(114.2)可存储来自数据节点的数据。例如,数据节点可将数据的档案发送至归档代理(112),而归档代理(112)可将数据的档案存储在归档数据存储库(114.2)中。

虽然图1.3所示的持久性存储装置114被示为包括有限数量的数据结构,但是在不脱离本发明的情况下,持久性存储装置114可包括更多、更少的和/或不同的数据结构。此外,虽然所述数据结构被示为是独立的,但是在不脱离本发明的情况下,包含在存储于持久性存储装置(114)内的数据结构中的数据可存储为单个数据结构,可包含除了上述信息之外的其他信息,并且可存储在不同的位置。

为了进一步阐明本发明的实施例的各个方面,在图2.1-2.2中示出了由图1.1的分散式数据保护系统的节点所利用的数据结构的示意图。

图2.1示出了本发明的一个或多个实施例的复本元数据(108.6)的示意图。如上所述,复本元数据(108.6)可使数据节点能够安排另一个数据节点对数据副本的检索。复本元数据(108.6)可包含任何数量的条目(例如200、202)。每个条目可与存储在档案节点中的副本数据的档案相关联。数据副本可能已被从复本存储库删除。

元数据条目a(200)包含可用于获得从其生成档案的数据副本的信息。元数据条目a(200)可包含将元数据条目a(200)与档案节点中的档案相关联的数据关联关系(200.2)。例如,数据关联关系(200.2)可以是档案的标识符。

元数据条目a(200)还可包含关联数据的标识符(200.4)。关联数据的标识符(200.4)可以是从其生成与元数据条目a(200)关联的档案的数据副本的标识符。

元数据条目a(200)还可包含检索信息(200.6)。检索信息(200.6)可以是支持获得与元数据条目a(200)相关联的档案的信息。例如,检索信息(200.6)可以是存储档案的档案节点的标识符。

复本元数据(108.6)的每个条目都可包含与元数据条目a(200)类似但用于其他数据档案的信息。因此,复本元数据(108.6)可包含数据节点存储在档案节点中的每个档案的条目。

图2.2示出了本发明的一个或多个实施例的本地数据元数据(104.6)的示意图;如上所述,本地数据元数据(104.6)可跟踪数据副本在整个分散式数据保护系统中的存储位置。本地数据元数据(104.6)可包含任何数量的条目(例如220、222)。每个条目可与存储在本地数据存储库中的数据相关联。

本地元数据条目a(220)包含可用于跟踪与本地元数据条目a(220)相关联的数据副本的存储位置的信息。本地元数据条目a(220)可包含标识与该条目相关联的数据的数据标识符(220.2)。例如,数据标识符(220.2)可以是本地数据存储库中的数据的标识符,例如文件名或统一资源标识符。

本地元数据条目a(220)还可包含复制信息(220.4)。复制信息(220.4)可指定数据副本的存储位置。例如,复制信息(220.4)可包含存储与本地数据元数据条目a(220)相关联的数据副本的其他数据节点的标识符。

本地数据元数据(104.6)的每个条目可包含与本地数据元数据条目a(220)类似但用于其他数据档案的信息。因此,本地数据元数据(104.6)可包含用于存储在本地数据存储库中的数据的每个部分的条目。

如上所述,图1.1的系统的组件可执行用于管理分散式数据保护系统的方法。图3.1-3.4示出了本发明的一个或多个实施例的可由图1.1的系统的组件执行的方法。在不脱离本发明的情况下,图3.1-3.4中所示的任何步骤可以省略,以不同的顺序执行,和/或与其他步骤并行或部分地重叠的方式执行。

图3.1示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图3.1中所示的方法可用于归档数据。图3.1中所示的方法例如可由数据节点(例如100,图1.1)执行。在不脱离本发明的情况下,图1.1中所示的系统的其他组件也可执行图3.1的方法。

在步骤300中,标识数据的数据归档触发事件。

在本发明的一个或多个实施例中,数据归档触发事件是由数据保护策略规定的事件。例如,数据归档触发事件可能与数据的龄期有关。数据保护策略可规定应对所有六个月以上龄期的数据进行归档。数据保护策略可规定任何类型和数量的规定数据归档触发事件的策略。

在本发明的一个或多个实施例中,通过由数据节点监视本地数据来标识数据归档触发事件。即,数据节点可监视本地数据的龄期,并且可在数据的龄期超过数据保护策略规定的龄期时标识发生了数据归档触发事件。在不脱离本发明的情况下,可经由其他方法标识数据归档触发事件。例如,数据归档触发事件可以是由另一个实体发送至数据节点的指令。

在步骤302,标识存储数据副本的其他数据节点。

在本发明的一个或多个实施例中,使用本地数据元数据来标识其他数据节点。如上所述,当数据副本被复制到其他数据节点时,这种信息可被记录在与数据相关联的本地元数据中。

在步骤304,验证存储在其他节点中的数据副本的状态。

在本发明的一个或多个实施例中,通过向其他数据节点发送请求状态信息来验证存储在其他节点中的数据副本的状态。来自其他数据节点的响应可包含数据副本的状态信息。

在步骤306中,确定数据副本的所有状态是否都可接受。即,确定存储数据副本的所有其他数据节点是否都(i)对由数据节点发送的请求做出回复,并(ii)表明在其他数据节点上存储有数据副本。

若数据副本的所有状态都可接受,则该方法可转到步骤308。若数据副本的所有状态不可接受,则该方法可转到步骤314。

在步骤308中,选择档案节点。

在本发明的一个或多个实施例中,根据数据节点与档案节点之间的连接来选择档案节点。例如,数据节点可选择对数据节点高度可用的档案节点。如下文所进一步详述,在某些情况下,数据节点可从档案节点而不是从其他数据节点检索归档的数据副本。

在步骤310中,根据所选择的档案节点向其他数据节点发送归档命令。例如,数据节点可向其他数据节点发送指示应对数据副本进行归档并存储在档案节点中的指令。

在步骤312中,对数据进行归档,并生成该数据的档案元数据。

在本发明的一个或多个实施例中,通过生成和归档数据、将生成的档案发送至档案节点并删除数据来对数据进行归档。

档案元数据包括反映数据档案存储位置的信息,即,允许数据节点标识存储数据档案的档案节点的标识信息或其他信息。

该方法可在步骤312之后结束。

现在回到步骤306,该方法可在步骤306之后进行到步骤314。

在步骤306中,补救不可接受的状态。

在本发明的一个或多个实施例中,补救不可接受的状态是通过将其他数据副本存储在其他数据节点中来完成的。例如,当因网络拓扑发生变化而先前存储数据副本的数据节点无法访问时,数据节点可将其他副本存储在可访问的其他数据节点中。这样,可在分散式数据保护系统中冗余地存储其他数据副本。可重复此过程,直到该数据节点可访问的数据节点中存储的副本的数目满足数据保护策略的要求为止。在不脱离本发明的情况下,可通过其他方法来补救不可接受的状态。

该方法可在步骤308之后进行到步骤314。

使用图3.1所示的方法,即使在存储数据副本的节点变得不可访问时,本发明的实施例的系统也能提供数据的数据归档服务。

图3.2示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图3.2所示的方法可用于对数据状态验证请求做出响应。图3.2中所示的方法例如可由数据节点(例如100,图1.1)执行。在不脱离本发明的情况下,图1.1中所示的系统的其他组件也可执行图3.2的方法。

在步骤320中,获得验证数据副本的状态的请求。该数据副本可能存储在复本存储库中。

在步骤322中,确定数据副本是否存储在复本存储库中。若数据副本存储在复本存储库中,则该方法可转到步骤324。若数据副本不是存储在复本存储库中,则该方法可转到步骤330。

在步骤324中,确定复本存储库中的数据副本的状态。即,确定数据副本是否应在复本存储库中。若数据副本存储在复本存储库中,则确定该状态是可接受的。若数据副本不存储在复本存储库中,则确定该状态是不可接受的。

在步骤326中,确定数据副本的状态是否可接受。若状态是可接受的,则该方法可转到步骤328。若状态是不可接受的,则该方法可转到步骤334。

在步骤328中,发送指示该数据副本的状态可接受的通知。

该方法可在步骤328之后结束。

现在回到步骤326,若状态是不可接受的,则该方法可转到步骤334。

在步骤334中,发送通知,指明数据副本是不可接受的。

该方法可在步骤334之后结束。

现在返回步骤322,若数据副本不存储在复本存储库中,则该方法可转到步骤334。即,若先前已对数据副本进行了归档,则预计该数据副本不应存储在复本存储库中。

在步骤330中,确定档案节点中的数据副本的归档状态。可通过向档案节点发送对归档状态请求来确定数据副本和档案节点的归档状态。若在档案节点中存在数据副本的档案,则档案节点可指明归档状态是可接受的。若在档案节点中不存在数据副本的档案,则档案节点可指明归档状态是不可接受的。

在步骤332中,确定归档状态是否可接受。

若归档状态是可接受的,则该方法可转到步骤328。若归档状态是不可接受的,则该方法可转到步骤334。

使用图3.2所示的方法,本发明的实施例的系统能确定存储在系统中的数据副本是否处于可接受的状态。可事先使用这种确定来引发数据归档,以确保生成适当数量的数据档案。

图3.3示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图3.3中所示的方法可用于归档数据。图3.3中所示的方法例如可由数据节点(例如100,图1.1)执行。在不脱离本发明的情况下,图1.1中所示的系统的其他组件也可执行图3.3的方法。

在步骤340中,获得对复本存储库中存储的数据副本进行归档的请求。

在本发明的一个或多个实施例中,从生成数据的数据节点获得对数据副本进行归档的请求。

在步骤342中,生成数据副本的档案,并将该档案发送至档案节点。

在本发明的一个或多个实施例中,生成数据副本的档案会减小数据副本的大小。例如,数据副本的归档可相对于存储在档案节点中的数据对数据副本进行压缩或去重。

在步骤344中,生成与数据副本相关联的复本元数据条目。如上所述,复本元数据条目可包含标识档案的存储位置以及用于生成档案的数据副本的信息。

在步骤346中,从复本存储库删除数据副本。

在步骤348中,在删除数据副本之后,通告该数据副本被存储在复本存储库中。

在本发明的一个或多个实施例中,通过维护与数据副本相关联的分布式数据存储图的条目来通告数据副本存储在复本存储库中。即,该通告可使其他数据节点就像数据副本仍存储在数据节点中那样操作。

该方法可在步骤348之后结束。

使用图3.3所示的方法,本发明的实施例的系统可按与分散式数据保护系统相容的方式来归档数据副本。

图3.4示出了本发明的一个或多个实施例的方法的流程图。根据本发明的一个或多个实施例,图3.4所示的方法可用于对数据副本的请求做出响应。图3.4中所示的方法例如可由数据节点(例如100,图1.1)执行。在不脱离本发明的情况下,图1.1中所示的系统的其他组件也可执行图3.4的方法。

在步骤360中,获得请求实体对数据副本的请求。

在本发明的一个或多个实施例中,该数据副本是先前存储在数据节点中的。

在步骤362中,确定数据副本是否存储在数据节点的复本存储库中。若数据副本存储在复本存储库中,则该方法可转到步骤364。若数据副本未存储在复本存储库中,则该方法可转到步骤366。

在步骤364中,响应于该请求提供来自复本存储库的数据副本。

该方法可在步骤364之后结束。

现在回到步骤362,该方法可在步骤362之后进行到步骤366。

在步骤366中,为请求实体安排对数据副本的检索。

在本发明的一个或多个实施例中,通过从档案节点获得数据副本的档案来安排对数据副本的检索。可响应于该请求提供档案或使用档案生成数据副本,并提供数据副本。

在本发明的一个或多个实施例中,响应于该请求,通过发送与数据副本相关联的复本元数据来安排对数据副本的检索。该复本元数据可包含支持从档案节点检索数据副本的档案的信息。

该方法可在步骤366之后结束。

使用图3.4所示的方法,本发明的实施例的系统可使节点能够按与分散式数据保护系统相容的方式来提供先前已归档或尚未归档的数据副本。

为了进一步阐明本发明的实施例,在图4.1-4.7中给出了一个非限制性示例。图4.1-4.7示出了一个与图1.1的系统类似的系统。为了简洁起见,在图4.1-4.7中仅示出了图1.1的系统的有限数量的组件。

示例

考虑如图4.1所示的情形,其中分散式数据保护系统包括三个数据节点(例如400、410、420)和三个档案节点(例如430、440、450)。在第一时间点,数据节点a(400)存储数据(400.2)。为了提供数据冗余,将数据(410.2、420.2)的副本存储在数据节点b(410)和数据节点c(420)中。

在第二时间点,数据(400.2)的龄期达到由数据保护策略设置的触发数据归档事件的阈值。响应于该数据归档事件,数据节点a(400)向数据节点b和c发出归档请求(402),如图4.2所示。

在发送归档请求之后,数据节点a(400)将数据(430.2)的档案存储在档案节点a(430)中。类似地,数据节点b(410)将数据副本(440.2)的档案存储在档案节点b(440)中,并且数据节点c(420)将数据副本(450.2)的档案存储在档案节点c中(450),如图4.3所示。

在将档案存储在档案节点中之后,数据节点a(400)生成档案元数据(400.4),数据节点b(410)生成复本元数据(410.4),数据节点c(420)也生成复本元数据(410.4)。

在某个时间点,由于网络拓扑发生变化,档案节点a(430)变得不可访问,如图4.4所示。在档案节点a(430)变得不可访问之后,数据节点a(400)需要所述数据。由于数据节点b(410)继续通告其保留着数据副本,因此数据节点a(400)向数据节点b(410)发送对数据副本的请求(404),如图4.5所示。

由于数据节点b(410)因先前对数据副本进行了归档而实际并未保留该数据副本,因此数据节点b(410)响应于来自数据节点a的请求(400)将档案节点b标识符(410.2)发送至数据节点a(400)。响应于档案节点b标识符(410.2)的接收,数据节点a(400)从档案节点b(440)获得数据副本(440.2)的档案,如图4.6所示。

使用数据副本(440.2)的档案,数据节点a(400)根据档案(400.6)生成数据副本,如图4.7所示。因此,即使数据节点b(410)实际没有存储数据副本,但是由于数据节点b(410)在对其数据副本进行归档时生成了复本元数据,因此数据节点a(400)仍然能检索数据副本。。

示例结束

图1.1的任何组件可实现为分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。如上所述,可使用计算设备来实现本发明的实施例。图5示出了本发明的一个或多个实施例的计算设备的示意图。计算设备(500)可包括一个或多个计算机处理器(502)、非持久性存储装置(504)(例如易失性存储器,例如随机存取存储器(ram)、高速缓冲存储器)、持久性存储装置(506)(例如硬盘、光驱(例如光盘(cd)驱动器)或数字通用盘(dvd)驱动器、闪存等)、通信接口(512)(例如蓝牙接口、红外线接口、网络接口、光接口等)、输入装置(510)、输出装置(508)以及许多其他元件(未示出)和功能。这些组件中的每一个将在下文中说明。

在本发明的一个实施例中,计算机处理器(502)可以是用于处理指令的集成电路。例如,计算机处理器可以是一个或多个核心或者是处理器的微核心。计算机设备(500)还可包括一个或多个输入装置(510),例如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或任何其他类型的输入装置。此外,通信接口(512)可包括用于将计算设备(500)连接至网络(未示出)(例如局域网(lan)、广域网(wan)(例如因特网)、移动网络或任何其他类型的网络)和/或另一个设备(例如另一个计算设备)的集成电路。

在本发明的一个实施例中,计算设备(500)可包括一个或多个输出装置(508),例如屏幕(例如液晶显示屏(lcd)、等离子显示屏、触摸屏、阴极射线管(crt)监视器、投影仪或其他显示装置)、打印机、外部存储器或任何其他输出装置。一个或多个输出装置可与输入装置相同或不同。输入和输出装置可通过本地或远程方式连接至计算机处理器(502)、非持久性存储装置(504)和持久性存储装置(506)。存在许多不同类型的计算设备,并且上述输入和输出装置可以采取其他形式。

本发明的一个或多个实施例可改善分散式存储领域。具体而言,本发明的实施例可通过提高分散式存储系统对网络连接变化的容忍度来改善这种系统。本发明的实施例提高了对执行用于在这种系统中存储、检索和归档数据的特定方法的网络活动中的变化的容忍度。

因此,本发明的实施例能解决因分散式数据保护系统的技术特质而引起的问题。例如,由于分散式系统的节点之间的网络连接的丧失,依赖于数据的冗余存储来保证数据完整性的分散式数据保护系统易出现系统故障。本发明的实施例可通过提高分散式数据保护系统对系统节点之间的网络连接的变化或丧失的容忍度来改善分散式数据保护系统。

上述问题应理解为是本文所公开的本发明的实施例所解决的问题的一些示例,并且本发明不限于解决相同/类似的问题。所公开的发明广泛适用于解决除本文所述的问题之外的一系列问题。

可使用由数据管理设备的一个或多个处理器执行的指令(例如计算机可读程序代码)来实现本发明的一个或多个实施例。此外,这样的指令可与存储在一个或多个非暂时性计算机可读介质上的计算机可读指令(例如计算机可读程序代码)对应。

虽然本发明在上文中是参照有限数量的实施例说明的,但是受益于本公开的本领域技术人员能理解,能够设计出不脱离本文中所公开的本发明的范围的其他实施例。因此,本发明的范围仅由所附权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1