On Thu, Sep 12, 2013 at 5:42 AM, Shahab Yunus <shahab.yunus@gmail.com> wrote:
I admit about missing details. Sorry for that. The thing is that I was looking for guidance at the high-level so we can then sort out myself what fits our requirements and use-cases (mainly because we are at the stage that they could be molded according to hardware and software limitations/features.) So, for example if it is recommended that ' for heavy reads physical is better etc.')

Anyway, just to give you a quick recap:
1- Cassandra 1.2.8
2- Row is a unique userid and can have one or more columns. Every cell is basically a blob of data (using Avro.) All information is in this one table. No joins or other access patters.
3- Writes can be both in bulk (which will of course has less strict performance requirements) or real-time. All writes would be at the per userid, hence, row level and constitute of adding new rows (of course with some column values) or updating specific cells (column) of the existing row.
4- Reads are per userid i.e. row and 90% of the time random reads for a user. Rather than in bulk. 
5- Both reads and write interfaces are exposed through REST service as well as direct Java client API.
6- Reads and writes, as mentioned in 3&4 can be for 1 or more columns at a time.


Your total data set size and number of reads/writes per-second are the important things here.  Also how sensitive are you to latency spikes (which tends to happen with VM's)?

Long story short, the safest option is always physical IMHO.  Use VM/cloud if you need to use VM/cloud for some reason (like all the other servers talking to Cassandra are also in AWS for example).  Cloud can work (Netflix uses Cassandra on AWS), but your performance will be a lot more consistent on physical hardware and Cassandra like all databases likes lots of RAM (although this can be offset some with SSD's) which tends to be expensive in the cloud.

Aaron Turner
http://synfin.net/         Twitter: @synfinatic
https://github.com/synfinatic/tcpreplay - Pcap editing and replay tools for Unix & Windows
Those who would give up essential Liberty, to purchase a little temporary 
Safety, deserve neither Liberty nor Safety.  
    -- Benjamin Franklin