Feature #4929: Erasure encoded placement group
erasure code: plugin backward compatibility
The goal is to allow Giant to install upgraded backward compatible erasure-code plugins so that pools created with Firefly erasure-code plugins keep working. Only once the whole cluster is upgraded to Giant will the new behavior of the erasure-code plugins become available.
- const CompatSet &ErasureCodeInterface::get_compat() const retrieve the plugin capabilities
- CompatSet ErasureCodeInterface::set_compat() forces a subset of the supported capabilities and the plugin is expected to behave accordingly, i.e. switch to backward compatibility mode.
- When a new pool is created get_compat() is stored into pg_pool_t::properties as compat_set=XXXXX
- Ceph feature CEPH_FEATURE_OSD_ERASURE_CODES implies compatset("BASE")
- In the future Ceph feature CEPH_FEATURE_OSD_ERASURE_CODES_V1 will map to compatset("BASE,SOMETHING"). New pools will be created with this compatset only when the whole cluster is upgraded.
- Existing pools keep using the compatset they were created with. The plugins are expected to be backward compatible and support the behavior matching the old compatset.
#10 Updated by Loic Dachary over 5 years ago
- Status changed from Need More Info to Rejected
- translation missing: en.field_remaining_hours set to 0.0
For Firefly it is enough to document. If a new backward compatible plugin is introduced in Giant, it will need to have another name to not interfere with existing pools.