-
Notifications
You must be signed in to change notification settings - Fork 178
mv tiered options
- merged to master
- code complete April 7, 2013
- development started April 6, 2014
- 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.
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.
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_ |