Feature #6594
closedallow to have more than one PG implementation
100%
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
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.