我现在正在研究沙发基地,我对'桶'和'vbucket'这个术语的官方描述感到很困惑,有人能解释什么是桶或vbucket吗?有什么不同?最好做一些类比并给出一些例子.
Bucket是唯一键控文档的逻辑键空间,均匀分布在集群中的所有节点上.
vBucket是位于单个节点上的存储桶的子集.所有vBuckets的联盟都是一个桶.
想象一下,你有三个节点:
+----------+ +----------+ +----------+
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+----------+ +----------+ +----------+
node1 node2 node3
Run Code Online (Sandbox Code Playgroud)
存储桶是一组文档(可以在结构和属性上不同),它们分布在所有三个节点上,但它共享相同的密钥空间.
+----------+ +----------+ +----------+
+---------------------------------------------------------------+
| | | | | | | |
| | | | | | | Bucket
| | | | | | | |
+---------------------------------------------------------------+
| | | | | |
| | | | | |
+----------+ +----------+ +----------+
node1 node2 node3
Run Code Online (Sandbox Code Playgroud)
请注意,密钥在存储桶中必须是唯一的,与RDBMS中的数据库概念相比,该密钥在表中是唯一的.
存储桶分为1024个段,这些段均匀分布在集群中的所有节点上.这些段是虚拟桶或vBucketes.因此,在这种情况下,每个节点上有1024/3个vBuckets.
+----------+ +----------+ +----------+
+---------------------------------------------------------------+
| | | | | | | |
| | 341 vBs | | 341 vBs | | 342 vBs | Bucket
| | | | | | | |
+---------------------------------------------------------------+
| | | | | |
| | | | | |
+----------+ +----------+ +----------+
node1 node2 node3
Run Code Online (Sandbox Code Playgroud)
每个vBucket都有其相关的文档集.因此,在执行查找时,clusterMap会计算搜索到的文档的键的哈希值,并标识节点和文档所在的vBucket.
参考:http://training.couchbase.com/online
Bucket就像RDBMS中的数据库.它包含文档,视图和一些配置.VBucket就像RDBMS中的shard一样.CB上的所有键映射到#VBucket,#VBucket映射到server-name.由于这些散列函数导致在多个节点上均匀分布文档,并通过其id快速获取文档的操作.
归档时间: |
|
查看次数: |
2419 次 |
最近记录: |