gpt4 book ai didi

mysql - MySQL NDB Cluster 是否考虑节点距离?如果复制品更接近,它会使用它们吗?

转载 作者:行者123 更新时间:2023-11-29 08:54:13 25 4
gpt4 key购买 nike

我正在构建一个非常小的 NDB 集群,只有 3 台机器。这意味着机器 1 将同时充当 MGM 服务器、MySQL 服务器和 NDB 数据节点。数据库只有 7 GB,因此我计划至少复制每个节点一次。现在,由于查询最终可能会使用缓存在一台机器上的 NDB 节点中的数据,即使该节点不是该数据的主要来源,访问也会更快(出于显而易见的原因)。

NDB集群是这样工作的吗?我看到的每个例子都至少有 5 台机器。手册似乎没有提到如何处理像这样的节点差异。

最佳答案

这里有几个问题:

可用性/副本数

当数据跨 2 个或更多数据节点进程复制时,MySQL 集群可以提供高可用性。这要求 NoOfReplicas 配置参数设置为 2 或更大。当NoOfReplicas=1时,每一行仅存储在一个数据节点中,数据节点故障将意味着部分数据不可用,从而导致整个数据库不可用。

机器/主机数量

对于 NoOfReplicas=2 的 HA 配置,应该至少有 3 个独立的主机。每个数据节点进程都需要 1,它具有所有数据的副本。当两个数据节点进程之间的通信失败时,需要第三个充当“仲裁者”。这样可以确保只有一个数据节点继续接受写事务,并避免数据发散(脑裂)。如果只有两台主机,则集群只能对其中一台主机的故障具有弹性,如果另一台主机发生故障,则整个集群将发生故障。仲裁角色非常轻量级,因此第三台机器也可以用于几乎任何其他任务。

数据局部性

在 NoOfReplicas=2 的 2 节点配置中,每个数据节点进程存储所有数据。然而,这并不意味着只有一个数据节点进程用于读/写数据。两个进程都涉及写入(因为它们必须维护副本),并且通常,任一进程都可能涉及读取。

正在考虑一些改进 2 节点配置中的读取局部性的工作,但没有具体的内容。

这意味着当 MySQLD(或另一个 NdbApi 客户端)与两个数据节点之一共置时,与另一个数据节点之间仍然会有相当多的通信。

关于mysql - MySQL NDB Cluster 是否考虑节点距离?如果复制品更接近,它会使用它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com