首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchDB集群数据库分发

CouchDB集群数据库分发
EN

Stack Overflow用户
提问于 2019-04-18 10:22:58
回答 1查看 255关注 0票数 2

我们有一个包含24个节点的CouchDB集群,默认集群设置为q=8n=3,并且已经创建了100个数据库。如果我们再向集群中添加24个节点并开始创建新数据库,这些节点是否会在新节点中创建?CouchDB如何决定将新数据库放在哪里?

我们正在运行2.3.1中的所有节点

EN

回答 1

Stack Overflow用户

发布于 2019-04-23 10:04:20

默认情况下,CouchDB会为集群中所有节点上的数据库随机分配分片,因此新数据库在新节点和旧节点上都会有分片。它会将分片分布在尽可能多的节点上,并保证分片的两个副本永远不会在同一个节点上。

如果你想让分片只在新节点上托管(例如,因为旧的节点被填满了),你可以利用“放置”功能。涉及到两个步骤:

  1. 遍历_nodes数据库中的文档,并为每个文档设置“zone”属性,例如,“zone”:旧节点,“zone”:新节点。
  2. 定义[cluster] placement配置设置,告知服务器在新区域中放置每个分片的3个副本:

代码语言:javascript
复制
[cluster]
placement = new:3

您还可以将此功能用于其他目的;例如,根据机架位置、可用区等将节点划分为多个区域,以确保副本具有最大程度的相互隔离。您可以在此处阅读有关设置的更多信息:

http://docs.couchdb.org/en/2.3.1/cluster/databases.html#placing-a-database-on-specific-nodes

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55738282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档