Doing reads and writes at CL=1 with RF=2 N=2 does not imply that the reads will be inconsistent. It's more complicated than the simple counting of blocked replicas. It is easy to support the notion that it will be largely consistent, in fact very consistent for most use cases.

By default Cassandra tries to write to both nodes, always. Writes will only fail (on a node) if it is down, and even then hinted handoff will attempt to keep both nodes in sync when the troubled node comes back up. The point of having two nodes is to have read and write availability in the face of transient failure.

If you are interested there is a good exposition of what 'consistency' means in a system like Cassandra from the link below[1].

[1]
http://www.eecs.berkeley.edu/~pbailis/projects/pbs/


On Fri, Mar 16, 2012 at 6:50 AM, Thomas van Neerijnen <tom@bossastudios.com> wrote:
You'll need to either read or write at at least quorum to get consistent data from the cluster so you may as well do both.
Now that you mention it, I was wrong about downtime, with a two node cluster reads or writes at quorum will mean both nodes need to be online. Perhaps you could have an emergency switch in your application which flips to consistency of 1 if one of your Cassandra servers goes down? Just make sure it's set back to quorum when the second one returns or again you could end up with inconsistent data.


On Fri, Mar 16, 2012 at 2:04 AM, Drew Kutcharian <drew@venarc.com> wrote:
Thanks for the comments, I guess I will end up doing a 2 node cluster with replica count 2 and read consistency 1.

-- Drew



On Mar 15, 2012, at 4:20 PM, Thomas van Neerijnen wrote:

So long as data loss and downtime are acceptable risks a one node cluster is fine.
Personally this is usually only acceptable on my workstation, even my dev environment is redundant, because servers fail, usually when you least want them to, like for example when you've decided to save costs by waiting before implementing redundancy. Could a failure end up costing you more than you've saved? I'd rather get cheaper servers (maybe even used off ebay??) so I could have at least two of them.

If you do go with a one node solution, altho I haven't tried it myself Priam looks like a good place to start for backups, otherwise roll your own with incremental snapshotting turned on and a watch on the snapshot directory. Storage on something like S3 or Cloud Files is very cheap so there's no good excuse for no backups.

On Thu, Mar 15, 2012 at 7:12 PM, R. Verlangen <robin@us2.nl> wrote:
Hi Drew,

One other disadvantage is the lack of "consistency level" and "replication". Both ware part of the high availability / redundancy. So you would really need to backup your single-node-"cluster" to some other external location.

Good luck!


2012/3/15 Drew Kutcharian <drew@venarc.com>
Hi,

We are working on a project that initially is going to have very little data, but we would like to use Cassandra to ease the future scalability. Due to budget constraints, we were thinking to run a single node Cassandra for now and then add more nodes as required.

I was wondering if it is recommended to run a single node cassandra in production? Are there any other issues besides lack of high availability?

Thanks,

Drew








--
Ben Coverston
DataStax -- The Apache Cassandra Company