2

我刚刚完成了一个具有 3 个节点的 CouchDB 集群的设置。现在我正在尝试对我的数据进行分片以扩展数据库,这就是我创建具有 2 个分片和 2 个副本的数据库的方法:

  • 使用命令创建数据库

    $ curl -X PUT "http://username:login@myhost:5984/test?q=2&r=1&w=1&n=2
    

    收到了真实的消息。

  • 在数据库“test”中创建 50 个文档

但是,当我检查所有三个节点时,我发现每个节点都有所有 50 个文档的完整副本。当我从节点 1 中删除一个文档时,该文档在所有三个节点的测试数据库中都被删除了。似乎集群工作正常,但不是我想要的方式。

在我看来,如果我将 shards 设置为 2,replicas 设置为 2,那么数据库将分为两部分,每个部分将保存在两个节点中。例如,我得到一个列表 [1,2,3,4]。我要将它存储在我刚刚创建的数据库中,有可能

node1 有:

  • [1,2] [3,4]
  • node2有:

  • [1,2]
  • node3有:

  • [3,4]
  • .

    但绝对不是 [1,2,3,4] [1,2,3,4] [1,2,3,4] 分别在三个节点。我对吗?

    如果没有,为什么我的数据库没有对我的 50 个文档进行分区?我的目标是可扩展性和可靠性。似乎它根本没有扩展我的存储空间。

    4

    0 回答 0