Project

General

Profile

Actions

Feature #6594

closed

allow to have more than one PG implementation

Added by Lluis PJ over 10 years ago. Updated over 10 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
common
Target version:
-
% Done:

100%

Source:
other
Tags:
erasure coding
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

In order to fulfill feature #4928 [ http://tracker.ceph.com/issues/4929 ] ceph needs to allow to have more than one PG implementation.

We want to allow different pools to use different PG implementations. For example, given the following crush map:

[...]
rule datarep {
        ruleset 3
        type replicated
        min_size 1
        max_size 10
        step take default
        step choose firstn 0 type osd
        step emit
}
rule dataenc {
        ruleset 4
        type encoded
        min_size 1
        max_size 10
        step take default
        step choose firstn 0 type osd
        step emit
}
[...]

We want to create to create two different pools:

$rados mkpool test_rep 0 4
$rados mkpool test_enc 0 3

So that objects stored in test_rep use a ReplicatedPG instance, and objects in test_enc use a EncodedPG instance.

As a proof of concept, I implemented this feature by cloning ReplicatedPG into EncodedPG, and making the necessary changes for that to work. EncodedPG is replicates data, but now it will allow to have other PG implementations. You can find the implementation at: https://github.com/llpamies/ceph/tree/lluis-coding

Actions #1

Updated by Loïc Dachary over 10 years ago

  • Status changed from New to Resolved

Hi, I'm marking this ticket as resolved since you've completed the proof of concept you were after.

Actions

Also available in: Atom PDF