Actions
Subtask #7292
closedFeature #4929: Erasure encoded placement group
erasure code: plugin backward compatibility
% Done:
100%
Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:
Description
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.
Actions