Project

General

Profile

Actions

Feature #527

closed

zero copy reads, msgr rx buffer infrastructure

Added by Sage Weil over 13 years ago. Updated about 5 years ago.

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

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

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

Actions #1

Updated by Sage Weil over 13 years ago

  • Estimated time set to 8:00 h
  • Source set to 5
Actions #2

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

Actions #3

Updated by Greg Farnum about 5 years ago

  • Project changed from Ceph to Messengers
  • Category deleted (msgr)
  • Target version deleted (v0.24)
Actions

Also available in: Atom PDF