Skip to content
This repository has been archived by the owner on Aug 31, 2022. It is now read-only.

Casandra BOSH Release v8

Compare
Choose a tag to compare
@bgandon bgandon released this 22 Jun 08:21
· 68 commits to master since this release

❗️💥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 the cassandra 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 in bosh 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 and drain 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 version v9.
  • When upgrading from a v6 or earlier version, please don't modify the cassandra_password at the same time. You should re-use the previous value of cass_pwd. Failing at doing so would lead to ERROR: the password for user 'cassandra' is inconsistent by the post-start script executions of the cassandra job.

Breaking changes

  • Renamed cass_pwd into cassandra_password
  • Renamed cass_KSP into keystore_password
  • The default values for max_heap_size and heap_newsize have changed to an empty string "" value, for the Cassandra-recommended calculator to apply. If you relied on the default values (of 8G and 1G 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 new bosh_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 in v3 release notes below.

Minor fine-tunning changes

  • Better performance heap sizes below 2GB:
    • The default value of key_cache_size_in_mb has changed from 100 to null (no impact for heap sizes above 2GB)
    • The default value of file_cache_size_in_mb has changed from 512 to null (no impact for heap sizes above 2GB)
  • The default value of commitlog_sync_period_in_ms is now back to a reasonable value of 10000ms instead of 2ms. The former value could have a negative impact on performances.
  • The default value of concurrent_reads has been lowered from 32 to 16 to comply with the Cassandra recommendation, because Bosh-deployed Cassandra nodes only have one disk
  • The default value of memtable_flush_writers has changed from 1 to null (which should resolve to 2 in all cases)
  • The default value of concurrent_compactors has changed from 4 to null (which should resolve to 2 in all cases)
  • A new max_value_size_in_mb config was added, so that the existing native_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 and credentials_validity_in_ms along the existing permissions_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