Feature #527
closedzero copy reads, msgr rx buffer infrastructure
0%
Description
Currently all messages read off the wire (include read results) go into newly allocated buffers. This results in a data copy for users of the librados C API, who specify an existing buffer.
Modify the messenger infrastructure to allow specifying a buffer to read a particular message type/tid data payload into.
Include infrastrcture for locking said buffer, so that racing messages coming in off the wire (say, from 2 osds) don't fight for a buffer. And so that the buffer can be yanked away when a result is read (we are not allowed to touch the user buffer after we return). This will require some locking surrounding the tcp read in SimpleMessenger's read_message().
This will likely also be useful for infiniband support.
See this thread: http://marc.info/?t=128437909600001&r=1&w=2
Updated by Sage Weil over 13 years ago
- Estimated time set to 8:00 h
- Source set to 5
Updated by Sage Weil over 13 years ago
- Category set to msgr
- Status changed from New to Resolved
- Assignee set to Sage Weil
commit:7f38858c0c19db36c5ecf36cb4d333579981c811
Updated by Greg Farnum about 5 years ago
- Project changed from Ceph to Messengers
- Category deleted (
msgr) - Target version deleted (
v0.24)