Support for storage engine parameters in configuration string
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
Currently, a storage engine configuration state is a single token ("ssd" or "memory" etc), and any storage-engine-specific parameters that can be changed are handled via knobs.
There should be a way to specify storage engine specific parameters as part of the storage engine configuration. Redwood will likely have several of these, such as page size, max commit buffer size, whether or not to use prefix compression, or amount of version history to maintain.
The options should probably be a set of named values which are part of the storage engine configuration string and are passed to storage engine constructors. For example, `configure ssd-redwood:pageSize=4k,prefixCompression=no`
When an existing storage server file is opened, the current configuration parameters should be used wherever possible. If any parameters can't be used because they change the on-disk format (something only the storage engine class will know) then somehow this must be reported back to the storage server so that it knows to migrate data out of this file and replace it with a new storage engine instance that uses the configured parameters.
Contributor guide
Assessment
This issue has not been assessed yet.