DataStax Developer Blog

What’s New in Cassandra 1.0: Windows Service, New CQL Clients, and More

By Jonathan Ellis -  October 14, 2011 | 4 Comments

Besides compression, memory and disk space management, leveled compaction, and performance improvements, Cassandra 1.0 also includes a number of smaller features and enhancements.

Windows service

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

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.

Multithreaded compaction

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.

Node replacement

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.

Previously



Comments

  1. [...] Cassandra 1.0 was released yesterday! I wonder what the significance of the release number jump from 0.8.7 to 1.0 is – a [...]

  2. The link to download JDBC driver is empty. When will it be avaiable?
    Can we have a complete small working example JDBC Java code?

    http://code.google.com/a/apache-extras.org/p/cassandra-jdbc/downloads/list

    Thanks,
    Charlie

  3. Jonathan Ellis says:

    The different drivers are at different stages of publishing artifacts. For now, I’d build JDBC from source.

  4. Sorry, I’m basically an Oracle DBA with a little Java knowledge. I only know include the apache-cassandra-cql-1.0.3.jar file in -classpath. ^_^

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>