Any issues with pipelining requests?

Steven Grimm sgrimm at facebook.com
Wed Apr 18 06:50:24 UTC 2007


No problems. Memcached guarantees you'll receive fully-formed responses 
to all the requests over a given connection, in the order the requests 
were sent.

Obviously if you're using the UDP interface, your network might give you 
out-of-order delivery.

Those results are just what I'd expect -- you're eliminating (or at 
least greatly reducing) network round-trip time as a limitation on your 
throughput.

-Steve


Dustin Sallings wrote:
>
>     I made a change to my java memcached library over the weekend to 
> support pipelining requests.  In a few ways this simplified my code, 
> but it was a rather large performance gain.
>
>     In the ``300,000 26-byte sets'' benchmark that came up last week, 
> I found that my java client took about 30s to perform all of the same 
> sets, but it took 5 or 6 seconds for netcat to do the same on the same 
> box given pre-computed chunk of sets.
>
>     With pipelining, my java client did the same sets in 15s -- 3x 
> slower than what I'd consider ``as fast as possible'' or 2x faster 
> than my pre-pipeline state.  I'm pretty happy with that since that was 
> pre-profiling.
>
>     However, I was just reading on the twisted list that there may be 
> a problem sending requests without waiting for the results.  I am 
> receiving and processing results roughly as fast as they can come over 
> the wire if that makes a difference.  I just don't wait to process a 
> response before sending the next request.
>
>     Are there any potential problems with this?
>
> --Dustin Sallings
>
>



More information about the memcached mailing list