分布式系统中的元数据路由技术方案

技术编号:30349069 阅读:16 留言:0更新日期:2021-10-16 16:44
在一些示例中,第一计算设备可以从第二计算设备接收指示元数据数据库的分区的分区映射信息。第一计算设备能够与多个元数据节点通信,每个元数据节点基于对元数据数据库进行分区以将元数据数据库分布在多个元数据节点上来维护元数据数据库的一部分。第一计算设备可以至少基于关键字信息来确定向元数据数据库发送请求。第一计算设备可以基于分区映射信息来确定多个元数据节点中的第一元数据节点,该第一元数据节点被指示为维护元数据数据库的与关键字信息相对应的分区。第一计算设备可以基于分区映射信息向第一元数据节点发送执行数据库操作的请求。数据库操作的请求。数据库操作的请求。

【技术实现步骤摘要】
【国外来华专利技术】分布式系统中的元数据路由


[0001]本专利技术涉及数据存储的


技术介绍

[0002]多分区数据库可以通过在多个计算设备(也称为“节点”)之间划分元数据服务来提供可扩展性(scalability)。例如,可以通过在多个节点上复制元数据来提供元数据的高度可用性和容错性。然而,寻求访问元数据的客户端可能难以确定哪个节点负责客户端试图定位的元数据。在一些情况下,这可能会导致发现要访问的正确节点的过多的网络请求,这可能导致网络拥堵、限制系统可扩展性、影响系统重新配置的灵活性等。

技术实现思路

[0003]一些实现方式包括能够与多个元数据节点通信的第一计算设备,每个元数据节点基于对元数据数据库进行分区以将元数据数据库分布在多个元数据节点上来维护元数据数据库的一部分。在一些示例中,第一计算设备可以从第二计算设备接收指示元数据数据库的分区的分区映射信息。第一计算设备可以至少基于关键字信息来确定向元数据数据库发送请求。第一计算设备可以基于分区映射信息确定多个元数据节点中的第一元数据节点,该第一元数据节点被指示为维护元数据数据库的与关键字信息相对应的分区。第一计算设备可以基于分区映射信息向第一元数据节点发送执行数据库操作的请求。
附图说明
[0004]参照附图阐述详细描述。在附图中,附图标记的最左边的一个或多个数字表示该附图标记首次出现的图。在不同图中使用相同的附图标记表示相似或相同的项目或特征。
[0005]图1示出根据一些实现方式的能够存储数据和元数据的系统的示例架构。
[0006]图2是示出根据一些实现方式的系统的示例逻辑配置的框图。
[0007]图3是示出根据一些实现方式的元数据节点分区的示例配置的框图。
[0008]图4是示出根据一些实现方式的示例数据结构的框图。
[0009]图5是示出根据一些实现方式的多个元数据节点的示例配置的框图。
[0010]图6是示出根据一些实现方式的用于分区映射的示例数据结构的框图。
[0011]图7是示出根据一些实现方式的元数据节点的示例配置的框图。
[0012]图8是示出根据一些实现方式的系统的示例配置的框图。
[0013]图9是示出根据一些实现方式的关键字

空间

