Version 0.55 of Crate introduces a lot of great features, fixes and changes. Some of these required making changes to our code base that require extra steps to upgrade your clusters than with previous Crate versions.
Note: Upgrading to 0.55 is only supported from Crate 0.52 and upwards.
Before upgrading a cluster it's strongly advised to create a backup of your current tables so you can always return to what you had before. Furthermore be prepared to restart your entire cluster.
Because of the Elasticsearch version upgrade, indices are not backwards compatible to 0.54. Be aware that once upgraded to 0.55, using the same index files in a 0.54 cluster will yield an error:
[2016-07-22 11:58:12,931][ERROR][gateway.local.state.shards] [Brian Braddock]
failed to read local state (started shards), exiting...
org.elasticsearch.ElasticsearchException: unexpected field in shard state
[index*uuid]
...
After upgrading your Crate version, indices will be rebuilt, and this process may take some time.
There have been several changes and deprecations to the following settings in 0.55, some due to the underlying upgrade to Elasticsearch, and others made for reliability.
You can no longer specify the name or location of the Crate configuration file with the CONF_FILE
environment variable, -Des.config
, -Des.default.config
, or -Delasticsearch.config
parameters. You must call it crate.yml and locate it in the config directory, or another directory specified by the CONF_DIR
environmental variable, or by the -Des.path.home
parameter. The file must be a yaml file that ends in the .yml extension.
You must now define units for time or byte based settings. This affects Settings such as cluster.routing.allocation.disk.watermark.low
for defining the lower disk threshold limit for shard allocations, or cluster.graceful*stop.timeout
for defining the maximum wait in milliseconds for reallocation processes to finish. Please update your configuration accordingly.
For example:
cluster.graceful_stop.timeout: 1h
# Not…
cluster.graceful_stop.timeout: 1
...
cluster.routing.allocation.disk.watermark.low: 250mb
# Not…
cluster.routing.allocation.disk.watermark.low: 250
The gateway.local.sync
setting for controlling the period after which the translog is synced to disk has been renamed to translog.sync_interval
.
The <bulk.partition_creation_timeout
setting has been removed.
The jobs.keep_alive_timeout
setting has been removed, meaning that you are no longer able to enable automatic job termination based on defined rules.
If one of your plugins does not load properly, Crate will now refuse to start. To remedy this, please remove any broken plugins from the plugins folder.
Tables with column names that contain a dot are now disallowed. Consider re-creating the table and migrating the data via insert by query.
2016-07-22 11:25:15,651][ERROR][gateway] [Solo] failed to read local state,
exiting...
java.lang.IllegalStateException: unable to upgrade the mappings for the index
[stocks], reason: [Field name [adj. close] cannot contain '.']
For any questions you have on upgrading your (production) cluster, join our
Slack channel, ask on
Stackoverflow, or on
Github.