Type: New Feature
Resolution: Won't Fix
Fix Version/s: None
CASSANDRA-2995 proposes full storage engine pluggability, which is probably unavoidable in the long run. For now though, I'd like to propose an incremental alternative that preserves the sstable model, but allows it to evolve non-linearly.
The sstable "version" field could allow for simple switching between writable sstable types, without moving all the way to differentiating between engines as
CASSANDRA-2995 requires. This can be accomplished by moving towards a "feature flags" model (with a mapping between versions and feature sets), rather than a linear versions model (where versions can be strictly ordered and all versions above X have a feature).
There are restrictions on this approach:
- It's sufficient for an alternate SSTable(Writer|Reader|*) set to require a patch to enable (rather than a JAR)
- Filenames/descriptors/components must conform to the existing conventions