Project

General

Profile

Actions

Subtask #7292

closed

Feature #4929: Erasure encoded placement group

erasure code: plugin backward compatibility

Added by Loïc Dachary over 10 years ago. Updated about 10 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
Category:
OSD
Target version:
-
% 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.

Related issues 1 (0 open1 closed)

Related to Ceph - Subtask #7358: erasure code : plugin upgrade documentationRejected02/06/2014

Actions
Actions

Also available in: Atom PDF