thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Geyer" <jensge...@hotmail.com>
Subject Re: Need advice for parallel requests
Date Mon, 11 Aug 2014 10:33:49 GMT
Hi,

> each node could send multiple requests (without waiting
> for response from previous requests) to any other nodes.

If I get the problem right, you want to match incoming (async) responses 
against a list of known outstanding requests. A proven solution is to add a 
correlation ID to request and response, which can be basically anything (we 
mostly use UUIDs). The only important thing is that the server in the 
response always sends back the ID found the request.

BTW, your scenario calls for oneway calls. Have a look at them.

Have fun,
JensG


-----Urspr√ľngliche Nachricht----- 
From: Ben Craig
Sent: Saturday, August 9, 2014 7:22 PM
To: user@thrift.apache.org
Subject: Re: Need advice for parallel requests

The easiest solution would be to create multiple connections / client
objects... possibly even one client object per request.  You should see if
that will perform well enough for your requirements first.  If it doesn't,
then you will need to do some code generator work to make a thread safe
client object, and a server that can process multiple requests from the
same connection in parallel.  Thrift's current C++ servers will only
process one request at a time on a given connection, though multiple
connections are processed in parallel.

All of the current C++ servers respect the sequence id that is handed to
them, but the current C++ clients always set a sequence id of zero.  Until
you have a thread safe client object, you don't really need the sequence
id.

Jaguar Xiong <xiong.jaguar@gmail.com> wrote on 08/09/2014 10:40:06 AM:

> From: Jaguar Xiong <xiong.jaguar@gmail.com>
> To: user@thrift.apache.org,
> Date: 08/09/2014 10:40 AM
> Subject: Need advice for parallel requests
>
> Hi,
>      We are considering using thrift for peer to peer communicaiton, the

> system contains multiple nodes, and each node could send multiple
> requests (without waiting for response from previous requests) to any
> other nodes.
>      But looking into message definition, I could find message
> type(call,response,exception,etc), sequence number, which seems fit the
> purpose. But I don't know if any of the existing Server (TSimpleServer,
> TNonblockingServer, etc) really fit my need.
>      Could you share some ideas on existing components, or any starting
> point for implement such feature?
>
> Thanks!
> Jaguar 


Mime
View raw message