Riak CS - 副本数量

Riak CS - 副本数量

来自 Riak 官方文档:“在 Riak CS 系统中,任何节点都可以响应客户端请求 - 没有主节点,每个节点都具有相同的职责。由于数据是复制的(默认情况下每个对象有三个副本),并且其他节点会自动接管发生故障或无法通信的节点的职责,因此即使发生节点故障或网络分区,数据仍然可用。”

是否有经验表明每个对象三个副本会带来一些优势(速度、安全性)或者使用没有副本的 Riak 是否可以(占用更少的空间)?

答案1

即使副本数为 0,Riak 仍会顺利地保存您的所有数据,但是关闭一个节点(进行维护)将导致部分数据不可用,而丢失一个节点将导致数据丢失。

想象一下以下场景(假设戒指尺寸为 5)

5 个节点 riak,3 个副本

  • 节点1
    • 数据1
    • 数据2
    • 数据5
  • 节点2
    • 数据2
    • 数据3
    • 数据5
  • 节点3
    • 数据1
    • 数据3
    • 数据4
  • 节点4
    • 数据2
    • 数据4
    • 数据3
  • 节点5
    • 数据1
    • 数据4
    • 数据5

如果节点 3 关闭,所有数据仍可在另外 2 个节点上使用。所有内容仍可读取或写入,当节点恢复时,更改将根据需要转移。

5 个节点的 riak,0 个副本

  • 节点1
    • 数据1
  • 节点2
    • 数据2
  • 节点3
    • 数据3
  • 节点4
    • 数据4
  • 节点5
    • 数据5

在这种情况下,如果节点 3 关闭,其上的所有数据都将变得不可用,如果节点完全丢失,数据也会丢失。

Basho 有相当好的文档,但这是一个很好的起点http://basho.com/posts/technical/understanding-riak_core-handoff/

相关内容