2. Features
• Live schema modification
• Secondary indexes
• Hadoop OutputFormat
• (Very) large rows
• up to 2 billion columns
• NetworkTopologyStrategy
5. Compatiblity
• Fully backwards-compatible with 0.6 data
• Some Thrift API changes
• String row keys become byte[]
• keyspace is set once per connection
• Requires drain + cluster restart
19. Large rows
• 0.6: smaller of {2GB, memory limit}
• 0.7: 2 billion columns
• in_memory_compaction_limit_in_mb
20. NetworkTopologyStrategy
• RackAwareStrategy is tuned for 3 replicas
and 2 data centers
• renamed to OldNetworkTopologyStrategy
• NTS allows configuring replicas per data
center, per Keyspace
• ignores replication_factor directive
29. Native code
• JNA introduced in 0.6.5 for mlockall
• Extended to hard links in 0.6.6 for
snapshots
• 0.7.1: posix_fadvise / fcntl for writes
30. Flow Control (0.6.4)
• Replica nodes drop hopeless requests on
the floor
• Coordinator node is unaffected
• TimedOutException signals client to back off
• Requires enough memory to buffer
RPCTimeout’s worth of requests
• (In the short term, you’re still screwed)
34. 0.7 performance
• Reads roughly 100% faster, thanks largely to
removing String creation
• Row-cached reads up to 8x faster after
optimizations by tjake and jbellis
• Optimizations for reads of large rows
• 0.7.1: even more speed (fix nagle + delayed
acks, zero-copy reads, ...)
35. Thrift: the libpq of Cassandra
• OOMs on malformed packets
• Python Unicode string issues
• PHP support is buggy and maintainerless
36. Client support from Riptano
• Hector
• Building JPA/JDO layer on top
• pycassa
• phpcassa
• Soon: cassandra gem