Re: RDS - for stateless messenger

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

 



On Sun, Jun 26, 2016 at 10:08 AM, Avner Ben Hanoch <avnerb@xxxxxxxxxxxx> wrote:
> Hi All,
>
> *Background:*
> As I wrote once I am considering messenger based on RDS protocol.
> RDS protocol is datagram oriented like UDP; however, it is reliable and in-order like TCP and it is much more efficient than both (in case the underlying is RDMA).
> See about RDS here - https://oss.oracle.com/pipermail/rds-devel/2007-November/000228.html
>
> I am trying to convert AsyncMessenger to RDS.  The challenge is to convert from statefull connection to stateless connection (programmatically RDS is very much similar to UDP)
>
> *Question:*
> Async messenger starts each accepted socket with state=STATE_ACCEPTING and then it expects handshake.
> Unfortunately, stateless connections don't have the concept of "accept"; hence, I see two ways to recognize "accept" situations:
> 1. In case I am getting message from an address that doesn't exist in conns/accepting_conns collections.
> 2. By adding special message that will indicate that this is an "accept request" from a new client
>
> I prefer option #2 if it is possible - the question is which message I can use for indicating "Accept request"? - I thought of sending an empty datagram (without payload) for that purpose.  Do you think this idea will work?

Well, if you look through the connection startup in AsyncMessenger,
you should see that it makes use of several different tags and things.
And even if the underlying RDS protocol doesn't have a concept of
connections, your Messenger will need to implement one (at least, if
it's going to work anything like the AsyncMessenger does).

So, probably you just need to create a new "OPEN_CON" tag (or adjust
one of the existing ones that might be rendered obsolete by use of
RDS?) that gets sent before diving into the handshake pieces.

But if you're working on this you'll want to make sure you're also
following the discussions about a msgr2 protocol that have been
happening on the lists. That changes a few things and adds support for
new features that you'll want to be aware of.
-Greg
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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