EC API to expose locality

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After some exchange with Loic and the recent list discussion, 
the API of the EC plugin might need some clarification/extension in the ::encode method:

Currently ::encode returns a map of bufferlists where the key is the index of [ 0 .. (m+k) ] 
and the value is the encoded buffer belonging to that stripe index:

map<int, bufferlist> *encoded

If a pyramid code is used the index would be [ 0 .. (m+k+(l*l_k)) ] where l is the number of local 
parity subgroups and l_k are the number of parity stripes per subgroup. The pyramid code would just
chunk the input into the requested number of subgroups and compute local parity for them according 
to the configuration.

With this API the caller has actually no clue how to group stripes together for intelligent
placement allowing to keep subgroups with local parities together to minimize traffic 
during remapping and reconstruction.

Either there is an additional function returning the location sub-group [ 0 .. l ] for each created 
chunk or the ::encode function returns the chunks already grouped like:

vector<int, map<int, bufferlist> *encoded

Probably it would be good to have both.

However it is not clear, if you can actually remap/recover an OSD without destroying the locality 
of pyramid encoding and if you can at all define CRUSH rules honoring the idea of chunk locality where
shrinking/extension of pools keeps the locality.

Last question is, if a remapping/recovery action is only possible with the traffic going through the primary OSD.

If locality cannot be supported sufficiently now or in the future, should the API stay as it is?

The ::decode function is fine, since the plugin knows about the locality of the available chunks and will
select the cheapest decoding possible.

Cheers Andreas.--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux