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.
Updated by Loïc Dachary about 10 years ago
- Status changed from New to In Progress
Updated by Loïc Dachary about 10 years ago
- % Done changed from 0 to 20
Updated by Loïc Dachary about 10 years ago
- Description updated (diff)
- Category set to OSD
Updated by Loïc Dachary about 10 years ago
- Status changed from In Progress to Need More Info
Is there a better way to prepare an upgrade path without over engineering it ?
Updated by Loïc Dachary about 10 years ago
- Subject changed from erasure code: version the plugin to erasure code: plugin backward compatibility
- Description updated (diff)
Updated by Loïc Dachary about 10 years ago
Or maybe a increasing version and mandatory backward compatibility is all we need and compatset is overkill
Updated by Loïc Dachary about 10 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.
Updated by Loïc Dachary about 10 years ago
- % Done changed from 20 to 100
- Estimated time set to 0:00 h
Actions