There are a number of significant changes that have gone into the 0.9.8.5 release which you should be aware of. I've highlighted them below.
Capistrano no longer supported (use ht_cluster instead)
We're no longer supporting Capistrano for cluster administration. As you'll discover below, the names of all of the Hypertable scripts has changed, so existing Capfiles will no longer work. If you haven't already switched over to ht_cluster, now would be a good time. Just download the example cluster.def file, modify the role: statements to reference the machines in your setup, and then copy the file to /opt/hypertable/current/conf/. Once you do that, you can run tasks in the following manner:
ht cluster start
ht cluster stop
Program name cleanup
We've modified all of the scripts and programs names to begin with ht, so that the Hypertable bin/ directory can be added to your PATH environment variable. By having all the Hypertable programs and scripts start with ht, it minimizes the likelihood of name conflicts with other programs in your path. The following table describes the new naming convention.
We strongly recommend adding the Hypertable bin/ directory to your path. We plan to change the online documentation to assume that the bin/ directory is in the path. If you're running Bash, you can do that by adding the following line to your .bashrc file:
export PATH=$PATH:/opt/hypertable/current/bin
Data structure serialization format improvements
We've modified the serialization format of all data structures. The serialization format is used to persist data structures to disk or send data structures over the network and/or between processes. The new serialization format supports forward compatibility. This means that old programs can decode data structures written by new programs and vice-versa, which offers the following benefits:
NOTE: The upgrade to 0.9.8.5 is a forward-only upgrade. Once you upgrade to this version, you can't roll back to a previous version (without having to do serious surgery). However, once you upgrade to 0.9.8.5, the number of subsequent forward-only upgrades should drop considerably.
Client program name normalization
The names of the client programs previously did not follow any convention (e.g. fsclient, rsclient, master_client, ...). We've come up with a new naming convention for the client programs, whereby the name of the program is just the name of the server that it talks to with all lowercase letters. For example, the new client programs are as follows:
ht master
ht rangeserver
ht fsbroker
ht hyperspace
ht thriftbroker
Status checks now conform to Nagios plugin standard
All status checks now conform to the Nagios plugin standard. The exit status of the check script are as follows:
0 - OK
1 - WARNING
2 - CRITICAL
3 - UNKNOWN
The scripts also write a single line description to the console of the format <service> <status> - <description>. For example:
FsBroker CRITICAL - connect error
The names of the check scripts are as follows:
ht-check-fsbroker.sh
ht-check-hyperspace.sh
ht-check-master.sh
ht-check-rangeserver.sh
ht-check-thriftbroker.sh
We've also introduced a system-wide Hypertable check script:
ht-check.sh
This script performs an overall health check of Hypertable. It checks the health of all Hypertable processes on all machines in the cluster. It does not, however, check the health of the ThriftBrokers. Those can be checked independently with the ht-check-thriftbroker.sh script.
clean tasks/scripts have been renamed to destroy
There has been some confusion in the past about what "clean" does. To make it very clear that these commands completely wipe out the database, they've been renamed to destroy. For example:
ht cluster destroy
ht-destroy-database.sh
The variable PROMPT_CLEAN in the cluster.def file has also been renamed to PROMPT_DESTROY. If you're already running ht_cluster, you should make this name change in your cluster.def file.
Doug