Skip to content

mv tiered options

Matthew Von-Maszewski edited this page Apr 7, 2014 · 29 revisions

Status

  • merged to master
  • code complete April 7, 2013
  • development started April 6, 2014

WARNING!

  • This initial implementation does NOT automatically migrate data from a non-tiered configuration to a tiered configuration.
  • This initial implementation does NOT detect changes in tiered option parameters and migrate data from old configuration to new configuration.

The user must stop leveldb / Riak node and manually move leveldb .sst table files from one configuration to another. There is no manual activity required if starting a fresh database with the tiered configuration.

History / Context

Google's original leveldb implementation maintained all .sst table files in a single database directory. Riak 1.3 updated the leveldb code to place .sst tables file into subdirectories that represented the "level" of the file, i.e. sst_0, sst_1, … sst_6. The Riak 1.3 change focused on speeding database repair operations. But it had a side effect. Database operators could use the subdirectories to mount alternative storage devices at each level. The database operators had to manually create all the necessary directory links. This branch automates the process of using alternative storage devices based upon levels.

Configuration / Usage

This branch introduces three configuration parameters that are only used when tiered storage is desired. The parameters assume the use of only two storage arrays: a fast array (primary) and a slow array (secondary).

leveldb option Riak 2.0 option Purpose
tiered_slow_level leveldb.tiered Number of the level that should switch to slow.
_0 is the default and disables this feature._
tiered_fast_prefix leveldb.tiered.mount.fast Path prefix for .sst files below tiered_slow_level
tiered_slow_prefix leveldb.tiered.mount.slow Path prefix for .sst files at and above tiered_slow_level

The full path for an .sst table file with tiered storage enabled:

Level Path construction
0 to tier_slow_level-1 _tiered_fast_prefix_ / _database_name_

Branch description

Clone this wiki locally