我们有一个CouchDB群集,该群集具有24个节点,其中['4/1/2019',
'4/2/2019',
'4/3/2019',
'4/4/2019',
'4/5/2019',
'4/8/2019',
'4/9/2019',
'4/10/2019',
'4/11/2019',
'4/12/2019',
'4/15/2019']
和q=8
作为默认群集设置,并且已经创建了100个数据库。如果我们再向集群添加24个节点并开始创建新数据库,那么是否会在新节点中创建它们? CouchDB如何决定将新数据库放在何处?
我们正在运行2.3.1中的所有节点
答案 0 :(得分:2)
默认情况下,CouchDB将为群集中所有节点之间的数据库随机分配分片,因此您的新数据库将在新节点和旧节点上都具有分片。它将使碎片尽可能多地分布在节点上,并确保碎片的两个副本永远不会位于同一节点上。
如果您希望分片仅在新节点上托管( )(例如,由于旧节点正在填充),则可以利用“放置”功能。涉及两个步骤:
[cluster] placement
的配置设置,该设置告诉服务器将每个分片的3个副本放置在您的新区域中:[cluster]
placement = new:3
您也可以将此功能用于其他目的;例如,通过根据机架位置,可用性区域等将节点划分为多个区域,以确保副本之间具有最大的隔离度。您可以在此处详细了解设置:
http://docs.couchdb.org/en/2.3.1/cluster/databases.html#placing-a-database-on-specific-nodes