我是 riak 的新手,并试图发现它的潜力。目前我正在玩N,R,W
设置以查看影响。我在这里想念的是检查哪些数据存储在哪个节点/分区上。
有没有办法问
- 只有一个节点,它存储哪些数据?
- 每个节点,谁存储我想要的特定数据?
因此,如果我可以获得像节点 2 和 3 这样的信息来存储我需要的数据,那么如果我在stop
节点 2 和 3 中请求该数据将会失败。
我是 riak 的新手,并试图发现它的潜力。目前我正在玩N,R,W
设置以查看影响。我在这里想念的是检查哪些数据存储在哪个节点/分区上。
有没有办法问
因此,如果我可以获得像节点 2 和 3 这样的信息来存储我需要的数据,那么如果我在stop
节点 2 和 3 中请求该数据将会失败。
我不知道有任何标准方法可以准确找出特定记录存储在哪些节点上(但不排除存在一个)。然而,这通常不是人们需要关心的事情。
如果以有序的方式添加或删除节点,Riak 基于一致的散列以对用户透明的方式在物理节点上分布记录,并在集群中重新分配数据(以维护 n_val 副本)。
如果一个节点意外宕机,该节点上保存的数据的更改将在宕机期间被其他节点跟踪,并在它恢复时传递给该节点。
这意味着只要您根据对数据的一致性要求定义 N、R 和 W,即使添加或删除节点,Riak 也会努力保留这些。
通过这种方式,我相信 Riak 在某种程度上不同于依赖分片的数据库,因为那里的数据更多地与特定节点相关联,不一定会自动重新分配到其他节点/分片。