avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From FURUHASHI Sadayuki <frsy...@gmail.com>
Subject Asynchronous RPC with multiple servers?
Date Mon, 14 Jun 2010 04:35:59 GMT

I'm working on distributed systems and looking for flexible RPC system, then I found Protocol
Buffers, Thrift and Avro.
I'd like to compare and test these recently proposed systems.

Our system requires clients to communicate with other multiple servers in parallel.
Here is the picture:

                +----> Server 1  \
    Client <----+----> Server 2  -- Servers proceed requirests in parallel,
                |                   then the Client gathers the results.
                +----> Server 3  /

The codes will be like following:

    Client c1 = new Client("server1:1010");
    Client c2 = new Client("server2:1010");
    Client c3 = new Client("server3:1010");
    // sends queries to each servers.
    Future<ResultChunk> f1 = c1.DoIt(query1, data1);  // Since the data is rather large,

    Future<ResultChunk> f2 = c2.DoIt(query2, data2);  // asynchronous (parallel) sending
    Future<ResultChunk> f3 = c3.DoIt(query3, data3);  // and receiving are wished.
    // gatehrs results.
    ResultChunk result1 = f1.get();
    ResultChunk result2 = f2.get();
    ResultChunk result3 = f3.get();
    // merges the results into one object.
    Result result = new Result.merge(result1, result2, result3);

My question is that Avro supports these feature? Or is there plan to implement it?
I couldn't find them on the source code. Design of RPC is still in under construction?

Thanks for any pointers,

Sadayuki Furuhashi

View raw message