树(key

space

tree)数据结构的示例配置的框图。
[0014]图10是示出根据一些实现方式的用于路由元数据请求的示例处理的流程图。
[0015]图11示出可以用于实现本文描述的系统的至少一些功能的服务计算设备的选择示例组件。
具体实施方式
[0016]本文的一些实现方式涉及用于分布式计算机系统的技术和布置,其中分区信息不存储在系统中的单个组件或表中或不由其控制。在一些示例中,随着分区上线,可以向客户端应用程序提供诸如关键字空间和连接信息之类的分区信息。此外,客户端应用程序可以具有用于定位要联系的正确节点的多种后退机制,从而防止任何单点故障。另外,让客户端应用程序参与分区信息可以实现数据请求的最佳路由。
[0017]本文的一些示例包括能够路由对高度可用的可扩展分布式元数据数据库的请求的系统。这里的元数据数据库可以通过在单独的元数据节点上维护元数据的高度一致的副本来提供高度可用性。此外,元数据数据库通过对元数据分区并将元数据分布到不同的元数据节点上来提供可扩展性。每个分区可以有用作分区领导者的单个元数据节点。分区领导者可以负责服务于该特定分区的所有请求。此外,这里的方案优化了客户端应用程序为给定的请求找到分区领导者的能力。
[0018]如上所述,本文的示例通过在多个元数据节点上的分布式配置中存储元数据的高度一致的副本来使元数据高度可用。在一些情况下,分布式元数据数据库的一致性是使用筏共识(Raft consensus)算法来维护的。在筏算法中,一个节点可以被选举为领导者,并可以负责服务于所有的读取和写入操作。其他节点是追随者节点,它们接收所有事务的副本以使它们能够更新自己的元数据数据库信息。如果领导者节点发生故障,其中一个追随者节点可以被选举为领导者,并可以接管服务于读取和写入事务。这里的元数据系统的客户端节点能够发现哪个节点是筏领导者并将请求引导至该节点。如果分区的领导者应改变,则客户端自动被路由到新领导者。
[0019]在一些示例中,每个客户端可以维护分区信息的近缓存(near cache)。此外,该系统可以包括分布式缓存,该分布式缓存可以向客户端发布对分布式缓存的更新。此外,这里的节点可以向客户端提供指示数据所在位置的提示。另外,为了保持效率,与系统中节点的总数相比,分布式缓存的数量可能是小数量。另一方面,在一些示例中,近缓存可以被包括在系统中的每个客户端上以提高客户端的性能。
[0020]举个例子,假设系统从用户设备接收检索数据的用户请求。在这种情况下,用户请求可能首先被路由到近缓存。在稳定状态条件期间,客户端通常可以在近缓存中获得关于哪个节点能够服务于用户请求的正确答案。在这种情况下,客户端可以通过能够与正确节点进行直接通信来实现最佳效率。例如,当某个节点负责服务于数据的分区时,该节点可以向分布式缓存通知该节点所管理的数据的新路由信息。分布式缓存然后可以将此信息发布到客户端以存储在相应的近缓存中。
[0021]在一些情况下,接收用户请求的客户端的近缓存可能具有陈旧的映射。因此,当用户请求被路由到在陈旧的近缓存中指定的节点时,客户端可能会接收到来自该节点的失败响应。失败响应可以触发发现处理,并且还可以包括关于接下来要检查哪个节点以响应用户请求的提示。如果失败持续尝试的阈值次数,那么客户端可能会后退到单独地查询每个节点。由轮询所有节点产生的性能可能非常差,但允许客户端在最坏情况的情景下确定正确节点并满足用户请求。因此,这里的实现方式提供了具有分布式元数据数据库的系统,该系统可动态扩展和收缩,例如通过使分区能够随着数据增长或收缩而动态地增加和移除。该系统可以包括对系统元数据进行缓存的一组分层缓存,并使用反应性缓存更新机制来实
现在实现分布在多个物理和/或逻辑节点上的大型地理分布式数据库时的效率。
[0022]出于讨论的目的,在与用于使用分布式元数据数据库来管理数据的存储的云存储系统通信的一个或多个服务计算设备的环境中描述了一些示例实现方式。然而,这里的实现方式不限于所提供的特定示例,并且可以扩展到其他类型的计算系统架构、其他类型的存储环境、其他类型的用户配置、其他类型的数据等,根据本文的公开内容,这对于本领域技术人员来说是清楚的。
[0023]图1示出根据一些实现方式的能够存储数据和元数据的系统100的示例架构。系统100包括多个服务计算设备102,它们能够与至少一个网络存储系统104通信或以其他方式耦合,例如通过一个或多个网络106。此外,服务计算设备102能够通过一个或多个网络106与一个或多个用户计算设备108和一个或多个管理员设备110通信,管理员设备110可以是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,包括:能够与多个元数据节点通信的第一计算设备,每个元数据节点基于对元数据数据库进行分区以将所述元数据数据库分布在所述多个元数据节点上来维护所述元数据数据库的一部分,所述第一计算设备由可执行指令配置为执行操作,所述操作包括:由所述第一计算设备从第二计算设备接收指示所述元数据数据库的分区的分区映射信息;由所述第一计算设备确定针对第一元数据对所述元数据数据库执行数据库操作,其中所述第一元数据与关键字信息相关联;由所述第一计算设备访问所述分区映射信息以确定所述多个元数据节点中的第一元数据节点,所述第一元数据节点被指示为维护所述元数据数据库的与所述关键字信息相对应的分区;以及由所述第一计算设备基于所述分区映射信息,向所述第一元数据节点发送针对所述第一元数据执行所述数据库操作的请求。2.根据权利要求1所述的系统,其中,接收所述分区映射信息的操作还包括:向所述第二计算设备发送对所述分区映射信息的请求;响应于所述请求,从所述第二计算设备接收所述分区映射信息;以及将接收到的分区映射信息存储到所述第一计算设备的计算机可读介质上。3.根据权利要求2所述的系统,还包括:响应于在所述第二计算设备处的所述分区映射信息的改变,在所述第二计算设备处登记在所述第一计算设备处接收对所述分区映射信息的更新的请求;在所述第一计算设备处接收对所述分区映射信息的更新;以及由所述第一计算设备基于接收到的更新,更新存储在所述第一计算设备的所述计算机可读介质上的所述分区映射信息。4.根据权利要求1所述的系统,其中,对所述元数据数据库进行分区以将所述元数据数据库分布在所述多个元数据节点上包括将所述元数据数据库的第一分区分配给多个所述元数据节点,其中:所述第一元数据节点是被配置为基于在所述第一元数据节点处维护所述元数据数据库的所述第一分区来响应元数据数据库请求的领导者节点;并且至少第二元数据节点维护所述第一分区的副本并且被配置为从所述第一元数据节点接收对所述元数据数据库的所述第一分区的更新,并将所述更新应用于所述第一分区的所述副本。5.根据权利要求4所述的系统,其中,所述操作还包括:基于未接收到对向所述第一元数据节点发送的所述请求的响应,以及基于指示所述第二元数据节点维护所述第一分区的所述副本的所述分区映射信息,由所述第一计算设备向所述第二元数据节点发送执行所述数据库操作的请求。6.根据权利要求4所述的系统,其中,所述第二元数据节点代替所述第一元数据节点作为所述领导者节点,将所述第二元数据节点配置为响应访问所述元数据数据库的所述第一分区的元数据数据库访问请求,所述操作还包括:由所述第一计算设备响应于对与所述关键字信息相关联的所述第一元数据的请求,接
收所述第一元数据节点将不响应所述请求的指示,其中接收所述指示还包括接收所述第二元数据节点现在是被配置为响应对所述第一分区的元数据数据库请求的所述领导者节点的通知;以及由所述第一计算设备基于所述第二元数据节点现在是所述领导者节点的通知,向所述第二元数据节点发送对与所述关键字信息相关联的所述第一元数据的请求。7.根据权利要求4所述的系统,其中:所述第一元数据节点被配置为定期向所述第二元数据节点和至少一个其他元数据节点发送消息,所述其他元数据节点也维护所述元数据数据库的所述第一分区的副本;并且在所述第一节点在阈值时间段内未能发送所述消息之后,第二元数据节点基于来自所述至少一个其他节点的共识而代替所述第一元数据节点作为所述领导者节点,其中所述第二元数据节点被配置为响应访问所述元数据数据库的所述第一分区的元数据数据库访问请求。8.根据权利要求1所述的系统,其中,所述第一计算设备确定针对所述第一元数据对所述元数据数据库执行数据库操作是响应于接收到以下请求中的至少一...

【专利技术属性】
技术研发人员:安德鲁
申请(专利权)人:日立数据管理有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1