[Xorp-hackers] XRL/Thrift: points for further work
Bruce Simpson
bms at incunabulum.net
Mon Nov 2 10:35:39 PST 2009
Here I'll outline a few points for further work.
Some of these might not make too much sense, until I've posted an update
of where the XRL/Thrift work is currently at (to explain what's going on
in XRL).
First, a few words on scalability:
* Means different things to different people. In this case, it probably
means the ability to parallelize, which may or may not involve threads.
* One of the things which could be done, and is pretty much a
prerequisite for threading, is to decouple the direct dispatch for the
server-side of XORP RPC method calls, and implement a scheme similar to
what we need in the XRL clients -- that is, we buffer the blob, giving
us an opportunity to ship the request off to other threads, e.g. using
work queues.
* I am shortly going to re-post here some of what was discussed on
xorp-dev@ privately a year ago to underline this.
A few words on clustering and AMQP:
* AMQP is outside of the scope of this project, but it's worth a little
thinking ahead for, given that it facilitates building scalable,
fault-tolerant service clusters.
* You can regard the use of AMQP, for Thrift RPC method calls, as a
form of tunneled method call.
* Please refer to my upcoming email on XRL/Thrift technical specifics,
where I explain what tunneling the method calls involves.
* Generally, there is only 1 transport layer session to the AMQP broker
active at any time from a single client.
* The tunneling wouldn't happen in libxipc as such; rather, we'd open
an AMQP session per XRL target, and multiplex to/from this session for
each service supported by that XRL target. Thrift, and some AMQP library
yet-to-be-decided, would take care of the representation in that model.
* The implementation constraints are likely to be similar to that of
any other message-based transport.
* See other message re Thrift 3rd party use, about why
message-oriented semantics for Thrift clients are an issue.
* The AMQP broker itself isn't a naming service; it's an RPC router.
* Although an AMQP native Finder would be interesting. We have a
number of producer/consumer relationships between XRL targets, which
would be better implemented, in an AMQP world, using AMQP exchanges and
bindings, and its Publish/Subscribe idioms.
thanks,
BMS
More information about the Xorp-hackers
mailing list