Project

General

Profile

Actions

Subtask #7292

closed

Feature #4929: Erasure encoded placement group

erasure code: plugin backward compatibility

Added by Loïc Dachary about 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 #1

Updated by Loïc Dachary about 10 years ago

  • Description updated (diff)
Actions #2

Updated by Loïc Dachary about 10 years ago

  • Status changed from New to In Progress
Actions #3

Updated by Loïc Dachary about 10 years ago

  • % Done changed from 0 to 20
Actions #4

Updated by Loïc Dachary about 10 years ago

  • Description updated (diff)
Actions #5

Updated by Loïc Dachary about 10 years ago

  • Description updated (diff)
  • Category set to OSD
Actions #6

Updated by Loïc Dachary about 10 years ago

  • Description updated (diff)
Actions #7

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 ?

Actions #8

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)
Actions #9

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

Actions #10

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.

Actions #11

Updated by Loïc Dachary about 10 years ago

  • % Done changed from 20 to 100
  • Estimated time set to 0:00 h
Actions

Also available in: Atom PDF