查找存储特定数据的节点/分区

时间:2012-11-14 10:36:50

标签: riak

我是riak的新手,并试图发现它的潜力。目前,我使用N,R,W设置来查看影响。我想念的是检查哪些数据存储在哪个节点/分区上。

有没有办法问

  • 只有一个节点,它存储哪些数据?
  • 每个节点,谁存储我想要的特定数据?

因此,如果我可以获得节点2和3之类的信息来存储我需要的数据,那么如果i stop节点2和3请求数据将失败。

1 个答案:

答案 0 :(得分:2)

我不知道有任何标准的方法来确切地找出特定记录存储在哪个节点上(但不排除有一个节点)。然而,通常不需要关注的事情。

如果以有序的方式添加或删除节点,Riak会以对用户透明的方式基于一致散列在物理节点上展开记录,并在群集中重新分配数据(以维护n_val副本)。

如果节点意外关闭,则在停机期间其他节点将跟踪对此节点上保存的数据的更改,并在节点恢复后将其传递给节点。

这意味着只要您根据对数据的一致性要求定义N,R和W,即使添加或删除节点,Riak也会努力保留这些要求。

通过这种方式,我认为Riak在某种程度上不同于依赖于分片的数据库,因为数据与特定节点有更多关联,并且不一定会自动重新分发到其他节点/分片。