Apache Cassandra 0.8 Documentation

Upgrading Cassandra: 0.7.1 to 0.8.x

Upgrading from version 0.7.1 or later can be done with a rolling restart, one node at a time. You do not need to bring down the whole cluster at once.

If you are running version 0.7.0, first upgrade to 0.7.1 and then perform the upgrade to 0.8.

To upgrade a binary package installation from 0.7.1 to 0.8.x:

  1. On each node, download and unpack the 0.8 installation package from the downloads section of the Cassandra website.
  2. Account for New and Changed Parameters in cassandra.yaml. You can copy your existing 0.7.x configuration file into the upgraded Cassandra instance and manually update it with new content.
  3. Make sure any client drivers – such as Hector or Pycassa clients – are 0.8-compatible.
  4. Run nodetool drain on the 0.7.x node to flush the commit log.
  5. Restart the Cassandra node, monitoring the log files for any issues.
  6. After upgrading and restarting all Cassandra nodes, restart client applications.

To upgrade a CentOS/RHEL packaged release installation from 0.7.1 to 0.8.x:

  1. On each of your Cassandra nodes, run sudo yum install apache-cassandra08.
  2. Account for New and Changed Parameters in cassandra.yaml. The installer creates the file cassandra.yaml.rpmnew in /etc/cassandra/default.conf/. You can diff this file with your existing configuration and add new content.
  3. Make sure any client drivers – such as Hector or Pycassa clients – are 0.8-compatible.
  4. Run nodetool drain on the 0.7.x node to flush the commit log.
  5. Restart each Cassandra node, one at a time, monitoring the log files for any issues.
  6. After upgrading and restarting all Cassandra nodes, restart client applications.

To upgrade a Debian/Ubuntu packaged release installation from 0.7.1 to 0.8.x:

  1. On each of your Cassandra nodes, run sudo apt-get install cassandra08.
  2. Account for New and Changed Parameters in cassandra.yaml. The installer creates the file cassandra.yaml.rpmnew in /etc/cassandra/default.conf/. You can diff this file with your existing configuration and add new content.
  3. Make sure any client drivers – such as Hector or Pycassa clients – are 0.8-compatible.
  4. Run nodetool drain on the 0.7.x node to flush the commit log.
  5. Restart each Cassandra node, one at a time, monitoring the log files for any issues.
  6. After upgrading and restarting all Cassandra nodes, restart client applications.

New and Changed Features

  • By default, JMX now listens on port 7199. Prior to 0.8 the default JMX port was 8080.
  • Avro record classes used in map/reduce and Hadoop streaming code have moved from org.apache.cassandra.avro to org.apache.cassandra.hadoop.avro, so applications using these classes will need to be updated accordingly.
  • The loadbalance command has been removed from nodetool. For similar behavior, decommission then rebootstrap with empty initial_token.
  • New CQL client API and JDBC/DBAPI2-compliant drivers for Java and Python, respectively. See Getting Started with CQL.
  • New distributed Counters feature; see the Cassandra Wiki.
  • New optional intranode encryption. See internode_encryption.
  • New compaction multithreading and rate-limiting; see compaction_multithreading and compaction_throughput_mb_per_sec in cassandra.yaml.
  • Previous to 0.8, sstable2json would write column names and values as hex strings, and now creates human readable values based on the comparator/validator. As a result, JSON dumps created with older versions of sstable2json are no longer compatible with json2sstable, and imports must be made with a configuration that is identical to the export.

New and Changed Parameters

This table lists cassandra.yaml parameters that have changed between 0.7.0 and 0.8. See the cassandra.yaml reference for details on these parameters.

Option Default Value
0.8 Release  
seed_provider SimpleSeedProvider
seeds Note: now a comma-delimited list in double quotes.
memtable_total_space_in_mb 1/3 of heap
compaction_throughput_mb_per_sec 16
concurrent_compactors One per CPU
internode_encryption none
keystore conf/.keystore
keystore_password cassandra
truststore conf/.truststore
truststore_password cassandra
0.7.5 Release  
memtable_flush_queue_size 4
disk_access_mode Omitted from default config file - used for debugging only
0.7.4 Release  
rpc_min_threads 16
rpc_max_threads Unlimited
incremental_backups false
Keyspace definition Removed
0.7.3 Release  
hinted_handoff_throttle_delay_in_ms 50
compaction_preheat_key_cache true
0.7.0. > 0.7.2 Release  
max_hint_window_in_ms 3600000 (One hour)
flush_largest_memtables_at 0.75
reduce_cache_sizes_at 0.85
reduce_cache_capacity_to 0.6
concurrent_reads 32
Powered by Rackspace
Apache, Apache Cassandra, Cassandra, Apache Hadoop, Hadoop and the eye logo are trademarks of the Apache Software Foundation.