0

From the official Riak documentation: "In a Riak CS system, any node can respond to client requests - there is no master node and each node has the same responsibilities. Since data is replicated (three replicas per object by default), and other nodes automatically take over the responsibility of failed or non-communicative nodes, data remains available even in the event of node failure or network partition."

Are there experiences if three replicas per object bring some advantages (speed, security) or is it ok to use Riak without replicas (less space)?

Barmi
  • 429
  • 1
  • 6
  • 14

1 Answers1

0

With 0 replicas Riak will still happily hold all your data, but taking down one node (for maintenance) will result in some of your data being unavailable, and losing a node would result in lost data.

Imagine the following scenarios (both use a hypothetical ring size of 5)

5 node riak with 3 replicas

  • node1
    • data1
    • data2
    • data5
  • node2
    • data2
    • data3
    • data5
  • node3
    • data1
    • data3
    • data4
  • node4
    • data2
    • data4
    • data3
  • node5
    • data1
    • data4
    • data5

If node 3 is shut down, all data is still available on 2 other nodes. Everything can still be read or written to, and when it comes back changes will be transferred over as necessary.

5 node riak with 0 replicas

  • node1
    • data1
  • node2
    • data2
  • node3
    • data3
  • node4
    • data4
  • node5
    • data5

In this case if node 3 is shut down all the data that was on it becomes unavailable, and if the node is lost completely, the data is lost as well.

Basho has pretty good documentation, but this is a good place to start http://basho.com/posts/technical/understanding-riak_core-handoff/

Hard-Format
  • 66
  • 1
  • 5