Overview
--------
The Apache Cassandra database is the right choice when you need scalability
and high availability without compromising performance. Linear scalability
and proven fault-tolerance on commodity hardware or cloud infrastructure
make it the perfect platform for mission-critical data. Cassandra's support
for replicating across multiple datacenters is best-in-class, providing lower
latency for your users and the peace of mind of knowing that you can survive
regional outages.
Cassandra's ColumnFamily data model offers the convenience of column indexes
with the performance of log-structured updates, strong support for materialized
views, and powerful built-in caching.
See http://cassandra.apache.org for more information.
Usage
-----
Cassandra deployments are relatively simple in that they consist of a set of
Cassandra nodes which seed from each other to create a ring of servers::
juju deploy --repository . local:cassandra
juju add-unit -n 2 cassandra
The service units will deploy and will form a single ring.
The API to Cassandra is supported through Apache Thrift; Thrift is a software
framework for scalable cross-language services development.
See http://wiki.apache.org/cassandra/ThriftInterface for more details of how
to use this API.
Cassandra recommend using one of the many client options - see
http://wiki.apache.org/cassandra/ClientOptions for moe details
To relate the Cassandra charm to a service that understands how to talk to
Cassandra using thrift::
juju deploy --repository . local:service-that-needs-cassandra
juju add-relation service-that-needs-cassandra cassandra
Configuration
-------------
Cassandra has a pretty good guess at configuring its Java memory settings to
fit the machine that it has been deployed on.
The charm does support manual configuration of Java memory settings - see the
config.yaml file for more details::
cassandra:
auto-memory: false
heap-size: 8G
new-gen-size: 250M
However be aware that its recommended that Cassandra always remains in 'real'
memory and should never be swapped out to disk so keep this in mind when
changing these options.
Cassandra sets both is minimum and maximum heap size on startup so will
pre-allocate all memory to avoid freezes during operation (this happens
during normal operation as more memory is allocated to heap.
Words of Caution
----------------
Changing the configuration of a deployed Cassandra cluster is supported; however
it will result in a restart of each Cassandra node as the changes are implemented
which may result in outages.
| 2012/03/10 James Page Upgrade to 1.0.x branch plus general housekeeping (revno 20) |
| 2011/10/13 James Page Disabled verbose script output (revno 19) |
| 2011/10/13 James Page Refined start/restart during install and configuration (revno 18) |
| 2011/10/12 James Page Updates for leader election and removal of down nodes (revno 17) |
| 2011/10/12 Clint Byrum fixing to work with local provider (revno 16) |
| 2011/10/11 James Page Updated revision file to next version (revno 15) |
| 2011/10/11 James Page Refactoring and updates to use private-address (revno 14) |
| 2011/10/06 James Page Updates for latest juju changes re private-addresses and revision (revno 13) |
| 2011/09/23 James Page Refactoring to single common script and better handling of seeding of new nodes (revno 12) |