Re: Messenger V2: multiple bind support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On 1 Nov 2017, at 15:19, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
> 
> 
> There's sort of two pieces here, right?
> 1) From the Dispatcher perspective, we want a single "Messenger" that
> it talks to. (At least, I'm pretty sure. Unless we need to be making
> routing decisions using internal data? I really hope that never comes
> up.) That could be set up by having multiple Messenger implementations
> behind a "UnifyingMessenger" abstraction layer with pretty minimal
> changes.

I agree, with the current code the solution would be to share the same dispatcher
across multiple messenger instances.

> 
> 2) From an implementation perspective, which data structures do we end
> up needing to share in order to have a daemon listening on multiple
> ports?
> 
> So, from the SimpleMessenger perspective, I don't think we get much
> out of trying to build multi-bind into it. We'd basically get to
> eliminate the duplicated DIspatchQueue, which is not very interesting.
> (Modulo some flow control stuff, perhaps.) From an AsyncMessenger
> implementation perspective, that calculus might shift since we're
> running on a thread pool, but I'm not deeply familiar with the code
> internals.
> 
> But I'm curious what brings this up. I thought you were working on the
> v2 protocol — does something in that somehow hinge on the server-side
> implementation of multiple networks?

I remembered this while talking with Joao about why the Mons bind to a single
network interface even if in ceph.conf the public_network value contains multiple
networks.
Then I thought that maybe the mons only bind to a single interface because
it would be too cumbersome to start a single messenger for each network
interface and manage the shared dispatcher. Therefore, since I was already
making changes to the async messenger implementation, I could see if
it was easy to support multiple-bind in the messenger code and make this
functionality available to other modules with minimal code changes.

The V2 protocol implementation does not depend on the multiple bind
functionality, so I would just implement it if people would find it very
useful.

> -Greg

Attachment: signature.asc
Description: Message signed with OpenPGP


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux