Skip to content

2.0 downgrade notes

engelsanchez edited this page Sep 3, 2014 · 1 revision

Crossing the 2.0 Rubicon

2.0 introduces major new features which are incompatible with older versions of Riak. Several of these new features depend on a new organizational structure: bucket types.

Once bucket types are activated, downgrades are no longer possible.

A warning is issued by the riak-admin command used to create and activate bucket types, in order to notify the database operators of the irreversible nature of activation.

Features that rely on bucket types:

  • Strong consistency
  • Riak Data Types (other than the older counter implementation included with Riak 1.4)
  • Riak Search 2.0 (bucket types are strongly recommended but not strictly speaking mandatory)

Bitcask downgrades

The Bitcask backend requires external assistance to be downgraded after a 2.0 upgrade. Object storage with Bitcask has undergone some modifications in Riak 2.0, such that a data format downgrade is required to back out of an upgrade from 1.3.x or 1.4.x to 2.0. You can perform this downgrade in a rolling fashion, as part of a rolling downgrade, with the following process:

  1. Stop the node
  2. Download the downgrade escript to the node. The script can be found here on GitHub: downgrade_bitcask.erl.
  3. Run the escript against your Bitcask data directory. The script will recursively find all Bitcask data files under that directory and reformat them:
escript downgrade_bitcask.erl /path/to/riak/data/bitcask

Please note that you'll need to edit the path to the Bitcask data directory according to your configuration, and you'll have to do this for each Bitcask backend that you use. Check your configuration files to ensure that you downgrade each of them.

  1. Proceed with your downgrade: install the downloaded package, start Riak, and wait for riak_kv to come up. You can check to see if riak_kv has come up by running riak-admin wait-for-service riak_kv node@nodename.