存储桶是不是跨越 Couchbase 服务器集群中的所有节点?

Posted

技术标签:

【中文标题】存储桶是不是跨越 Couchbase 服务器集群中的所有节点?【英文标题】:Does a bucket span over all nodes in a Couchbase Server cluster?存储桶是否跨越 Couchbase 服务器集群中的所有节点? 【发布时间】:2015-04-30 05:57:51 【问题描述】:

我一直在阅读 Couchbase Server 文档,据我了解,这就是“它是如何工作的”:

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

我的问题:

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

【问题讨论】:

【参考方案1】:

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

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

YouTube 上的 How-To NoSQL 3.0 Webinar 提供了对 Couchbase Server 分片架构的一个很好的概述。

【讨论】:

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

以上是关于存储桶是不是跨越 Couchbase 服务器集群中的所有节点?的主要内容,如果未能解决你的问题,请参考以下文章

我如何从 pyspark 访问 couchbase

带有 Spring-boot XML 配置的 Couchbase 5.0

服务如何分布在集群内的 couchbase 服务器中?

Couchbase 集群中较慢的插入性能

如何在没有嵌入式服务器或新集群的情况下模拟 couchbase 进行验收测试?

Couchbase 使用键获取给定日期范围的文档