All of lore.kernel.org
 help / color / mirror / Atom feed
* OOB message roll into Messenger interface
@ 2016-09-03 16:01 Haomai Wang
  2016-09-06 13:17 ` Sage Weil
  0 siblings, 1 reply; 10+ messages in thread
From: Haomai Wang @ 2016-09-03 16:01 UTC (permalink / raw)
  To: ceph-devel

Background:
Each osd has two heartbeat messenger instances to maintain front/back
network available. It brings lots of connections and messages overhead
in scale out cluster. Actually we can combine these heartbeat
exchanges to public/cluster messengers to reduce tons of
connections(resources).

Then heartbeat message should be OOB and shared the same thread/socket
with normal message channel. So it can exactly represent the heartbeat
role for real IO message. Otherwise, heartbeat channel's status can't
indicate the real IO message channel status. Because different socket
uses different send buffer/recv buffer, if real io message blocked,
oob message may be healthy.

Besides OSD's heartbeat things, we have logic PING/PONG lived in
Objecter Ping/WatchNotify Ping etc. For the same goal, they could
share the heartbeat message.

In a real rbd use case env, if we combines these ping/pong messages,
thousands of messages could be avoided which means lots of resources.

As we reduce the heartbeat overhead, we can reduce heartbeat interval
and increase frequency which help a lot to the accurate of cluster
failure detection!

Design:

As discussed in Raleigh, we could defines these interfaces:

int Connection::register_oob_message(identitfy_op, callback, interval);

Users like Objecter linger ping could register a "callback" which
generate bufferlist used to be carried by heartbeat message.
"interval" indicate the user's oob message's send interval.

"identitfy_op" indicates who can handle the oob info in peer side.
Like "Ping", "OSDPing" or "LingerPing" as the current message define.

void Dispatcher::ms_dispatch_oob(Message*)

handle the oob message with parsing each oob part.

So lots of timer control in user's side could be avoided via callback
generator. When sending, OOB message could insert the front of send
message queue but we can't get any help from kernel oob flag since
it's really useless..

Any suggestion is welcomed!

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

end of thread, other threads:[~2016-09-07  2:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-03 16:01 OOB message roll into Messenger interface Haomai Wang
2016-09-06 13:17 ` Sage Weil
2016-09-06 13:33   ` Haomai Wang
2016-09-06 14:06     ` Sage Weil
2016-09-06 14:15       ` Haomai Wang
2016-09-06 17:42         ` Gregory Farnum
2016-09-06 18:06           ` Sage Weil
2016-09-07  2:46             ` Haomai Wang
2016-09-07  2:58               ` Matt Benjamin
2016-09-07  2:43           ` Haomai Wang

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.