[
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.