All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] RFC: Enable clients to distinguish busy and unreachable OSDs
@ 2011-06-22 18:26 Jim Schutt
  2011-06-22 18:26 ` [PATCH] ceph: distinguish between unreachable and busy osds when resetting a connection Jim Schutt
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Jim Schutt @ 2011-06-22 18:26 UTC (permalink / raw)
  To: ceph-devel; +Cc: Jim Schutt

Previously, when clients' sustained offered write load exceeded the
sustained throughput of the OSDs, normal operation was that client
messages timed out while waiting to be processed by the OSDs.  The
client response to this was to reset the connection to the OSD
handling a timed-out message.

That has at least two types of impact:
    
- the reset frequently happens while data is being sent, so data
  that was successfully received must be discarded and resent.

- after several such connection resets, many sockets can remain open,
  waiting for readers to be granted space by the policy throttler,
  so that they can notice that the pipe has been shut down, and the
  socket can be closed.

This patchset causes Ceph OSDs to send keepalives when waiting for 
sufficient buffer space to receive a message from a client. There is
also a companion kernel client patch that causes clients to notice
the keepalives, and not reset a connection serving a timed-out
message if anything, particularly a keepalive, has been received
recently.

This patchset also has the operational impact of eliminating client log
messages about resetting OSDs under normal operation with a heavy write
load, which makes it easier to notice other issues in the client logs.


Jim Schutt (3):
  common/Throttle: Remove unused return type on Throttle::get()
  common/Throttle: Add timed_wait().
  msgr: Send keepalive periodically when waiting in policy throttler

 src/common/Throttle.h      |   45 +++++++++++++++++++++++++++++++++++++++++--
 src/common/config.cc       |    1 +
 src/common/config.h        |    1 +
 src/msg/SimpleMessenger.cc |    6 ++++-
 4 files changed, 49 insertions(+), 4 deletions(-)



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-06-23 19:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-22 18:26 [PATCH 0/3] RFC: Enable clients to distinguish busy and unreachable OSDs Jim Schutt
2011-06-22 18:26 ` [PATCH] ceph: distinguish between unreachable and busy osds when resetting a connection Jim Schutt
2011-06-22 18:26 ` [PATCH 1/3] common/Throttle: Remove unused return type on Throttle::get() Jim Schutt
2011-06-22 18:26 ` [PATCH 2/3] common/Throttle: Add timed_wait() Jim Schutt
2011-06-23 11:02   ` Colin McCabe
2011-06-23 15:53     ` Jim Schutt
2011-06-23 17:14       ` Colin Patrick McCabe
2011-06-22 18:26 ` [PATCH 3/3] msgr: Send keepalive periodically when waiting in policy throttler Jim Schutt
2011-06-22 20:31 ` [PATCH 0/3] RFC: Enable clients to distinguish busy and unreachable OSDs Sage Weil
2011-06-22 21:22   ` Sage Weil
2011-06-23 14:22     ` Jim Schutt
2011-06-23 19:05       ` Jim Schutt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.