What’s New in Cassandra 1.0: Windows Service, New CQL Clients, and More
You can still run Cassandra 1.0 from the bat file if you want — this is the most convenient way to develop and run quick tests — but for production, installing it as a Windows service is a much better option. To do this, just run bin\cassandra.bat install. (Similarly, uninstall will remove it.)
Hinted handoff is one way Cassandra replays missed updates to nodes that were temporarily down or unreachable. Cassandra 1.0 makes two improvements:
- Hint data is stored more efficiently, reducing the load imposed by hint replay on nodes storing them
- Coordinator nodes no longer need to wait for the failure detector to recognize a problem with a replication target, to begin generating hints for it
This means that full repair, while still recommended periodically, will only have to reconcile data missing because of a coordinator failure at the same time, or because of losing a node entirely. Both of these are relatively rare occurrences.
Similarly, read repair is less necessary, so the default read repair probability has been reduced to 10% from 100%. This will result in significantly improved throughput in clusters with more than one replica and lower ConsistencyLevel reads than ALL.
Cassandra 0.8 introduced concurrent compaction: running multiple compaction sets at a time, each in its own thread. Cassandra 1.0 adds multithreaded compaction, which allows multiple threads to be used per compaction set.
The primary use case for multithreaded compaction is when you either have a small number of column families or you are using leveled compaction, and you want to keep your data as compacted as possible–usually because you have a read-heavy workload.
Multithreaded compaction can be enabled by setting multithreaded_compaction to true in cassandra.yaml.
Replacing a node was a two-step process in earlier versions of Cassandra: one to add the new node, and a second to remove the old. Cassandra 1.0 simplifies this common operation into simply starting the new node with the option -Dcassandra.replace_token=[token].
New CQL clients
After some discussion, we decided that CQL drivers would be better developed as separate projects rather than in the Cassandra tree. The Java and Python drivers have moved to Apache Extras on code.google.com, and new Ruby and PHP drivers have joined them, with node.js coming soon.
- What’s new in Cassandra 1.0, part 4: Performance
- What’s new in Cassandra 1.0, part 3: Leveled compaction
- What’s new in Cassandra 1.0, part 2: Improved memory and disk space management
- What’s new in Cassandra 1.0, part 1: Compression
- What’s new in Cassandra 0.8
- What’s new in Cassandra 0.7
- What’s new in Cassandra 0.6