2015-04-30 21 views
1

我一直在读通过Couchbase Server文档,并按照我的理解,这是“它是如何工作”:桶是否跨越Couchbase服务器群集中的所有节点?

  • 一个集群中有一个或多个节点(服务器)。
  • 群集有一个或多个存储桶。
  • 存储桶有一个或多个视图。

我的问题:

  1. 我会假设,在桶中的数据分布在集群中的所有节点,正确吗?还是在所有节点上复制?
  2. 假设一个桶跨越群集中的多个节点,视图是否从所有这些节点检索数据?
  3. 或者是一个存储桶及其特定于某个节点的视图?

回答

4

你在第一点的假设大多是正确的。一个桶在1024个vBuckets中被分割。然后将这些vBuckets分布在集群中的所有节点上(均匀地分配或取出一个剩余分区),并将副本vBucket放置在与主vBuckets分开的节点上。默认情况下,vbucket只会复制到另一个节点(因此每个文档将复制到另一个节点),但是如果需要,您可以配置多个副本以获得更高的可用性。

视图(设计文档)将索引每个节点/ vBucket上特定存储桶的数据,但该视图的索引数据存储在vBuckets所在的节点中。所以当你查询一个视图时,它必须去集群中的每个节点。当您重新平衡时,默认情况下,节点上的索引会随着vBuckets的迁移而更改。数据将从源节点删除并在复制的目标节点上重新生成。

在YouTube上的How-To NoSQL 3.0 Webinar中给出了对Couchbase服务器的分片架构的很好的概述。

+1

非常感谢!这正是我感兴趣的信息,我会确保立即检查网络研讨会:) –

相关问题