Actions
Subtask #6064
closederasure code : convenience functions to code / decode
Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
OSD
Target version:
-
% Done:
0%
Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:
Description
It would be usefull to have convenience functions that work in terms of offset+length instead of chunks
- int decode(const map<int, buffer>& chunks, unsigned offset, unsigned len, bufferlist *out);
set<int> want_to_read = range_to_chunks(offset, len) // compute what chunks must be retrieved set<int> available = the up set set<int> minimum = minimum_to_decode(want_to_read, available); map<int, buffer> available_chunks = retrieve_chunks_from_osds(minimum); map<int, buffer> chunks = transcode(want_to_read, available_chunks); // repairs if necessary out = bufferptr(concat_chunks(chunks), offset - offset of the first chunk, len)
- set<int> minimum_to_decode(unsigned offset, unsigned len, const set<int> &available_chunks);
The lower level plugin interface is useful from the plugin point of view. But erasure coded pools need something that is higher level.
Actions