On Tue, Aug 17, 2010 at 7:55 PM, Chen Xinli <chen.d...@gmail.com> wrote: > Hi, > > We are going to use cassandra for searching purpose like inbox search. > The reading qps is very high, we'd like to use ConsitencyLevel.One for > reading and disable read-repair at the same time. >
In 0.7 you can set a probability for read repair, but disabling it is a spectacularly bad idea. Any write problems on a node will result in persistent inconsistency. > For reading consistency in this condition, the writing should use > ConsistencyLevel.ALL. But the writing will fail if one node fails. You are free to read and write with consistency levels where R+W < N, it just means you have weaker consistency guarantees. > We want such a ConsistencyLevel for writing/reading that : > 1. writing will success if there is node alive for this key > 2. reading will not forward to a node that's just recovered and doing hinted > handoff > > So that, if some node fails, others nodes for replica will receive the data > and surve reading successfully; > when the failure node recovers, it will receive hinted handoff from other > nodes and it'll not surve reading until hinted handoff is done. > > Does cassandra support the cases already? or should I modify the code to > meet our requirements? > You are phrasing these requirements in terms of a specific implementation. What are your actual consistency goals? If node failure is such a common occurrence in your system, you are going to have _numerous_ problems. b