0

系统中的数据是项目(即对象)的集合。这些逻辑对象由一组称为副本的物理副本实现。副本是物理对象,每个都存储在一台计算机上,其数据和行为与系统操作的某种程度的一致性相关联。

我的问题是

1 对象应该是物理的,副本应该是逻辑的 2 副本是精确副本还是原始副本的一部分,即足够的信息 3 副本存储在哪里,单个对象有多少个副本?4 当客户端连接到对象时,他们访问的是副本还是原始对象?

我试图在网上找到我的问题的答案,但不能因此不得不在 stackoverflow 上发布。

4

1 回答 1

2

答案主要取决于您使用什么“系统”。没有通用的复制机制。但是,问题 #1 和 #2 的答案应该始终相同: 1. 副本是物理对象 2. 副本是精确副本。几乎每个分布式系统都使用自产的东西。这里有一些例子:

  • MySQL 复制:客户端/服务器应用程序。在 master 上执行的事务将被转移到 slave。配置的从属设备的数量是副本的数量。副本和原始版本不同:副本是原始版本的延迟版本。回答您的问题:

    1. 取决于配置的从节点数量 4. 取决于客户端使用主节点或从节点之一
  • CouchBase 集群:所有节点都是平等的,没有主节点。对象和副本通过散列函数分布在节点之间。如果一个节点发生故障,其余节点将重新分发故障节点的对象和副本。您的问题的答案: 3. 您可以配置您想要拥有的副本数。4. 有 2 个选项:

    • 客户端可以连接到任何节点,如果对象位于其他地方,节点将代理请求
    • 客户端知道对象分布机制并知道集群的结构。因此客户端可以直接连接到存储所需对象的节点。
于 2012-11-15T18:21:47.117 回答