apple / apple/foundationdb

Support for storage engine parameters in configuration string

Open
#2,640 3 comments 0 reactions 2 assignees Claimed by @sfc-gh-clin View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.