Project

General

Profile

Subtask #7292

Feature #4929: Erasure encoded placement group

erasure code: plugin backward compatibility

Added by Loic Dachary over 5 years ago. Updated over 5 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
Category:
OSD
Target version:
-
Start date:
01/31/2014
Due date:
% Done:

100%

Estimated time:
0.00 h
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

Related to Ceph - Subtask #7358: erasure code : plugin upgrade documentation Rejected 02/06/2014

History

#1 Updated by Loic Dachary over 5 years ago

  • Description updated (diff)

#2 Updated by Loic Dachary over 5 years ago

  • Status changed from New to In Progress

#3 Updated by Loic Dachary over 5 years ago

  • % Done changed from 0 to 20

#4 Updated by Loic Dachary over 5 years ago

  • Description updated (diff)

#5 Updated by Loic Dachary over 5 years ago

  • Description updated (diff)
  • Category set to OSD

#6 Updated by Loic Dachary over 5 years ago

  • Description updated (diff)

#7 Updated by Loic Dachary over 5 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 ?

#8 Updated by Loic Dachary over 5 years ago

  • Subject changed from erasure code: version the plugin to erasure code: plugin backward compatibility
  • Description updated (diff)

#9 Updated by Loic Dachary over 5 years ago

Or maybe a increasing version and mandatory backward compatibility is all we need and compatset is overkill

#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.

#11 Updated by Loic Dachary over 5 years ago

  • % Done changed from 20 to 100
  • Estimated time set to 0.00 h

Also available in: Atom PDF