This repository has been archived by the owner on Aug 31, 2022. It is now read-only.
Casandra BOSH Release v8
❗️💥Major release containing breaking changes💥❗️
New features
- Add optional BPM support. To use BPM when running the Cassandra daemon, apply the
use-bpm.yml
ops file to your deployment (#34). - Support 2-nodes Cassandra clusters and 1-node “standalone” setups through the introduction of a new
system_auth_keyspace_replication_factor
configuration property that defaults to the number of seeds in the cluster. - Rework documentation to document BOSH 2.0 usage, base deployment and ops files (#30).
- Greatly improved the documentation fo configuration properties in the
spec
file of thecassandra
job, based on the current Cassandra documentation (#37). - Introduce a new effective mapping of the BOSH availability zones to Cassandra DCs and Racks (#39). Now any topology (Bosh availability zones corresponding to different DCs or different Cloud AZs) can be effectively modeled in your deployment.
- Support cluster scale-in operations, just decreasing the
instances
properties of instance groups (#40). You could already add nodes to the cluster (scale-out operations), and now you can gracefully remove nodes. Warning: when scaling then cluster in to one sinlge node, you will experience downtime because that remaining node will be restarted while its config is re-rendered. - Simplify the default deployment manifests at maximum, removing unnecessary default values (#41)
- Introduce a new
default-vars.yaml
file to be added as a--vars-file
argument inbosh deploy
, compatible with deploying in BOSH-Lite (#55) - Forked a cassandra-deployment repository for maintaining deployment manifests in a dedicated repository
- Allow updating many times the password of the admin
cassandra
user (#48) - Improved logging of
pre-start
,post-start
anddrain
scripts (#49)
Upgrade notes
- A new cassandra-deployment is now holding the deployment files for this Cassandra BOSH Release. Go check it out! The
deployment
subdirectory here will be deleted in versionv9
. - When upgrading from a
v6
or earlier version, please don't modify thecassandra_password
at the same time. You should re-use the previous value ofcass_pwd
. Failing at doing so would lead toERROR: the password for user 'cassandra' is inconsistent
by thepost-start
script executions of thecassandra
job.
Breaking changes
- Renamed
cass_pwd
intocassandra_password
- Renamed
cass_KSP
intokeystore_password
- The default values for
max_heap_size
andheap_newsize
have changed to an empty string""
value, for the Cassandra-recommended calculator to apply. If you relied on the default values (of8G
and1G
respectively) previously defined, then update your deployment manifest to explicitly set these. - Any topology mapping previously defined in
topology
has to be translated to the newbosh_to_cassandra_topology_mapping
scheme. - This version drops support for the
persistent_directory
configuration property. Now/var/vcap/store/cassandra
is hardcoded to comply with standard BOSH conventions. If you have customized this property in your deployment manifests, please go back to the default value before upgrading. For details about how to do this, you can refer to the migration path we've suggested inv3
release notes below.
Minor fine-tunning changes
- Better performance heap sizes below 2GB:
- The default value of
key_cache_size_in_mb
has changed from100
tonull
(no impact for heap sizes above 2GB) - The default value of
file_cache_size_in_mb
has changed from512
tonull
(no impact for heap sizes above 2GB)
- The default value of
- The default value of
commitlog_sync_period_in_ms
is now back to a reasonable value of10000
ms instead of2
ms. The former value could have a negative impact on performances. - The default value of
concurrent_reads
has been lowered from32
to16
to comply with the Cassandra recommendation, because Bosh-deployed Cassandra nodes only have one disk - The default value of
memtable_flush_writers
has changed from1
tonull
(which should resolve to2
in all cases) - The default value of
concurrent_compactors
has changed from4
tonull
(which should resolve to2
in all cases) - A new
max_value_size_in_mb
config was added, so that the existingnative_transport_max_frame_size_in_mb
config can actually be tweaked, because it requires the former to be modified accordingly - Add new configs for
roles_validity_in_ms
andcredentials_validity_in_ms
along the existingpermissions_validity_in_ms
, for consistency
Deployment
See the standard manifests in the cassandra-deployment repository. Here is the release definition for this specific version:
releases:
- name: cassandra
version: "8"
url: https://github.com/orange-cloudfoundry/cassandra-boshrelease/releases/download/v8/cassandra-8.tgz
sha1: e8b8221f89a09f66e015d9e2356fa2d4a23d1aa9