thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Randy Abernethy <>
Subject Re: Documentation, differences multithreaded server and non-blocking server
Date Thu, 24 Oct 2013 16:47:32 GMT
Hello Lars,

>From 10,000 feet, the key difference between the Apache Thrift C++
multi-threaded blocking/non-blocking servers is that the blocking servers
create one thread per client connection and the non-blocking servers create
a pool of threads which collectively process client requests (any worker
thread can be dispatched to process any client request). The blocking model
is simpler and has fewer dependencies, the non-blocking model is more
complex and requires libevent, but is more scalable at the extreme because
it doesn't need to create 10,000 threads to manage 10,000 connections.

Happy to go into more detail if you need it.


On Thu, Oct 24, 2013 at 1:36 AM, Lars Benner <> wrote:

> I have at the moment a simple, single threaded server running in C++ and I
> figured out, I can have only a single client connection at a time. Ok this
> did not really surprise me.
> Since I need to multiple client/server connections at the same time, I
> assume I have use either a multithreaded or a non-blocking server.
> Therefore, I would like to know, what the differences between a
> multithreaded server and a non-blocking server are. I have a general
> understanding of these concepts. But I do not know, how they are
> implemented in thrift and what for implications these different concepts
> have for my server functionality implementation and the client usage.
> So exist some documentation, which I couldn't find, describing this? Or
> can somebody give me an overview from 10,000 ft?
> Thanks a lot,
> - Lars

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message