用于使用数据访问网关和基于元数据映射的投标优化对数据集群的数据节点的访问的方法与流程

文档序号:28636144发布日期:2022-01-26 17:09阅读:81来源:国知局
用于使用数据访问网关和基于元数据映射的投标优化对数据集群的数据节点的访问的方法与流程
用于使用数据访问网关和基于元数据映射的投标优化对数据集群的数据节点的访问的方法


背景技术:

1.装置可以基于现有信息而生成信息。例如,装置可以获得信息并且基于所获得的信息而推导出信息。为了获得信息,装置可能能够与其他装置通信。装置之间的通信可以利用任何手段。


技术实现要素:

2.一般而言,在一方面,本发明涉及一种被执行来访问数据集群的数据节点的方法。所述方法包括:通过数据访问网关(dag)从主机获得请求;以及响应于所述请求,从所述数据节点获得投标计数器;从所述数据节点获得元数据映射;基于所述投标计数器和所述元数据映射而识别所述数据节点中的与所述投标计数器中的最高投标计数器和所述元数据映射中的适当的元数据映射相关联的数据节点;以及向所述数据节点发送所述请求。
3.一般而言,在一方面,本发明涉及一种用于访问数据集群的数据节点的系统。所述系统包括:处理器;以及数据访问网关(dag),所述dag在由所述处理器执行时执行方法。所述方法包括:通过所述dag从主机获得请求;以及响应于所述请求,从所述数据节点获得投标计数器;从所述数据节点获得元数据映射;基于所述投标计数器和所述元数据映射而识别所述数据节点中的与所述投标计数器中的最高投标计数器和所述元数据映射中的适当的元数据映射相关联的数据节点;以及向所述数据节点发送所述请求。
4.一般而言,在一方面,本发明涉及一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可读程序代码,所述计算机可读程序代码在由计算机处理器执行时使得所述计算机处理器能够执行用于访问数据集群的数据节点的方法。所述方法包括:通过数据访问网关(dag)从主机获得请求;以及响应于所述请求,从所述数据节点获得投标计数器;从所述数据节点获得元数据映射;基于所述投标计数器和所述元数据映射而识别所述数据节点中的与所述投标计数器中的最高投标计数器和所述元数据映射中的适当的元数据映射相关联的数据节点;以及向所述数据节点发送所述请求。
附图说明
5.图1a示出了根据本发明的一个或多个实施方案的系统的图。
6.图1b示出了根据本发明的一个或多个实施方案的不具有加速器池的数据集群的图。
7.图1c示出了根据本发明的一个或多个实施方案的具有加速器池的数据集群的图。
8.图1d示出了根据本发明的一个或多个实施方案的具有数据访问网关的数据节点的图。
9.图1e示出了根据本发明的一个或多个实施方案的不具有数据访问网关的数据节点的图。
10.图1f示出了根据本发明的一个或多个实施方案的永久性存储装置的图。
11.图2a示出了根据本发明的一个或多个实施方案的投标计数器储库的图。
12.图2b示出了根据本发明的一个或多个实施方案的元数据映射储库的图。
13.图3a至图3b示出了根据本发明的一个或多个实施方案的用于执行数据访问网关操作的方法的流程图。
14.图3c示出了根据本发明的一个或多个实施方案的用于利用投标计数器执行数据访问网关操作的方法的流程图。
15.图3d示出了根据本发明的一个或多个实施方案的用于利用投标计数器和元数据映射执行数据访问网关操作的方法的流程图。
16.图3e示出了根据本发明的一个或多个实施方案的用于在包括加速器池的数据集群中执行数据访问网关操作的方法的流程图。
17.图3f示出了根据本发明的一个或多个实施方案的用于确定在数据集群中何处实现数据访问网关操作的方法的流程图。
18.图4a示出了根据本发明的一个或多个实施方案的第一实施例的图。
19.图4b示出了根据本发明的一个或多个实施方案的第二实施例的图。
20.图4c示出了根据本发明的一个或多个实施方案的第三实施例的图。
21.图4d示出了根据本发明的一个或多个实施方案的第四实施例的图。
22.图4e示出了根据本发明的一个或多个实施方案的第五实施例的图。
23.图4f示出了根据本发明的一个或多个实施方案的第六实施例的图。
24.图4g示出了根据本发明的一个或多个实施方案的第七实施例的图。
25.图5示出了根据本发明的一个或多个实施方案的计算装置的图。
具体实施方式
26.现将参考附图描述具体实施方案。在以下描述中,众多细节被阐述为本发明的实例。本领域技术人员将理解,本发明的一个或多个实施方案可以在没有这些具体细节的情况下实践,并且在不脱离本发明的范围的情况下,众多改变或修改可能是可行的。为了避免使描述模糊,省略了对于本领域的普通技术人员而言已知的某些细节。
27.在对附图的以下描述中,相对于某一附图描述的任何部件在本发明的各种实施方案中可以等同于相对于任何其他附图描述的一个或多个类似命名的部件。为了简洁起见,相对于每个附图将不再重复对这些部件的描述。因此,每个附图的部件的每一个实施方案以引用的方式并入,并且被假设为任选地存在于具有一个或多个类似命名的部件的每一个其他附图内。另外地,根据本发明的各种实施方案,对某一附图的部件的任何描述应被解释为是任选的实施方案,所述任选的实施方案可以加上、联合或取代相对于任何其他附图中的对应的类似命名的部件描述的实施方案来实现。
28.贯穿本技术,附图的元件可以被标记为a至n。如本文所使用,前述标记意味着元件可以包括任何数量的物件并且不需要元件包括与标记为a至n的任何其他物件相同数量的元件。例如,数据结构可以包括标记为a的第一元件以及标记为n的第二元件。该标记准则意味着数据结构可以包括任何数量的元件。也标记为a至n的第二数据结构也可以包括任何数量的元件。第一数据结构的元件的数量和第二数据结构的元件的数量可以是相同或不同的。
29.一般而言,本发明的实施方案涉及一种用于访问数据集群中的数据的方法和系统。更具体地,本发明的实施方案涉及识别系统的可用于通过数据访问网关(dag)操作服务于请求的数据节点(参见例如,图3d)。dag操作可以包括:基于分别指定可用于数据节点的计算资源的量以及存储在数据集群的数据节点中的数据的所获得的投标计数器和元数据映射,识别包括服务于请求所需的数据的可用的数据节点,并且选择与最高投标计数器相关联的所识别的数据节点来服务于请求。dag操作以及投标计数器和元数据映射的使用可以用于提高访问存储在数据集群中的数据的计算效率。
30.图1a示出了根据本发明的一个或多个实施方案的系统的图。所述系统包括主机(100)和数据集群(110)。主机(100)经由有线和/或无线连接的任何组合可操作地连接到数据集群(110)。
31.在本发明的一个或多个实施方案中,主机(100)利用数据集群(110)来存储数据。在不脱离本发明的情况下,所存储的数据可以是数据库、文件、应用程序和/或其他类型的数据的备份。在利用数据集群(110)时,主机(100)还可以访问存储在数据集群(110)中的数据。主机(100)可以向数据集群(110)发送请求以访问数据集群(110)内的数据。请求可以包括写入请求、读取请求、更新请求、信息请求以及删除请求。在不脱离本发明的情况下,请求可以包括其他和/或另外的请求。
32.读取请求可以是指由主机(100)向数据集群(110)发送来访问存储在数据集群(110)中的数据的请求。更新请求可以是指由主机(100)向数据集群(110)发送来更新和/或修改存储在数据集群(110)中的数据的请求。写入请求可以是指由主机(100)向数据集群(110)发送来将数据写入和/或存储在数据集群(110)中的请求。信息请求可以是指由主机(100)向数据管理器(110)发送来获得与存储在数据集群(110)中的数据相关联的元数据的请求。删除请求可以是指由主机(100)向数据集群(110)发送来删除存储在数据集群(110)中的数据的请求。在不脱离本发明的情况下,前述请求可以是指由主机(100)向数据集群(110)发送的与存储在数据集群(110)上的数据或者将写入数据集群(110)的数据相关联的其他和/或另外的类型的请求。
33.继续图1a的论述,在本发明的一个或多个实施方案中,主机(100)被实现为计算装置(参见例如图5)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或多个处理器执行时致使计算装置执行贯穿本技术描述的主机(100)的功能。
34.在本发明的一个或多个实施方案中,主机(100)被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的主机(100)的功能。
35.在本发明的一个或多个实施方案中,数据集群(110)存储由主机(100)生成的数据、元数据和/或数据备份。数据和/或备份可以是从主机获得的数据的去重复版本。数据集群可以经由纠删编码程序跨数据集群(110)中运行的数据节点存储去重复数据的部分。
36.如本文所使用,去重复是指仅存储尚未被存储在永久性存储体中的文件部分(也被称为文件片段或片段)的方法。例如,在没有经过去重复的情况下存储大文件的多个版本(每个版本之间仅具有最小差异)时,存储每个版本将需要永久性存储体的近似相同量的存
储空间。相比之下,在经过去重复的情况下存储大文件的多个版本时,所存储的多个版本中只有第一版本会需要大量存储。一旦第一版本被存储在永久性存储体中,随后存储的大文件的后续版本就会在存储在永久性存储体中之前进行去重复,从而导致在与存储第一存储版本所需的永久性存储体的存储空间量相比较时存储后续存储版本需要永久性存储体的少得多的存储空间。
37.在本发明的一个或多个实施方案中,纠删编码程序包括将所获得的数据分为多个部分(被称为数据块)。每个数据块可以包括与所获得的数据相关联的任何数量的数据片段。之后可以将单独的数据块组合(或以其他方式分组)为数据切片(也被称为独立磁盘冗余阵列(raid)切片)。然后针对前述切片中的每一者计算一个或多个奇偶校验值。奇偶校验值的数值可以基于被用作纠删编码程序的一部分的纠删编码算法而变化。之后可以跨数据集群中的不同的数据节点存储数据切片块。可以使用数据切片中的其他块来重建数据切片内的任何块。纠删编码算法的非限制性实例是raid-3、raid-4、raid-5以及raid-6。可以在不脱离本发明的情况下使用其他纠删编码算法。
38.继续图1a的论述,数据集群(110)可以包括存在于数据节点内的各自存储任何数量的数据部分的永久性存储装置。数据部分可以通过其他永久性存储装置、数据节点、数据节点获得,或者从主机(100)获得。关于有关数据集群(110)的另外的细节,请参见例如图1b。
39.图1b示出了根据本发明的一个或多个实施方案的不具有加速器池的数据集群的图。数据集群(110a)可以是上文论述的数据集群(110,图1a)的实施方案。数据集群(110a)可以包括数据处理器(120)和任何数量的数据节点(130a、130b、130n)。数据集群(110a)的部件可以经由有线和/或无线连接的任何组合可操作地连接。下文论述了前述部件中的每一者。
40.在本发明的一个或多个实施方案中,数据处理器(120)是包括以下功能的装置(物理或逻辑):确定是否执行各种dag操作并且如果为是,则在数据集群中何处执行dag操作。dag操作可以包括使用发现操作、投标计数器操作以及元数据映射操作来选择数据节点,例如(130a)以服务于请求。另外地,在本发明的一个或多个实施方案中,数据处理器(120)获得系统元数据(122)(下文论述)并且使用系统元数据(122)来确定是否执行dag操作。数据处理器(120)可以经由图3f所示的方法确定在何处执行dag操作。
41.在本发明的一个或多个实施方案中,数据处理器(120)被实现为存储在数据节点(例如,130a、130b、130n)的永久性存储装置上的计算机指令,例如计算机代码,所述计算机指令在由数据节点(例如,130a、130b、130n)的处理器执行时致使数据节点(例如,130a、130b、130n)提供贯穿本技术描述的数据处理器(120)的前述功能和/或图3f所示的方法的全部或其一部分。
42.在本发明的一个或多个实施方案中,数据处理器(120)被实现为计算装置(参见例如图5),操作性地连接到数据集群中的数据节点(例如,130a、130b、130n)(但是与所述数据节点分开)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或
多个处理器执行时致使计算装置执行贯穿本技术描述的数据处理器(120)的功能和/或图3f所示的方法的全部或其一部分。
43.在本发明的一个或多个实施方案中,数据处理器(120)被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的数据处理器(120)的功能和/或图3f所示的方法的全部或其一部分。
44.在本发明的一个或多个实施方案中,系统元数据(122)可以是一个或多个数据结构,所述一个或多个数据结构可以包括与数据集群(110a)的不包括数据处理器(120)的每个部件相关联并从所述每个部件获得的元数据。系统元数据可以包括数据集群的每个部件的计算能力信息和在先性能信息。在不脱离本发明的情况下,系统元数据(122)可以包括有关数据集群(110a)中的每个部件的其他和/或另外的信息。下文论述了计算能力信息和在先性能信息。
45.计算能力信息可以指示主机是否具有必要的计算资源来执行各种dag操作。计算能力信息可以包括例如数据集群(110a)的每个部件的底层硬件以及底层硬件的处理能力。在不脱离本发明的情况下,计算能力信息可以包括指示数据集群(110a)的部件是否能够执行各种dag操作的其他和/或另外的信息。
46.在先性能信息可以包括有关由数据集群(110a)的部件执行的过去dag操作和请求的信息。在先性能信息可以包括例如与先前的dag操作和请求相关联的时延、吞吐量以及计算开销。在不脱离本发明的情况下,在先性能信息可以包括与在先操作的执行相关联的其他和/或另外的信息。
47.在本发明的一个或多个实施方案中,数据节点(130a、130b、130n)存储数据块和/或奇偶校验块。数据节点(130a、130b、130n)可以包括可以用于存储数据块和奇偶校验块的永久性存储体。数据节点(130a、130b、130n)还可以服务于主机(100)的请求。数据节点(130a、130b、130n)另外可以包括生成发现元数据、投标计数器以及元数据映射并将它们提供到dag(140)的功能。数据节点(130a、130b、130n)还可以生成上文论述的系统元数据(122)并且将所述系统元数据提供到数据处理器(120)。数据节点(130a、130b、130n)另外可以包括执行dag操作的功能(如果被数据处理器(120)选择来完成所述操作的话)。关于有关dag操作的执行的更多信息,请参考图3a至图3e。在不脱离本发明的情况下,数据节点(130a、130b、130n)可以包括其他和/或另外的功能。
48.在本发明的一个或多个实施方案中,每个数据节点(130a、130b、130n)被实现为计算装置(参见例如图5)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或多个处理器执行时致使计算装置执行贯穿本技术描述的数据节点(130a、130b、130n)的功能。
49.在本发明的一个或多个实施方案中,数据节点(130a、130b、130n)中的每一者被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的数据节点(130a、130b、130n)的功能。关于有关数据节点(130a、130b、130n)的另外的细节,请参见例如图1d至图1e。
50.图1c示出了根据本发明的一个或多个实施方案的具有加速器池的数据集群(110b)的图。数据集群(110b)可以是上文论述的数据集群(110,图1a)的实施方案。数据集群(110b)可以包括数据处理器(120)、加速器池(150)以及非加速器池(160)。加速器池(130)可以包括数据访问网关(dag)(152)和任何数量的数据节点(154a、154b)。类似地,非加速器池(160)包括任何数量的数据节点(162c、162d)。数据集群(120)的部件可以经由有线和/或无线连接的任何组合可操作地连接。下文论述了前述部件中的每一者。
51.在本发明的一个或多个实施方案中,数据处理器(120)是包括以下功能的装置(物理或逻辑):确定是否执行各种dag操作并且如果为是,则在数据集群中何处执行dag操作。dag操作可以包括发现操作、投标计数器操作以及元数据映射操作。另外地,在本发明的一个或多个实施方案中,数据处理器(120)获得系统元数据(122)(下文论述)并且使用系统元数据(122)来确定是否执行dag操作。数据处理器(120)可以经由图3f所示的方法确定在何处执行dag操作。
52.在本发明的一个或多个实施方案中,数据处理器(120)被实现为存储在数据节点(例如,154a、154b、162c、162d)的永久性存储装置上的计算机指令,例如计算机代码,所述计算机指令在由数据节点(例如,154a、154b、162c、162d)的处理器执行时致使数据节点(例如,154a、154b、162c、162d)提供贯穿本技术描述的数据处理器(120)的前述功能和/或图3f所示的方法的全部或其一部分。
53.在本发明的一个或多个实施方案中,数据处理器(120)被实现为计算装置(参见例如图5),操作性地连接到数据集群中的数据节点(例如,154a、154b、162c、162d)(但是与所述数据节点分开)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或多个处理器执行时致使计算装置执行贯穿本技术描述的数据处理器(120)的功能和/或图3f所示的方法的全部或其一部分。
54.在本发明的一个或多个实施方案中,数据处理器(120)被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的数据处理器(120)的功能和/或图3f所示的方法的全部或其一部分。
55.在本发明的一个或多个实施方案中,系统元数据(122)可以是一个或多个数据结构,所述一个或多个数据结构可以包括与数据集群(110b)的不包括数据处理器(120)的每个部件相关联并从所述每个部件获得的元数据。系统元数据可以包括数据集群的每个部件的计算能力信息和在先性能信息。在不脱离本发明的情况下,系统元数据(122)可以包括有关数据集群(110b)中的每个部件的其他和/或另外的信息。下文论述了计算能力信息和在先性能信息。
56.计算能力信息可以指示主机是否具有必要的计算资源来执行各种dag操作。计算能力信息可以包括例如数据集群(110b)的每个部件的底层硬件以及底层硬件的处理能力。在不脱离本发明的情况下,计算能力信息可以包括指示数据集群(110b)的部件是否能够执行各种dag操作的其他和/或另外的信息。
57.在先性能信息可以包括有关由数据集群(110b)的部件执行的过去dag操作和请求
的信息。在先性能信息可以包括例如与先前的dag操作和请求相关联的时延、吞吐量以及计算开销。在不脱离本发明的情况下,在先性能信息可以包括与在先操作的执行相关联的其他和/或另外的信息。
58.在本发明的一个或多个实施方案中,dag(152)是包括以下功能的装置:确定数据集群(110b)的数据节点(例如,154a、154b、162c、162d)来服务于(或处理)来自主机(例如,100,图1a)的请求。dag(152)可以执行如由数据处理器(120)所确定的dag操作的任何组合。如上所述,dag操作可以包括发现操作、投标计数器操作以及元数据映射操作。由dag(152)执行的dag操作可以确定由某一数据节点使用从数据集群(110b)的每个数据节点(例如,154a、154b、162c、162d)获得的发现元数据、投标计数器和/或元数据映射(下文论述)来服务于请求。关于有关dag操作的执行的另外的信息,请参考图3a至图3e。在不脱离本发明的情况下,dag(152)可以包括其他和/或另外的功能。
59.在本发明的一个或多个实施方案中,dag(152)被实现为存储在永久性存储体上的计算机指令,例如计算机代码,所述计算机指令在由加速器池(150)的数据节点(例如,154a、154b)的处理器执行时致使数据节点提供贯穿本技术描述的dag(152)的前述功能和/或图3a至图3e所示的方法的全部或其一部分。
60.在本发明的一个或多个实施方案中,dag(152)被实现为计算装置(参见例如图5)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或多个处理器执行时致使计算装置执行贯穿本技术描述的dag(152)的功能和/或图3a至图3e所示的方法的全部或其一部分。
61.在本发明的一个或多个实施方案中,dag(152)被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的dag(152)的功能和/或图3a至图3e所示的方法的全部或其一部分。
62.继续图1c的论述,数据集群(110b)中的不同的数据节点可以包括不同数量和/或类型的计算资源,例如提供处理资源的处理器、提供存储器资源的存储器、提供存储资源的存储体、提供通信资源的通信器。因此,所述系统可以包括多样化的节点群体。
63.多样化的节点群体可以在逻辑上分为:加速器池(150),所述加速器池包括具有比其他节点更多的计算资源的节点,例如高性能节点(154a、154b);以及非加速器池(160),所述非加速器池包括具有比加速器池(150)中的节点更少的计算资源的节点,例如低性能节点(162c、162d)。例如,加速器池(150)的节点可以包括提供非常高的存储带宽、低时延以及每秒高输入-输出(iops)的企业级固态存储资源。相比之下,非加速器池(160)的节点可以包括提供较低存储性能的硬盘驱动器。与加速器池(150)的数据节点相关联的投标计数器通常可能是更高的,并且由于加速器池(150)中的数据节点的提高的性能而对所述投标计数器给予比与非加速器池(160)的数据节点相关联的投标计数器更多的关注。虽然在图1c中被示出为分为两个组,但是在不脱离本发明的情况下,可以基于每个节点的相对性能等级而将节点分为任何数量的分组。
64.在本发明的一个或多个实施方案中,数据节点(154a、154b、162c、162d)存储数据
块和/或奇偶校验块。数据节点(154a、154b、162c、162d)可以包括可以用于存储数据块和奇偶校验块的永久性存储体。数据节点(154a、154b、162c、162d)还可以服务于主机(100)的请求。数据节点(154a、154b、162c、162d)另外可以包括生成发现元数据、投标计数器以及元数据映射并将它们提供到dag(152)的功能。数据节点(154a、154b、162c、162d)还可以生成上文论述的系统元数据(122)并且将所述系统元数据提供到数据处理器(120)。数据节点(154a、154b、162c、162d)另外可以包括执行dag操作的功能(如果被数据处理器(120)选择来完成所述操作的话)。关于有关dag操作的执行的更多信息,请参考图3a至图3e。在不脱离本发明的情况下,数据节点(154a、154b、162c、162d)可以包括其他和/或另外的功能。
65.在本发明的一个或多个实施方案中,每个数据节点(154a、154b、162c、162d)被实现为计算装置(参见例如图5)。计算装置可以是例如膝上型计算机、台式计算机、服务器、分布式计算系统、或云资源(例如,经由有线或无线连接可访问的第三方存储系统)。计算装置可以包括一个或多个处理器、存储器(例如,随机存取存储器)以及永久性存储体(例如,盘驱动器、固态驱动器等)。计算装置可以包括存储在永久性存储体上的指令,所述指令在由计算装置的一个或多个处理器执行时致使计算装置执行贯穿本技术描述的数据节点(154a、154b、162c、162d)的功能和/或图3a至图3f所示的方法的全部或其一部分。
66.在本发明的一个或多个实施方案中,数据节点(154a、154b、162c、162d)被实现为逻辑装置。逻辑装置可以利用任何数量的计算装置的计算资源并且由此提供贯穿本技术描述的数据节点(154a、154b、162c、162d)的功能和/或图3a至图3f所示的方法的全部或其一部分。
67.图1d示出了根据本发明的一个或多个实施方案的具有数据访问网关(dag)的数据节点的图。数据节点(130a)可以是上文论述的数据节点(例如,130a、130b、130n,图1b;154a、154b、162c、162d,图1c)的实施方案。数据节点(130a)可以包括如例如由数据处理器(例如,120,图1b)所确定的dag(140)。数据节点(130a)还可以包括处理器(134)、存储器(136)以及一个或多个永久性存储装置(138a、138n)。数据节点的部件可以经由有线和/或无线连接的任何组合可操作地连接。下文论述了前述部件中的每一者。
68.在本发明的一个或多个实施方案中,dag(140)是包括以下功能的装置(物理或逻辑):确定数据集群(110b)的数据节点(例如,154a、154b、162c、162d)来服务于来自主机(例如,100,图1a)的请求。dag(140)可以是上文论述的dag(140,图1b;152,图1c)的实施方案。dag可以选择数据节点以经由dag操作来服务于来自主机的请求。dag操作可以包括发现操作、投标计数器操作和/或元数据映射操作。为了执行前述操作,dag(140)可以使用存储在发现元数据储库(142)、投标计数器储库(144)和/或元数据映射储库(146)中的数据结构。下文论述了这些部件中的每一者。关于有关dag(140)的另外的信息,请参考图1b至图1c。
69.在本发明的一个或多个实施方案中,发现元数据储库(142)包括一个或多个数据结构,所述一个或多个数据结构包括发现元数据。发现元数据可以包括与数据集群(例如,110a)的可用于服务于从主机(例如,100,图1a)获得的请求的数据节点(例如,130a、130b、130n,图1b)相关联的数据节点标识符的一个或多个列表。数据节点标识符可以由dag(140)使用来区分数据集群的特定数据节点。数据节点标识符可以是与数据集群的数据节点相关联的唯一全局位串或字符串。
70.发现元数据储库(142)还可以包括与每个数据节点(例如,130a、130b、130n,图1b)
相关联的重试计数和重试限制(未示出)。重试计数可以是数字。重试计数可以指定已在数据节点(例如,130a、130b、130n,图1b)上重试请求的次数。dag(140)可以在数据节点(例如,130a、130b、130n,图1b)上重试请求时使重试计数递增。dag(140)可以在由数据节点(例如,130a、130b、130n,图1b)服务于请求和/或获得新的请求时重置重试计数。重试限制可以是数字。重试限制可以指定针对某一数据节点(例如,130a、130b、130n,图1b)可以重试请求的最大允许次数。
71.dag(140)可以基于从数据节点(例如,130a、130b、130n,图1b)新获得的发现元数据(142)而更新发现元数据储库(142)。dag(140)可以使用发现元数据储库(142)的发现元数据来确定数据集群(例如,110a,图1b)中哪个数据节点(例如,130a、130b、130n)可用于服务于从主机(100,图1a)获得的请求。在不脱离本发明的情况下,发现元数据储库(142)可以包括其他和/或另外的信息,并且可以用于其他和/或另外的目的。
72.在本发明的一个或多个实施方案中,投标计数器储库(144)可以包括一个或多个数据结构,所述一个或多个数据结构包括投标计数器。投标计数器可以是可用于数据集群(例如,110a,图1b)的数据节点(例如,130a、130b、130n,图1b)的计算网络和/或存储资源的数字表示。投标计数器中的每一者可以与某一数据节点(例如,130a、130b、130n,图1b)相关联。与高投标计数器相关联的数据节点(例如,130a)可能可获得大量计算网络和存储资源,并且与具有低投标计数器的数据节点(例如,130b,图1b)相比较可能更适合于服务于从主机(例如,100,图1a)获得的请求。投标计数器中的每一者可以与某一时间点相关联。dag(140)可以使用投标计数器来基于投标计数器储库(144)的投标计数器而确定哪个数据节点(例如,130a、130b、130n,图1b)具有最多可用的计算网络和/或存储资源,以服务于从主机(100,图1a)获得的请求。在不脱离本发明的情况下,投标计数器储库(144)可以包括其他和/或另外的信息,并且可以用于其他和/或另外的目的。关于有关投标计数器储库(144)的另外的信息,请参考图2a。
73.在本发明的一个或多个实施方案中,元数据映射储库(144)可以包括一个或多个数据结构,所述一个或多个数据结构包括元数据映射。元数据映射可以包括与存储在数据集群(例如,110a,图1b)的数据节点(例如,130a、130b、130n,图1b)中的每一者中的数据相关联的元数据。元数据映射中的每一者可以与某一数据节点(例如,130a、130b、130n,图1b)相关联。元数据映射中的每一者可以由dag(140)基于新获得的元数据映射而进行更新。dag(140)可以使用元数据映射来确定包括服务于从主机(100,图1a)获得的请求所需的数据的数据节点(例如,130a、130b、130n,图1b)。在不脱离本发明的情况下,元数据映射储库(146)可以包括其他和/或另外的信息,并且可以用于其他和/或另外的目的。关于有关元数据映射储库(146)的另外的信息,请参考图2b。
74.虽然dag(140)的数据结构(例如,142、144、146)被示出为单独的数据结构并且已被论述为包括有限量的特定信息,但是在不脱离本发明的情况下,前述数据结构中的任一者可以被分为任何数量的数据结构,与任何数量的其他数据结构进行组合并且可以包括额外的、更少的和/或不同的信息。
75.另外地,虽然被示出为存储在dag(140)的存储体中,但是在不脱离本发明的情况下,前述数据结构中的任一者可以存储在不同的位置中(例如,在其他计算装置的永久性存储体中、在存储器而不是永久性存储体中,在存储器和永久性存储体的组合中等)和/或跨
越任何数量的计算装置。前述数据结构中的任一者可以使用例如列表、表格、链接列表、数据库和/或其他类型的数据结构来实现。
76.在本发明的一个或多个实施方案中,处理器(134)是处理数据并服务于请求的部件。处理器(134)可以是例如中央处理单元(cpu)。在不脱离本发明的情况下,处理器(134)可以是其他类型的处理器。处理器(134)可以服务于请求以存储数据和/或元数据,并且使用存储在存储器(136)、永久性存储装置(138a、138n)和/或其他数据节点(例如,130b、130n,图1b)中的数据来重建数据和/或元数据。在不脱离本发明的情况下,处理器(134)可以服务于其他请求。
77.在本发明的一个或多个实施方案中,数据节点(130a)包括存储器(136),所述存储器存储比永久性存储装置(138a、138n)更容易由处理器(134)访问的数据。存储器(136)可以是易失性存储体。易失性存储体可以是所存储的数据在存储体断电时会丢失的存储体。存储器(136)可以是例如随机存取存储器(ram)。在本发明的一个或多个实施方案中,服务于请求所需的数据块和/或奇偶校验块的拷贝存储在数据节点(130a)的存储器(136)中。
78.在本发明的一个或多个实施方案中,永久性存储装置(138a、138n)存储数据并且重建数据。数据可以是数据块和/或奇偶校验块。永久性存储装置(138a、138n)可以包括非易失性存储体(也被称为永久性存储体)。换句话说,存储在永久性存储装置(138a、138n)中的数据在永久性存储装置(138a、138n)断电时不会丢失或移除。关于有关永久性存储装置(138a、138n)的另外的细节,请参见例如图1e。
79.图1e示出了根据本发明的一个或多个实施方案的不具有数据访问网关(dag)的数据节点的图。数据节点(130a)可以是上文论述的数据节点(例如,130a、130b、130n,图1b;154a、154b、162c、162d,图1c)的实施方案。数据节点(130b)可能不包括如由数据处理器(例如,120,图1b)所确定的dag(例如,140,图1d)。数据节点(130a)还可以包括处理器(134)、存储器(136)以及一个或多个永久性存储装置(138a、138n)。数据节点的部件可以经由有线和/或无线连接的任何组合可操作地连接。下文论述了前述部件中的每一者。
80.在本发明的一个或多个实施方案中,处理器(134)是处理数据并服务于请求的部件。处理器(134)可以是例如中央处理单元(cpu)。在不脱离本发明的情况下,处理器(134)可以是其他类型的处理器。处理器(134)可以服务于请求以存储数据和/或元数据,并且使用存储在存储器(136)、永久性存储装置(138a、138n)和/或其他数据节点(例如,130b、130n,图1b)中的数据来重建数据和/或元数据。在不脱离本发明的情况下,处理器(134)可以服务于其他请求。
81.在本发明的一个或多个实施方案中,数据节点(130a)包括存储器(136),所述存储器存储比永久性存储装置(138b、138m)更容易由处理器(134)访问的数据。存储器(136)可以是易失性存储体。易失性存储体可以是所存储的数据在存储体断电时会丢失的存储体。存储器(136)可以是例如随机存取存储器(ram)。在本发明的一个或多个实施方案中,服务于请求所需的数据块和/或奇偶校验块的拷贝存储在数据节点(130a)的存储器(136)中。
82.在本发明的一个或多个实施方案中,永久性存储装置(138b、138m)存储数据并且重建数据。数据可以是数据块和/或奇偶校验块。永久性存储装置(138b、138m)可以包括非易失性存储体(也被称为永久性存储体)。换句话说,存储在永久性存储装置(138b、138m)中的数据在永久性存储装置(138b、138m)断电时不会丢失或移除。关于有关永久性存储装置
(138b、138m)的另外的细节,请参见例如图1f。
83.图1f示出了根据本发明的一个或多个实施方案的永久性存储装置(170)的图。永久性存储装置(170)可以是上文论述的永久性存储装置(例如,138a、138n、138b、138m)的实施方案。如上所述,永久性存储装置(170)存储并重建数据。数据可以是数据块(182a、182m)和奇偶校验块(184a、184p)。数据还可以包括投标计数器储库(186)和元数据映射储库(188)。永久性存储装置(170)可以包括处理器(172)、存储器(174)以及永久性存储体(180)。下文论述了这些部件中的每一者。
84.在本发明的一个或多个实施方案中,处理器(172)是处理数据并服务于请求的部件。处理器(172)可以是例如中央处理单元(cpu)。在不脱离本发明的情况下,处理器(172)可以是其他类型的处理器。处理器(172)可以服务于请求以存储数据,并且使用存储在永久性存储体(180)中或来自其他永久性存储装置(例如,138a、138n,图1d)的数据来重建数据。在不脱离本发明的情况下,处理器(172)可以服务于其他请求。
85.在本发明的一个或多个实施方案中,永久性存储装置(170)包括存储器(174),所述存储器存储比永久性存储体(180)更容易由处理器(172)访问的数据。存储器(174)可以是易失性存储体。易失性存储体可以是所存储的数据在存储体断电时会丢失的存储体。存储器(174)可以是例如随机存取存储器(ram)。在本发明的一个或多个实施方案中,永久性存储装置重建操作所需的数据块和/或奇偶校验块的拷贝存储在永久性存储装置(170)的存储器(174)中。
86.如上所述,永久性存储体(170)可以存储数据。存储在永久性存储体(170)中的数据可以包括数据块(182a、182m)和奇偶校验块(184a、184p)。永久性存储体(180)还可以存储投标计数器储库(186)和元数据映射储库(188)。下文论述了这些数据结构中的每一者。在不脱离本发明的情况下,永久性存储体(180)可以存储其他和/或另外的数据。
87.永久性存储体(180)可以使用物理存储装置和/或逻辑存储装置来实现。物理存储装置可以包括硬盘驱动器、固态盘驱动器、磁带驱动器和/或用于存储数据的任何其他物理存储介质的任何组合。
88.逻辑存储装置(例如,虚拟化存储体)可以利用任何数量的计算装置的任何数量的硬件存储资源来存储数据。例如,永久性存储体(160)可以利用硬盘驱动器、固态盘驱动器、磁带驱动器和/或任何数量的计算装置的任何其他物理存储介质的任何组合的部分。
89.在本发明的一个或多个实施方案中,数据块(182a、182m)是包括从主机获得的数据的一部分的数据结构。数据块(182a、182m)可以(但不是必需)由数据处理器进行去重复并且由永久性存储装置(170)从数据处理器获得。数据块(182a、182m)中的每一者可以由永久性存储装置(170)(或另一个永久性存储装置)使用来基于应用于其他数据块或奇偶校验块的纠删编码算法而重构另一个数据块或奇偶校验块。
90.在本发明的一个或多个实施方案中,奇偶校验块(184a、184p)是包括使用纠删编码算法生成的奇偶校验值的数据结构。奇偶校验值可以通过将纠删编码算法应用于存储在永久性存储装置(170)或其他数据节点中的一个或多个数据块来生成。奇偶校验块(184a、184p)中的每一者可以由永久性存储装置(170)(或另一个永久性存储装置)使用来基于应用于其他奇偶校验块或数据块的纠删编码算法而重构另一个奇偶校验块或数据块。
91.在本发明的一个或多个实施方案中,投标计数器储库(186)可以包括一个或多个
数据结构,所述一个或多个数据结构包括与包括永久性存储装置(170)的数据节点相关联的投标计数器。投标计数器可以是可用于数据集群(例如,110a,图1b)的包括永久性存储装置(170)的数据节点(例如,130a,图1b)的计算网络和/或存储资源的数字表示。投标计数器中的每一者可以与某一时间点相关联。投标计数器中的每一者可以包括与所述每一者相关联的数据节点标识符(未示出,上文论述)。数据节点标识符可以是dag(例如,140,图1b),所述dag可以使用投标计数器来确定包括永久性存储装置(170)的数据节点(例如,130a,图1b)是否将服务于来自主机(100,图1a)的请求。投标计数器储库(186)的投标计数器可以由包括永久性存储装置(170)的数据节点(例如,110a,图1b)生成并且发送到dag(例如,140,图1b)。在不脱离本发明的情况下,投标计数器储库(186)可以包括其他和/或另外的信息,并且可以用于其他和/或另外的目的。关于有关投标计数器储库(186)的投标计数器的另外的信息,请参考图2a。
92.在本发明的一个或多个实施方案中,元数据映射储库(188)可以包括一个或多个数据结构,所述一个或多个数据结构包括与包括永久性存储装置(170)的数据节点(例如,130a,图1b)相关联的元数据映射。元数据映射可以包括与存储在包括永久性存储装置(170)的数据节点(例如,130a,图1b)中的每一者中的数据相关联的元数据。元数据映射储库(188)可以由包括永久性存储装置(170)的数据节点(例如,130a,图1b)或其中的部件基于与包括永久性存储装置(170)的数据节点(例如,130a,图1b)相关联的新获得的元数据映射而进行更新。
93.元数据映射储库的元数据映射可以发送到dag(例如,140,图1b)。dag(例如,140,图1b)可以使用元数据映射来确定包括永久性存储装置(170)的数据节点(例如,130a,图1b)是否包括服务于从主机(100,图1a)获得的请求所需的数据。在不脱离本发明的情况下,元数据映射储库(188)可以包括其他和/或另外的信息,并且可以用于其他和/或另外的目的。关于有关元数据映射储库(188)的元数据映射的另外的信息,请参考图2b。
94.图2a示出了根据本发明的一个或多个实施方案的投标计数器储库(200)的图。投标计数器储库(200)可以是上文论述的投标计数器储库(144,图1d)的实施方案。如上所述,在不脱离本发明的情况下,投标计数器储库(200)包括任何数量的投标计数器(例如,202a、202b、202n)。下文论述了投标计数器储库(200)的前述部分中的每一者。
95.在本发明的一个或多个实施方案中,投标计数器(例如,投标计数器a(202a)、投标计数器b(202b)以及投标计数器n(202n))是一个或多个数据结构,所述一个或多个数据结构包括数据集群的在某一时间点可用的数据节点的计算网络和存储资源(下文论述)的数字表示。在本发明的一个实施方案中,投标计数器(例如,202a)可以包括整体地表示在某一时间点可用的数据节点(例如,130,图1b)的计算网络和存储资源的单个数值(未示出)。在本发明的另一个实施方案中,投标计数器(例如,202a)可以包括三个数值(未示出),其中每一个相应地表示在某一时间点可用的数据节点(例如,130,图1b)的计算网络和存储资源。
96.包括较高数值的投标计数器(例如,202a)可以与在与投标计数器(例如,202a)相关联的时间点处包括较高可用性的资源的数据节点(例如,130a,图1b)相关联。投标计数器(例如,202a、202b、202n)还可以包括指示生成投标计数器(例如,202a、202b、202n)的时间点的时间戳(未示出)。投标计数器中的每一者可以与某一时间点相关联。投标计数器中的每一者可以包括与所述每一者相关联的数据节点标识符(未示出,上文论述)。投标计数器
(例如,202a、202b、202n)可以由与所述投标计数器相关联的数据节点(例如,130a、130b、130n,图1b)生成,并且可以由dag(例如,140,图1b)使用来确定哪个数据节点(例如,130a,图1b)服务于从主机(100,图1a)获得的请求。在不脱离本发明的情况下,投标计数器(例如,202a、202b、202n)可以包括其他和/或另外的信息。
97.数据节点(例如,130a,图1b)的计算资源可以是指可由数据节点(例如,130a,图1b)用来执行计算并服务于请求的处理器和存储器的量或类型。在不脱离本发明的情况下,数据节点(例如,130a,图1b)的计算资源可以是指与数据节点(例如,130a,图1b)的计算能力相关联的其他和/或另外的信息。
98.数据节点(例如,130a,图1b)的网络资源可以是指可由数据节点(例如,130a,图1b)用来执行计算并服务于请求的网络卡和总网络带宽的量或类型。在不脱离本发明的情况下,数据节点(例如,130a,图1b)的网络资源可以是指与数据节点(例如,130a,图1b)的网络能力相关联的其他和/或另外的信息。
99.数据节点(例如,130a,图1b)的存储资源可以是指可由数据节点(例如,130a,图1b)用来执行计算并服务于请求的永久性存储体和总存储容量的量或类型。在不脱离本发明的情况下,数据节点(例如,130a,图1b)的存储资源可以是指与数据节点(例如,130a,图1b)的存储能力相关联的其他和/或另外的信息。
100.图2b示出了根据本发明的一个或多个实施方案的元数据映射储库(210)的图。元数据映射储库(210)可以是上文论述的元数据映射储库(146,图1d)的实施方案。如上所述,在不脱离本发明的情况下,元数据映射储库(210)包括任何数量的元数据映射(例如,212a、212b、212n)。下文论述了元数据映射储库(210)的前述部分中的每一者。
101.在本发明的一个或多个实施方案中,元数据映射(例如,元数据映射a(212a)、元数据映射b(212b)、元数据映射n(212n))可以是一个或多个数据结构,所述一个或多个数据结构包括块元数据(例如,块a元数据(214a)、块a元数据(214n)、块b元数据(214b)、块m元数据(214m))。每个元数据映射(例如,212a、212b、212n)可以与数据集群(例如,110a,图1b)的数据节点(例如,130a、130b、130n,图1b)相关联。元数据映射(例如,212a、212b、212n)中的每一者可以包括与所述每一者相关联的数据节点标识符(未示出,上文论述)。每个元数据映射(例如,212a、212b、212n)可以包括加速器池标签,所述加速器池标签可以指示元数据映射是与加速器池(150,图1c)的数据节点相关联还是与非加速器池(160,图1c)的数据节点相关联。每个块元数据(214a、214n、214b、214m)可以对应于存储在相关联的数据节点(例如,130a,图1b)中的数据块或奇偶校验块的元数据。每个块元数据(214a、214n、214b、214m)可以包括与块有关的信息,例如像可以用于区分存储在数据集群(例如,110a,图1b)中的块的唯一标识符(例如,指纹)、块的存储位置(例如,存储有块的永久性存储装置)以及标识与块相关联的数据切片的数据切片标识符(如果使用纠删编码程序生成的话)。在不脱离本发明的情况下,块元数据(214a、214n、214b、214m)可以包括有关存储在数据节点(例如,130a,图1b)中的块的其他和/或另外的信息。
102.元数据映射(例如,212a、212b、212n)可以由与元数据映射(例如,212a、212b、212n)相关联的数据节点(例如,130a、130b、130n,图1b)生成。元数据映射(例如,212a、212b、212n)可以由dag(例如,140,图1b)使用来确定数据节点(例如,130a,图1b)是否具有必要的数据来服务于请求。元数据映射储库的元数据映射(例如,212a、212b、212n)可以由
dag(例如,140,图1b)基于新获得的元数据映射而进行更新。在不脱离本发明的情况下,元数据映射储库(210)的元数据映射(例如,212a、212b、212n)可以包括其他和/或另外的信息。
103.图3a至图3b示出了根据本发明的一个或多个实施方案的用于执行数据访问网关操作的方法的流程图。图3a至图3b所示的方法可以由例如dag(140,图1b)执行。在不脱离本发明的情况下,图1b和图1c所示的数据集群(例如,110a、110b)的其他部件可以执行图3a至图3b的方法。虽然顺序地呈现并描述了流程图中的各种步骤,但是相关领域的普通技术人员将了解,步骤中的一些或全部可以不同的次序执行,可以进行组合或省略,并且可以并行地执行一些或所有步骤。
104.转到图3a,在步骤300中,从主机获得请求。在本发明的一个或多个实施方案中,主机向dag发送消息。消息可以包括将由数据集群的数据节点处理的请求。请求可以包括数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从主机获得请求。
105.在步骤302中,从数据集群中的每个数据节点获得发现元数据。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的发现元数据的请求。响应于获得请求,数据节点可以生成发现元数据。发现元数据可以指示数据集群的数据节点是否可用于服务于请求。数据节点可以向dag发送发现元数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得发现元数据。
106.在步骤304中,基于所获得的发现元数据而更新发现元数据储库。如上所述,所生成的发现元数据可以包括与可用于服务于请求的数据节点相关联的数据节点标识符。发现元数据储库可以包括与可用于服务于先前的请求的数据节点相关联的数据节点标识符的列表。dag可以通过以下方式来更新发现元数据储库:对发现元数据储库添加和/或删除数据节点标识符,并且基于所获得的发现元数据而更新与发现元数据储库中所包括的数据节点标识符相关联的时间戳。还可以将与所包括的数据节点标识符相关联的重试计数重置为零。在不脱离本发明的情况下,可以经由其他和/或另外的方法基于所获得的发现元数据而更新发现元数据储库。步骤302-304可以在步骤300之前执行和/或可以定期地执行来获得发现元数据。在此类情境下,步骤306可以在步骤300之后,而不在步骤304之后执行。
107.在步骤306中,基于发现元数据储库而识别数据节点。在本发明的一个或多个实施方案中,dag通过识别发现元数据储库中所包括的数据节点标识符来识别数据节点。在本发明的一个实施方案中,dag可以识别发现元数据储库中所包括的数据节点标识符的列表中的第一数据节点标识符。在本发明的另一个实施方案中,dag也可以识别发现元数据储库中所包括的数据节点标识符的列表中的随机数据节点标识符。与所识别的数据节点标识符相关联的数据节点可以是所识别的数据节点。在不脱离本发明的情况下,可以经由其他和/或另外的方法基于发现元数据储库而识别数据节点。
108.在步骤308中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
109.转到图3b,在步骤310中,确定数据节点是否能够服务于请求。在本发明的一个或多个实施方案中,数据节点在处理请求时发送确认。dag可以等待预定的时间量以从数据节点获得确认。如果dag等待预定的时间量并且没有从数据节点接收到确认,则dag可以确定数据节点无法服务于请求。如果dag在预定的时间量过去之前获得确认,则dag可以确定数据节点能够服务于请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法确定数据节点是否能够服务于请求。
110.在本发明的另一个实施方案中,所识别的数据节点可能是不可用的。所识别的数据节点可能会在生成发现元数据与获得请求之间的时间变得不可用。在不脱离本发明的情况下,所识别的数据节点可能会因为网络连接丢失、断电和/或另一个或另外的原因而变得不可用。如果所识别的数据节点不可用,则dag可以确定数据节点无法服务于请求。如果数据节点可用,则dag可以如上所述等待来自数据节点的确认以确定数据节点是否能够服务于请求。
111.如果确定数据节点能够服务于请求,则所述方法可以在步骤310之后结束。如果确定数据节点无法服务于请求,则所述方法可以前进到步骤312。
112.在步骤312中,对同一个数据节点重试请求并且在发现元数据中更新重试计数。dag可以通过向同一个数据节点重新发送请求来重试请求。dag也可以通过再次在预定时间内等待来自同一个数据节点的确认来重试请求。dag还可以通过使重试计数递增1而在发现元数据储库中更新与数据节点相关联的重试计数。在不脱离本发明的情况下,经由其他和/或另外的方法,可以重试请求并且可以更新重试计数。
113.在步骤314中,确定数据节点是否能够服务于请求。在本发明的一个或多个实施方案中,数据节点在处理请求时发送确认。dag可以等待预定的时间量以从数据节点获得确认。如果dag等待预定的时间量并且没有从数据节点接收到确认,则dag可以确定数据节点无法服务于请求。如果dag在预定的时间量过去之前获得确认,则dag可以确定数据节点能够服务于请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法确定数据节点是否能够服务于请求。
114.在本发明的另一个实施方案中,所识别的数据节点可能是不可用的。所识别的数据节点可能会在生成发现元数据与获得请求之间的时间变得不可用。在不脱离本发明的情况下,所识别的数据节点可能会因为网络连接丢失、断电和/或另一个或另外的原因而变得不可用。如果所识别的数据节点不可用,则dag可以确定数据节点无法服务于请求。如果数据节点可用,则dag可以如上所述等待来自数据节点的确认以确定数据节点是否能够服务于请求。
115.如果确定数据节点能够服务于请求,则所述方法可以在步骤314之后结束。如果确定数据节点无法服务于请求,则所述方法可以前进到步骤316。
116.在步骤316中,确定是否超过重试限制。在本发明的一个或多个实施方案中,dag将与数据节点相关联的重试计数同与数据节点相关联的重试限制进行比较。如果重试计数大于重试限制,则dag可以确定超过了重试限制。如果重试计数不大于重试限制,则dag可以确定没有超过重试限制。在不脱离本发明的情况下,dag可以经由其他和/或另外的方法确定是否超过重试限制。
117.如果确定没有超过重试限制,则所述方法可以前进到步骤312。如果确定超过了重
试限制,则所述方法可以前进到步骤318。
118.在步骤318中,基于发现元数据而对不同的数据节点重试请求。dag可以使用发现元数据储库来识别不同的数据节点。在本发明的一个实施方案中,dag可以通过随机地识别发现元数据储库中所包括的数据节点标识符的列表中的数据节点标识符来识别下一个数据节点,所述数据节点标识符与低于所述数据节点的重试限制的重试计数相关联。在本发明的另一个实施方案中,dag可以识别发现元数据储库中所包括的数据节点标识符的列表中的下一个数据节点标识符,所述下一个数据节点标识符与低于所述数据节点的重试限制的重试计数相关联。与所识别的数据节点标识符相关联的数据节点可以是所识别的数据节点。dag可以向所识别的数据节点发送请求的拷贝。在不脱离本发明的情况下,可以经由其他和/或另外的方法基于发现元数据储库而对不同的数据节点重试请求。所述方法可以在步骤318之后前进到步骤310。
119.图3c示出了根据本发明的一个或多个实施方案的用于利用投标计数器执行数据访问网关操作的方法的流程图。图3c所示的方法可以由例如dag(140,图1b)执行。在不脱离本发明的情况下,图1b和图1c所示的数据集群(例如,110a、110b)的其他部件可以执行图3c的方法。虽然顺序地呈现并描述了流程图中的各种步骤,但是相关领域的普通技术人员将了解,步骤中的一些或全部可以不同的次序执行,可以进行组合或省略,并且可以并行地执行一些或所有步骤。
120.在步骤320中,从主机获得请求。在本发明的一个或多个实施方案中,主机向dag发送消息。消息可以包括将由数据集群的数据节点处理的请求。请求可以包括数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从主机获得请求。
121.在步骤322中,从每个数据节点获得投标计数器。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的投标计数器的请求。响应于获得请求,数据节点可以生成投标计数器。投标计数器可以指示在生成投标计数器时可用于相关联的数据节点的计算网络和存储资源。数据节点可以向dag发送投标计数器。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得投标计数器。
122.在步骤324中,识别具有最高投标计数器的数据节点。如上所述,投标计数器可以是可用于数据节点的计算网络和存储资源的数字表示。dag可以将所获得的投标计数器彼此进行比较。可以将具有最高数字表示的投标计数器识别为最高投标计数器。dag可以使用与投标计数器相关联的数据节点标识符来识别与最高投标计数器相关联的数据节点。在不脱离本发明的情况下,可以经由其他和/或另外的方法识别具有最高投标计数器的数据节点。
123.在步骤326中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
124.在步骤328中,关于数据节点是否能够服务于请求进行确定。在本发明的一个或多个实施方案中,数据节点在处理请求时发送确认。dag可以等待预定的时间量以从数据节点
获得确认。如果dag等待预定的时间量并且没有从数据节点接收到确认,则dag可以确定数据节点无法服务于请求。如果dag在预定的时间量过去之前获得确认,则dag可以确定数据节点能够服务于请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法确定数据节点是否能够服务于请求。
125.在本发明的另一个实施方案中,所识别的数据节点可能是不可用的。所识别的数据节点可能会在生成投标计数器与获得请求之间的时间变得不可用。在不脱离本发明的情况下,所识别的数据节点可能会因为网络连接丢失、断电和/或另一个或另外的原因而变得不可用。如果所识别的数据节点不可用,则dag可以确定数据节点无法服务于请求。如果数据节点可用,则dag可以如上所述等待来自数据节点的确认以确定数据节点是否能够服务于请求。
126.如果确定数据节点能够服务于请求,则所述方法可以在步骤328之后结束。如果确定数据节点无法服务于请求,则所述方法可以前进到步骤330。
127.在步骤330中,识别具有第二最高投标计数器的数据节点。在本发明的一个或多个实施方案中,dag将低于与先前的数据节点相关联的投标计数器的所有投标计数器进行比较以识别第二最高投标计数器。在低于与先前的数据节点相关联的投标计数器的投标计数器中,将具有最高数字表示的投标计数器识别为第二最高投标计数器。dag可以使用与第二最高投标计数器相关联的数据节点标识符来识别与第二最高投标计数器相关联的数据节点。在不脱离本发明的情况下,可以经由其他和/或另外的方法识别具有第二最高投标计数器的数据节点。
128.在步骤332中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
129.在步骤334中,关于数据节点是否能够服务于请求进行确定。在本发明的一个或多个实施方案中,数据节点在处理请求时发送确认。dag可以等待预定的时间量以从数据节点获得确认。如果dag等待预定的时间量并且没有从数据节点接收到确认,则dag可以确定数据节点无法服务于请求。如果dag在预定的时间量过去之前获得确认,则dag可以确定数据节点能够服务于请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法确定数据节点是否能够服务于请求。
130.在本发明的另一个实施方案中,所识别的数据节点可能是不可用的。所识别的数据节点可能会在生成投标计数器与获得请求之间的时间变得不可用。在不脱离本发明的情况下,所识别的数据节点可能会因为网络连接丢失、断电和/或另一个或另外的原因而变得不可用。如果所识别的数据节点不可用,则dag可以确定数据节点无法服务于请求。如果数据节点可用,则dag可以如上所述等待来自数据节点的确认以确定数据节点是否能够服务于请求。
131.如果确定数据节点能够服务于请求,则所述方法可以在步骤334之后结束。如果确定数据节点无法服务于请求,则所述方法可以前进到步骤330。
132.图3d示出了根据本发明的一个或多个实施方案的用于利用投标计数器和元数据
映射执行数据访问网关操作的方法的流程图。图3d所示的方法可以由例如dag(140,图1b)执行。在不脱离本发明的情况下,图1b和图1c所示的数据集群(例如,110a、110b)的其他部件可以执行图3d的方法。虽然顺序地呈现并描述了流程图中的各种步骤,但是相关领域的普通技术人员将了解,步骤中的一些或全部可以不同的次序执行,可以进行组合或省略,并且可以并行地执行一些或所有步骤。
133.在步骤340中,从主机获得请求。在本发明的一个或多个实施方案中,主机向dag发送消息。消息可以包括将由数据集群的数据节点处理的请求。请求可以包括数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从主机获得请求。
134.在步骤342中,从每个数据节点获得投标计数器。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的投标计数器的请求。响应于获得请求,数据节点可以生成投标计数器。投标计数器可以指示在生成投标计数器时可用于相关联的数据节点的计算网络和存储资源。数据节点可以向dag发送投标计数器。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得投标计数器。
135.在步骤344中,从每个数据节点获得元数据映射。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的元数据映射的请求。响应于获得请求,数据节点可以生成元数据映射。元数据映射可以包括有关生成元数据映射时存储在数据节点中的数据的信息。数据节点可以向dag发送元数据映射。dag可以基于所获得的元数据映射而更新元数据映射储库。dag可以通过基于所获得的元数据映射而对元数据映射储库添加、更新和/或删除块元数据来更新元数据映射储库。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得元数据映射。
136.在步骤346中,基于所获得的投标计数器和元数据映射而识别服务于请求的数据节点。在本发明的一个实施方案中,对于与先前存储在数据集群的数据节点上的数据相关联的请求(例如,读取请求、更新请求、删除请求以及信息请求),dag可以使用元数据映射的元数据映射来识别包括服务于请求所需的数据的一个或多个数据节点。然后,在所识别的数据节点中,dag可以将所识别的数据节点中的具有最高投标计数器的数据节点识别为服务于请求的所识别的数据节点。
137.在本发明的另一个实施方案中,对于与先前存储在数据节点上的数据不相关联的请求(例如,写入请求),dag使用投标计数器而不是元数据映射来识别服务于请求的数据节点。dag可以将所获得的投标计数器彼此进行比较。可以将具有最高数字表示的投标计数器识别为最高投标计数器。dag可以使用与投标计数器相关联的数据节点标识符来识别与最高投标计数器相关联的数据节点。在不脱离本发明的情况下,可以经由其他和/或另外的方法基于所获得的投标计数器和元数据映射而识别服务于请求的数据节点。
138.在步骤348中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
139.所述方法可以在步骤348之后结束。
140.图3e示出了根据本发明的一个或多个实施方案的用于在包括加速器池的数据集群中执行数据访问网关操作的方法的流程图。图3e所示的方法可以由例如dag(140,图1b)执行。在不脱离本发明的情况下,图1b和图1c所示的数据集群(例如,110a、110b)的其他部件可以执行图3d的方法。虽然顺序地呈现并描述了流程图中的各种步骤,但是相关领域的普通技术人员将了解,步骤中的一些或全部可以不同的次序执行,可以进行组合或省略,并且可以并行地执行一些或所有步骤。
141.在步骤350中,从主机获得请求。在本发明的一个或多个实施方案中,主机向dag发送消息。消息可以包括将由数据集群的数据节点处理的请求。请求可以包括数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从主机获得请求。
142.在步骤352中,从每个数据节点获得投标计数器。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的投标计数器的请求。响应于获得请求,数据节点可以生成投标计数器。投标计数器可以指示在生成投标计数器时可用于相关联的数据节点的计算网络和存储资源。数据节点可以向dag发送投标计数器。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得投标计数器。
143.在步骤354中,从每个数据节点获得元数据映射。在本发明的一个或多个实施方案中,dag向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的元数据映射的请求。响应于获得请求,数据节点可以生成元数据映射。元数据映射可以包括有关生成元数据映射时存储在数据节点中的数据的信息。数据节点可以向dag发送元数据映射。dag可以基于所获得的元数据映射而更新元数据映射储库。dag可以通过基于所获得的元数据映射而对元数据映射储库添加、更新和/或删除块元数据来更新元数据映射储库。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得元数据映射。
144.在步骤356中,关于是否可以使用加速器池来服务于请求进行确定。在本发明的一个或多个实施方案中,dag通过使用元数据映射和投标计数器来确定是否可以使用加速器来服务于请求。如果请求与先前存储在数据集群上的数据相关联,则dag可以使用元数据映射来识别与先前存储的数据相关联的一个或多个数据节点。dag之后使用元数据映射储库中所包括的与一个或多个所识别的数据节点相关联的加速器池标签来识别与先前存储的数据相关联的一个或多个数据节点是否在加速器池内。如果设定了一个或多个标签,则与先前存储的数据相关联的一个或多个数据节点可以是在加速器池中。如果没有设定一个或多个标签,则数据节点可以是在非加速器池中。如果确定与先前存储的数据相关联的一个或多个数据节点在加速器池中,则dag可以确定可以使用加速器池来服务于请求。如果确定与先前存储的数据相关联的一个或多个数据节点不在加速器池中,则dag可以确定可能无法使用加速器池来服务于请求。
145.在本发明的另一个实施方案中,对于与先前存储在数据集群的数据节点中的数据不相关联的请求,dag可以使用投标计数器来确定是否可以使用加速器池来服务于请求。如上所述,投标计数器可以是可用于数据节点的计算网络和存储资源的数字表示。dag可以将所获得的投标计数器彼此进行比较。可以将具有最高数字表示的投标计数器识别为最高投
标计数器。dag可以使用与投标计数器相关联的数据节点标识符来识别与最高投标计数器相关联的数据节点。
146.dag可以检查元数据映射储库中的与具有最高投标计数器的数据节点相关联的加速器池标签。如果设定了加速器池标签,则与最高投标计数器相关联的数据节点可以是在加速器池中。如果没有设定加速器池标签,则数据节点可以是在非加速器池中。如果确定与投标计数器相关联的数据节点在加速器池中,则dag可以确定可以使用加速器池来服务于请求。如果确定与最高投标计数器相关联的数据节点不在加速器池中,则dag可以确定可能无法使用加速器池来服务于请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法确定是否能够使用加速器池来服务于请求。
147.在步骤358中,基于所获得的投标计数器和元数据映射而识别非加速器池的服务于请求的数据节点。在本发明的一个实施方案中,对于与先前存储在数据集群的非加速器池的数据节点上的数据相关联的请求(例如,读取请求、更新请求、删除请求以及信息请求),dag可以使用元数据映射的元数据映射来识别非加速器池的包括服务于请求所需的数据的一个或多个数据节点。然后,在非加速器池的所识别的数据节点中,dag可以将所识别的数据节点中的具有最高投标计数器的数据节点识别为服务于请求的所识别的数据节点。
148.在本发明的另一个实施方案中,对于与先前存储在非加速器池的数据节点上的数据不相关联的请求(例如,写入请求),dag使用投标计数器而不是元数据映射来识别非加速器池的服务于请求的数据节点。dag可以将所获得的投标计数器彼此进行比较。可以将具有最高数字表示的投标计数器识别为最高投标计数器。dag可以使用与投标计数器相关联的数据节点标识符来识别与最高投标计数器相关联的非加速器池的数据节点。在不脱离本发明的情况下,可以经由其他和/或另外的方法基于所获得的投标计数器和元数据映射而识别非加速器池的服务于请求的数据节点。
149.在步骤360中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
150.所述方法可以在步骤360之后结束。
151.在步骤362中,基于所获得的投标计数器和元数据映射而识别加速器池的服务于请求的数据节点。在本发明的一个实施方案中,对于与先前存储在数据集群的加速器池的数据节点上的数据相关联的请求(例如,读取请求、更新请求、删除请求以及信息请求),dag可以使用元数据映射的元数据映射来识别加速器池的包括服务于请求所需的数据的一个或多个数据节点。然后,在加速器池的所识别的数据节点中,dag可以将所识别的数据节点中的具有最高投标计数器的数据节点识别为服务于请求的所识别的数据节点。
152.在本发明的另一个实施方案中,对于与先前存储在加速器池的数据节点上的数据不相关联的请求(例如,写入请求),dag使用投标计数器而不是元数据映射来识别加速器池的服务于请求的数据节点。dag可以将所获得的投标计数器彼此进行比较。可以将具有最高数字表示的投标计数器识别为最高投标计数器。dag可以使用与投标计数器相关联的数据节点标识符来识别与最高投标计数器相关联的加速器池的数据节点。在不脱离本发明的情
况下,可以经由其他和/或另外的方法基于所获得的投标计数器和元数据映射而识别加速器池的服务于请求的数据节点。
153.在步骤364中,向所识别的数据节点发送请求。在本发明的一个或多个实施方案中,dag向所识别的数据节点发送消息。消息可以包括从主机获得的请求。请求可以是从主机获得的请求的拷贝。在所识别的数据节点无法执行请求并且需要dag向另一个数据节点发送请求的情况下,dag可以拷贝请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法向所识别的数据节点发送请求。
154.所述方法可以在步骤364之后结束。
155.图3f示出了根据本发明的一个或多个实施方案的用于确定在数据集群中何处实现数据访问网关操作的方法的流程图。图3f所示的方法可以由例如数据处理器(120,图1b)执行。在不脱离本发明的情况下,图1b和图1c所示的数据集群(例如,110a、110b)的其他部件可以执行图3f的方法。虽然顺序地呈现并描述了流程图中的各种步骤,但是相关领域的普通技术人员将了解,步骤中的一些或全部可以不同的次序执行,可以进行组合或省略,并且可以并行地执行一些或所有步骤。
156.在步骤370中,从主机获得请求。在本发明的一个或多个实施方案中,主机向数据处理器发送消息。消息可以包括将由数据集群的数据节点处理的请求。请求可以包括数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从主机获得请求。
157.在步骤372中,从每个数据节点获得系统元数据。在本发明的一个或多个实施方案中,数据处理器向数据集群的数据节点中的每一者发送消息。消息可以包括对来自每个数据节点的系统元数据的请求。响应于获得请求,数据节点可以生成和/或获得系统元数据。系统元数据可以指示在生成系统元数据时可用于相关联的数据节点的计算资源。数据节点可以向数据处理器发送系统元数据。在不脱离本发明的情况下,可以经由其他和/或另外的方法从数据集群中的每个数据节点获得系统元数据。
158.在步骤374中,基于系统元数据而选择一个或多个部件来执行dag操作。在本发明的一个或多个实施方案中,数据处理器使用所获得的系统元数据来选择部件以执行dag操作(例如,执行使得某一部件能够提供dag的功能的计算机指令)。如上所述,系统元数据可以包括系统中的每个部件的计算能力信息和在先性能信息。计算能力信息可以指示数据集群的一个或多个部件是否能够执行dag操作。dag操作可以包括发现操作。在先性能信息可以用于确定执行dag操作的一个或多个部件是否消耗过多的计算资源。
159.例如,数据集群的数据处理器可以检查系统元数据的计算能力信息,并且确定数据集群的加速器池的仅两个数据节点能够执行dag操作。数据集群的数据处理器之后可以检查两个数据节点的系统元数据的在先性能信息,并且确定由第一数据节点执行的最近过去的dag操作包括明显的时延,从而损害由第一数据节点执行的其他操作。基于在此情境下系统元数据中所包括的信息,数据处理器之后可以选择将dag操作移动到第二数据节点来执行dag操作。
160.在步骤376中,基于系统元数据而选择一个或多个部件来执行投标计数器操作。在本发明的一个或多个实施方案中,数据处理器使用所获得的系统元数据来选择部件以执行投标计数器操作(例如,计算投标计数器并向dag发送投标计数器)。如上所述,系统元数据可以包括系统中的每个部件的计算能力信息和在先性能信息。计算能力信息可以指示数据
集群的一个或多个部件是否能够执行投标计数器操作。在先性能信息可以用于确定执行投标计数器操作的一个或多个部件是否消耗过多的计算资源。
161.例如,数据集群的数据处理器可以检查系统元数据的计算能力信息,并且确定数据集群的所有数据节点都能够执行投标计数器操作。数据集群的数据处理器之后可以检查两个数据节点的系统元数据的在先性能信息,并且确定由数据节点执行的最近过去的投标计数器操作并未损害由数据节点以任何方式执行的其他操作。基于在此情境下系统元数据中所包括的信息,数据处理器之后可以选择在数据集群的所有数据节点上执行投标计数器操作。
162.在步骤378中,基于系统元数据而选择一个或多个部件来执行元数据映射操作。在本发明的一个或多个实施方案中,数据处理器使用所获得的系统元数据来选择部件以执行元数据映射操作(例如,生成元数据映射并向dag发送元数据映射)。如上所述,系统元数据可以包括系统中的每个部件的计算能力信息和在先性能信息。计算能力信息可以指示数据集群的一个或多个部件是否能够执行元数据映射操作。在先性能信息可以用于确定执行元数据映射操作的一个或多个部件是否消耗过多的计算资源。
163.例如,数据集群的数据处理器可以检查系统元数据的计算能力信息,并且确定数据集群的所有数据节点都能够执行元数据映射操作。数据集群的数据处理器之后可以检查两个数据节点的系统元数据的在先性能信息,并且确定由数据节点执行的最近过去的元数据映射操作并未损害由数据节点以任何方式执行的其他操作。基于在此情境下系统元数据中所包括的信息,数据处理器之后可以选择在数据集群的所有数据节点上执行元数据映射操作。
164.在步骤380中,使用所选择的部件来发起执行服务于请求的操作。数据处理器可以向数据集群的操作中所涉及以及服务于来自主机的请求所需的必要部件发送请求。响应于获得请求,数据集群的操作中所涉及以及服务于来自主机的请求所需的所选择的部件执行操作并且服务于来自主机的请求。在不脱离本发明的情况下,可以经由其他和/或另外的方法发起使用所选择的部件执行服务于请求的操作。
165.所述方法可以在步骤380之后结束。
166.实施例
167.以下部分描述了七个实施例。这些实施例并不意图限制本发明。在图4a至图4g中示出了所述实施例。转到第一实施例,考虑了数据处理器已选择数据节点来执行dag操作的情境。dag操作包括发现操作。
168.图4a示出了根据本发明的一个或多个实施方案的第一实施例的图。如上所述,dag(140)执行发现操作是在数据集群(110)的数据节点a(130)上执行。数据集群(110)还可以包括数据节点b(130b)、数据节点c(130c)以及数据节点d(130d)。在第一时间点,由dag(140)从主机(100)获得请求[1]。请求是读取请求。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送发现元数据请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成发现元数据,然后向dag(140)发送发现元数据[2]。dag(140)然后使用所获得的发现元数据来更新发现元数据储库[3]。dag(140)之后将数据节点b(130b)识别为可用于服务于请求的数据节点[4]。因此,dag(140)然后向数据节点b(130b)发送响应。在获得响应之后,确定数据节点b(130b)不包括与读取请求相关联的
数据并且向dag(140)通知所述数据节点无法服务于请求[5]。因此,dag(140)将数据节点c(130c)识别为可用于服务于请求的另一个数据节点[6]。dag(140)向数据节点c(130c)发送请求。在获得请求之后,数据节点c(130c)包括与读取请求相关联的数据并且服务于请求。因此,数据节点c(130c)向dag(140)发送与请求相关联的数据[7]。dag(140)之后向主机(100)发送与读取请求相关联的数据[8]。
[0169]
转到第二实施例,考虑了数据处理器已选择数据节点来执行dag操作的情境。dag操作包括投标计数器操作。在每个数据节点处计算投标计数器并且向dag发送所述投标计数器。
[0170]
图4b示出了根据本发明的一个或多个实施方案的第二实施例的图。如上所述,dag(140)执行投标计数器操作是在数据集群(110)的数据节点a(130)上执行。数据集群(110)还可以包括数据节点b(130b)、数据节点c(130c)以及数据节点d(130d)。在第一时间点,由dag(140)从主机(100)获得请求[1]。请求是读取请求。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送投标计数器请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成投标计数器,然后向dag(140)发送投标计数器[2]。dag(140)之后确定数据节点b(130b)与最高投标计数器相关联[3]。因此,dag(140)然后向数据节点b(130b)发送响应。在获得响应之后,确定数据节点b(130b)不包括与读取请求相关联的数据并且向dag(140)通知所述数据节点无法服务于请求[4]。因此,dag(140)将数据节点c(130c)识别为具有第二最高投标计数器的数据节点[5]。dag(140)之后向数据节点c(130c)发送请求。在获得请求之后,数据节点c(130c)包括与读取请求相关联的数据并且服务于请求。因此,数据节点c(130c)向dag(140)发送与请求相关联的数据[6]。dag(140)之后向主机(100)发送与读取请求相关联的数据[7]。
[0171]
转到第三实施例,考虑了数据处理器已选择数据节点来执行dag操作的情境。dag操作包括投标计数器操作和元数据映射操作。在每个数据节点处生成投标计数器和元数据映射并且向dag发送所述投标计数器和元数据映射。
[0172]
图4c示出了根据本发明的一个或多个实施方案的第三实施例的图。如上所述,dag(140)执行投标计数器操作和元数据映射操作是在数据集群(110)的数据节点a(130)上执行。数据集群(110)还可以包括数据节点b(130b)、数据节点c(130c)以及数据节点d(130d)。在第一时间点,由dag(140)从主机(100)获得请求[1]。请求是读取请求。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送投标计数器请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成投标计数器,然后向dag(140)发送投标计数器[2]。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送元数据映射请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成元数据映射,然后向dag(140)发送元数据映射[3]。
[0173]
dag(140)之后确定数据节点b(130b)与最高投标计数器相关联。然而,基于所获得的元数据映射,数据节点b(130b)并不包括所需的数据以服务于读取请求。dag(140)之后基于所获得的投标计数器和元数据映射而将数据节点c(130c)识别为与最高投标计数器相关联的也包括服务于读取请求所需的数据的数据节点[4]。如果请求是写入请求,则在此情境下,dag(140)可能会向数据节点b(130b)发送请求,因为数据节点(例如,130a、130b、130c)不需要基于先前存储的数据就能服务于写入请求。继续图4c中的实施例的论述,dag(140)
之后向数据节点c(130c)发送请求。在获得请求之后,数据节点c(130c)包括与读取请求相关联的数据并且服务于请求。因此,数据节点c(130c)向dag(140)发送与请求相关联的数据[5]。dag(140)之后向主机(100)发送与读取请求相关联的数据[6]。
[0174]
转到第四实施例,考虑了数据处理器已选择数据节点来执行dag操作的情境。dag操作包括投标计数器操作和元数据映射操作。在每个数据节点处生成投标计数器和元数据映射并且向dag发送所述投标计数器和元数据映射。
[0175]
图4d示出了根据本发明的一个或多个实施方案的第四实施例的图。如上所述,dag(140)执行投标计数器操作和元数据映射操作是在数据集群(110)的加速器池(122)的某一部件(例如,高性能处理器(未示出))上执行。数据集群(110)还可以包括在非加速器池(124)中的数据节点b(130b)、数据节点c(130c)以及数据节点d(130d)。在第一时间点,由dag(140)从主机(100)获得请求[1]。请求是读取请求。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送投标计数器请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成投标计数器,然后向dag(140)发送投标计数器[2]。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送元数据映射请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成元数据映射,然后向dag(140)发送元数据映射[3]。dag(140)之后基于投标计数器和元数据映射而确定加速器池(122)的数据节点a(130a)与最高投标计数器相关联并且包括与读取请求相关联的数据[4]。因此,dag(140)之后向数据节点a(130a)发送请求。在获得请求之后,数据节点a(130a)包括与读取请求相关联的数据并且服务于请求。因此,数据节点a(130a)向dag(140)发送与请求相关联的数据[5]。dag(140)之后向主机(100)发送与读取请求相关联的数据[6]。
[0176]
转到第五实施例,考虑了数据处理器已选择数据节点来执行dag操作的情境。dag操作包括投标计数器操作和元数据映射操作。在每个数据节点处生成投标计数器和元数据映射并且向dag发送所述投标计数器和元数据映射。
[0177]
图4e示出了根据本发明的一个或多个实施方案的第五实施例的图。如上所述,dag(140)执行投标计数器操作和元数据映射操作是在数据集群(110)的加速器池(122)的某一部件(例如,高性能处理器(未示出))上执行。数据集群(110)还可以包括在非加速器池(124)中的数据节点b(130b)、数据节点c(130c)以及数据节点d(130d)。在第一时间点,由dag(140)从主机(100)获得请求[1]。请求是读取请求。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送投标计数器请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成投标计数器,然后向dag(140)发送投标计数器[2]。dag(140)之后向数据集群(110)中的数据节点(130a、130b、130c、130d)中的每一者发送元数据映射请求。在获得请求之后,数据节点(130a、130b、130c、130d)中的每一者生成元数据映射,然后向dag(140)发送元数据映射[3]。dag(140)之后基于投标计数器和元数据映射而确定非加速器池(124)的数据节点b(130ab)与最高投标计数器相关联并且包括与读取请求相关联的数据[4]。因此,dag(140)然后向数据节点b(130b)发送请求。在获得请求之后,数据节点b(130b)包括与读取请求相关联的数据并且服务于请求。因此,数据节点b(130b)向dag(140)发送与请求相关联的数据[5]。dag(140)之后向主机(100)发送与读取请求相关联的数据[6]。
[0178]
转到第六实施例,考虑了数据处理器确定在数据集群中何处执行dag操作的情境。
[0179]
图4f示出了根据本发明的一个或多个实施方案的第六实施例的图。在第一时间点,由数据处理器(120)从主机(100)获得请求[1]。请求是读取请求。数据处理器(120)之后向数据集群(110)中的数据节点(130a、130b、130c)中的每一者发送系统元数据请求。在获得请求之后,数据节点(130a、130b、130c)中的每一者生成系统元数据,然后向数据处理器(120)发送系统元数据[2]。数据处理器(120)之后选择每个数据节点(130a、130b、130c)来执行进行dag操作的dag(140),执行投标计数器操作并维持投标计数器储库(142),并且执行元数据映射操作并维持元数据映射储库(144)[3]。数据处理器之后向数据节点(130a、130b、130c)发送请求,从而发起对请求的服务以及在所选择的数据节点处执行操作。在获得请求之后,由所选择的数据节点执行操作并且服务于请求,从而导致数据节点a(130a)向数据处理器(120)发送与读取请求相关联的数据[4]。数据处理器(120)之后向主机(100)发送与读取请求相关联的数据[5]。
[0180]
转到第七实施例,考虑了数据处理器确定在数据集群中何处执行dag操作的情境。
[0181]
图4g示出了根据本发明的一个或多个实施方案的第七实施例的图。在第一时间点,由数据处理器(120)从主机(100)获得请求[1]。请求是读取请求。数据处理器(120)之后向数据集群(110)的加速器池(122)的数据节点a(130a)以及数据集群(110)的非加速器池(124)的数据节点(130b、130c)中的每一者发送系统元数据请求。在获得请求之后,数据节点(130a、130b、130c)中的每一者生成系统元数据,然后向数据处理器(120)发送系统元数据[2]。数据处理器(120)之后选择加速器池(120)的数据节点a(130a)来执行进行dag操作的dag(140),并且执行元数据映射操作并维护元数据映射储库(144)。数据处理器还选择非加速器池(124)的数据节点b(130b)和数据节点c(130c)来执行投标计数器操作并且维持投标计数器储库(142)[3]。数据处理器之后向数据节点(130a、130b、130c)发送请求,从而发起对请求的服务以及在所选择的数据节点处执行操作。在获得请求之后,由所选择的数据节点执行操作并且服务于请求,从而导致数据节点a(130a)向数据处理器(120)发送与读取请求相关联的数据[4]。数据处理器(120)之后向主机(100)发送与读取请求相关联的数据[5]。
[0182]
最终实施例
[0183]
如上所述,本发明的实施方案可以使用计算装置来实现。图5示出了根据本发明的一个或多个实施方案的计算装置的图。计算装置(500)可以包括一个或多个计算机处理器(502)、非永久性存储体(504)(例如,易失性存储器,诸如随机存取存储器(ram)、高速缓存存储器)、永久性存储体(506)(例如,硬盘、光盘驱动器诸如压缩盘(cd)驱动器或者数字通用光盘(dvd)驱动器、快闪存储器等)、通信接口(512)(例如,蓝牙接口、红外接口、网络接口、光学接口等)、输入装置(510)、输出装置(508)以及众多其他元件(未示出)和功能。下文描述了这些部件中的每一者。
[0184]
在本发明的一个实施方案中,一个或多个计算机处理器(502)可以是用于处理指令的集成电路。例如,一个或多个计算机处理器可以是单核或多核或者微型核处理器。计算装置(500)还可以包括一个或多个输入装置(510),诸如触摸屏、键盘、鼠标、传声器、触控板、电子笔或任何其他类型的输入装置。另外,通信接口(512)可以包括用于将计算装置(500)连接到网络(未示出)(例如,局域网(lan)、广域网(wan)诸如互联网、移动网络或任何
其他类型的网络)和/或另一个装置,诸如另一个计算装置的集成电路。
[0185]
在本发明的一个实施方案中,计算装置(500)可以包括一个或多个输出装置(508),诸如屏幕(例如,液晶显示器(lcd)、等离子体显示器、触摸屏、阴极射线管(crt)监视器、投影仪、或其他显示装置)、打印机、外部存储体、或任何其他输出装置。输出装置中的一者或多者可以与一个或多个输入装置相同或不同。一个或多个输入装置和输出装置可以在本地或远程地连接到一个或多个计算机处理器(502)、非永久性存储体(504)以及永久性存储体(506)。存在许多不同类型的计算装置,并且前述一个或多个输入装置和输出装置可以采用其他形式。
[0186]
本发明的一个或多个实施方案可以使用由数据管理装置的一个或多个处理器执行的指令来实现。另外,此类指令可以对应于存储在一个或多个非暂时性计算机可读介质上的计算机可读指令。
[0187]
本发明的一个或多个实施方案可以改进一个或多个计算装置的操作。更具体地,本发明的实施方案涉及识别系统的可用于通过数据访问网关(dag)操作服务于请求的数据节点。dag操作可以包括:基于分别指定可用于数据节点的计算资源的量以及存储在数据集群的数据节点中的数据的所获得的投标计数器和元数据映射,识别包括服务于请求所需的数据的可用的数据节点,并且选择与最高投标计数器相关联的所识别的数据节点来服务于请求。dag操作以及投标计数器和元数据映射的使用可以用于提高访问存储在数据集群中的数据的计算效率。
[0188]
在传统的系统中,主机必须识别或随机地选择数据集群的数据节点来服务于请求。这可能会占用主机的计算资源,从而损害由主机执行的其他计算操作。本发明的实施方案通过由dag使用投标计数器和元数据映射来执行dag操作而提高访问存储在数据集群中的数据的计算效率。
[0189]
因此,本发明的实施方案可以解决低效地使用计算资源访问数据集群中的数据的问题。该问题的产生归因于存储有数据集群的数据的环境的技术性质。
[0190]
上文论述的问题应被理解为是由本文公开的发明的实施方案解决的问题的实例,并且本发明不应限制于解决相同/相似的问题。所公开的发明广泛适用于解决在本文论述的那些问题以外的一系列问题。
[0191]
虽然相对于有限数量的实施方案描述了本发明,但是受益于本公开的本领域技术人员将了解,在不脱离如本文所公开的技术的范围的情况下可以设想其他实施方案。因此,本发明的范围应仅由所附权利要求限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1