You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Doug Cutting (JIRA)" <ji...@apache.org> on 2009/09/11 21:20:57 UTC

[jira] Updated: (AVRO-115) remove RPC sessions

     [ https://issues.apache.org/jira/browse/AVRO-115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Doug Cutting updated AVRO-115:
------------------------------

    Attachment: AVRO-115.patch

Here's a patch that implements this, updating the spec and implementations.  It also adds a UDP-based RPC client and server and tests for these.

> remove RPC sessions
> -------------------
>
>                 Key: AVRO-115
>                 URL: https://issues.apache.org/jira/browse/AVRO-115
>             Project: Avro
>          Issue Type: Improvement
>          Components: spec
>            Reporter: Doug Cutting
>            Assignee: Doug Cutting
>         Attachments: AVRO-115.patch
>
>
> The spec currently has a notion of an RPC session.  Within a session requests and responses need not be prefixed by handshakes.
> The existing RPC implementations (python and Java) assume that all transports naturally have sessions, which is not the case.  An HTTP transport may or may not have a session, a UDP transport does not naturally have a session.  Moreover, we anticipate the implementation in Avro of a high-performance scalable transport that, e.g., permits multiplexing of requests and responses over a single TCP connection.  Establishing a session in this context creates a race condition.  Also, it would be advantageous if a single connection could service multiple protocols.
> For the above reasons, I propose we remove the notion of RPC sessions.  Each request and response payload must then be prefixed by a HandshakeRequest or HandshakeResponse respectively.  In most cases this adds just 34 bytes to requests and 4 bytes to responses.  The added runtime costs are negligible, as, instead of using a session key to access the cached protocol instead the protocol hashes are used.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.