Imagine we have a cassandra cluster with 8 nodes. And we installed 1 million objects and out of that 100 objects are popular. So, there is a high probability to distribute these 100 objects to all the 8 nodes. This mean that the whole cluster become heavily loaded because of only few popular objects. isn't it? In such a case, increase replication of objects will make huge effect on the system. Do you think in such a situation, higher degree of replication would downgrade the system performance? How the replication factor affect access distributions in such a system?
Asked
Active
Viewed 417 times
0
-
More replicas affect performance, but not necessarily huge. What number of node failures do you want to be able to handle and what read and write consistency do you need to provide to your users? What tradeoffs can you make? If latency is a top priority, only one replica node can be configured to respond to the request, but that means a higher probability of stale data being read. If you have 3 replicas (most common), do you want to ensure writing to a QUORUM (majority)? Then you can have only 1 node down. If you want to handle 2 nodes down use a replication factor of 5. – catpaws Nov 15 '14 at 18:51
-
Thank for the comment. In order to check the performace, I tested a 8 node cluster with 1M objects. I used YCSB for load generation and used Zipfian distribution. But what I observe was, for Readonly situation, upto replication factor 4 the read throughput increased, but after that it was decreasing and worst at replication factor 8. I used Read/Write consistancy level one. Is this acceptable? I am confused, because theoretically it is not possible. – Anayag Nov 22 '14 at 10:24
-
I think using consistency level ONE is possible. Read consistency level ONE is met by a response from the closest single replica that can respond, determined by the snitch. Provides higher availability than other levels and higher probability of stale data being read. The replica contacted may not always have the most recent write. Maybe tracing consistency in your cluster would be enlightening. Pls see http://www.datastax.com/documentation/cql/3.1/cql/cql_using/useTracing.html and http://stackoverflow.com/questions/24587869/understand-cassandra-replication-factor-versus-consistency-level. – catpaws Nov 22 '14 at 19:12
-
Thanks a lot. I would check tracing, sure It will be helpful. Moreover, I could figure out the other reason to occur this is the cache misses due to low memory and lower amount of disk space which increased disk read probability and disk read latency respectively. – Anayag Nov 23 '14 at 20:14