Responses inline. On Wed, Apr 2, 2014 at 3:42 AM, Igor Kukushkin <i...@pbne.mygbiz.com> wrote:
> Hi all. > > Here's a simple scenario that we're planning to test: a cluster of 4 > nodes, 2 are normal eleveldb'backend nodes and 2 are stored on RAM > (with same eleveldb backend). > Going to put this out here right now, this is a very non-standard setup. Riak treats all nodes equally, keys are consistently hashed across the cluster, and there is no in-built weighting. I'd either make faster LevelDB nodes (maybe with SSDs) or go full in on the RAM angle and just have enough machines for failover. Spitting the difference doesn't really get you any advantages with Riak. You're also still below the 5 node threshold so there is still unrealized performance being left on the table before even getting to the physical node attributes. > > We plan to use RAM nodes as a fast "frontend". > > > Question A: > RAM disks are completely volatile, so nodes will restart with no data > stored. > So, what will happen at restart? If a Riak node is restarted in a > "clean" state (no data, same state as it was on creation), will it > receive the state from disk nodes? Or it's required to re-add it to > cluster? > If you have AAE[1] enabled then the node would begin rebuilding itself if already a member of the cluster. Depending on the amount of data rebuild times may not be ideal. > > Question B: due to huge speed difference between on-disk and on-RAM > backend, should any replication side-effects be expected? > Latency profiles are going to be weird - if you make a request (Assuming default N/R/W) then Riak will still have to query 2 nodes minimum on a GET and as keys are consistently hashed there is no controlling where they live. So you could on any given query completely negate the speed advantage of running the RAM backed nodes. > > Quesion C: should we use memory_backend + leveldb_backend nodes > together instead of building that? Does Riak networking topology > allows for mixed backends? > It depends on what you're trying to achieve but it's entirely possible. Riak support multi-backends per node, in fact that is how Riak CS works, so running memory and levelDB on each node is a viable option. So yes, Riak definitely supports running multiple backends per node. It's worth noting that Riak will "happily" run with different/mixed backends on each node (say 3 nodes levelDB and 1 Bitcask) and still mostly work as it's largely agnostic to the specific backend unless doing an operation specific to that backend (like a 2i query). > -- > Igor > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com >
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com