I'd like to start using cassandra for a certain part of my database that has high write volume. I'm setting up a 3 node cluster, however my site doesn't make enough money yet to justify 3 nodes meeting the hardware recommendation<http://wiki.apache.org/cassandra/CassandraHardware>of 4gb RAM. Instead I'm trying to get it working with nodes that have 256mb RAM (running in a VM). I looked around and found a couple places where people mention successfully running cassandra nodes with only 256mb, eg http://news.ycombinator.com/item?id=2074114 and http://groups.google.com/group/reddit-dev/browse_thread/thread/f7bc839dbc62d0ad/92af1e790f2fe05c, but they don't give any details about setting they've changed.
It took a while, but I've settled on some settings that don't give me an OutOfMemoryException under load, and still seem to have acceptable performance (quick writes with throughput that's good enough for now, higher latency reads but that's okay for my use). They're a bit on the conservative side, but I'd rather have them low and never get an OOM than risk it. The JVM memory settings are the auto-calculated ones (running cassandra 0.7.6-2): -Xms122M -Xmx122M -Xmn30M I have 4 CF's. The settings I've changed are, for each CF: MemtableThroughputInMB to 1mb (yes, that's very low, that's part of my question) MemtableOperationsInMillions to 0.02 (20k operations) cached keys to 20,000 The docs at http://wiki.apache.org/cassandra/MemtableThresholds warn that "tons of tiny memtables is bad". Why? Also, am I correct in believing that it's ok to change the memtable throughput/operations later on once I have larger nodes, and that there will be no lasting bad effects (eg I can just trigger a compaction, or even bring new nodes online and remove the old ones)? I've tested this setup doing reads and writes, but I haven't tried any operations (eg moving a node to a different token, bootstrapping a new node). Are there any operations I need to watch out for that could cause an OOM, or other problematic settings that should be tuned that haven't caused problems yet but could in certain cases? Thanks, Donny