The Cassandra external database stores the status and network contact points for each node in the pool. The database must be reliable as the Rhino pool maintenance subsystem depends on it. Rhino is configured to require a Cassandra cluster to have a minimum number of Cassandra nodes. This requirement is influenced by several configurable attributes of a Cassandra deployment:
the replication strategy and replication factor; and
the data consistency level.
The replication parameters of the pool maintenance database keyspace are set in the
keyspaceReplication parameter of the
pool-maintenance configuration in
The default settings use the
SimpleStrategy with a replication factor of
This strategy uses only one Cassandra datacentre and one rack, and replicates stored data across three database nodes.
For production deployments, the
NetworkTopologyStrategy may be more appropriate.
This strategy allows Cassandra clusters to be deployed across multiple datacentres and allows for easier expansion.
Further information about how these replication parameters are used by Cassandra is provided by the Data Replication section of the Cassandra documentation.
Each Rhino node in the pool requires that the database can read or write data at a configured consistency level. This level is the minimum number of Cassandra nodes that must acknowledge a read or write operation before the operation is considered successful.
The consistency level is specified in the
basic.request.consistency configuration property for Cassandra persistence instances in the
The default consistency level is
Further information about consistency levels can be found in the How is the consistency level configured? section of the Cassandra documentation.
As each node in the pool is independently managed, each node requires its own management database. In a typical deployment, with one Rhino node per host, each host will run a management database server alongside the Rhino node. In an alternative arrangement, a single management database server cluster may provide separate database instances for each pool cluster member over the network.
By default, Rhino is configured to use PostgreSQL for the management database server.