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.
Configuration File and Location
You can no longer specify the name or location of the Crate configuration file with the
CONF_FILE environment variable,
-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.
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
gateway.local.sync setting for controlling the period after which the translog is synced to disk has been renamed to
bulk.partition_creation_timeout setting has been removed.
Automatic Job Termination
jobs.keep_alive_timeout setting has been removed, meaning that you are no longer able to enable automatic job termination based on defined rules.
Crate Does Not Start on Plugin Errors
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.
Disallowing "." Character in Field Names
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 '.']