> I am trying to use mget() to get multiple data pieces using the C++
> API. When it works the performance difference is great.
> However, I seem to hit some sort of a communication hang when I have
> about 5000 or higher key requests together.

What client is that, exactly? "The C++ API" isn't specific enough.

> Has anyone seen this issue earlier? Is there a size limit to how much
> combined data can be requested using multiget?(I read its 32 MB
> somewhere but this happens for even smaller data sizes).
> The hanging is during the call to mget() (even before calling fetch)
> and it seems the server gets stuck trying to handle too many requests.
> Any idea if I might be overrunning the server buffer/ TCPIP buffer?

If you're using the binary protocol, the server starts sending back
responses as soon as you send in requests. Eventually your read buffer
fills and you won't be able to send any packets until you first read some.

iirc libmemcached has a workaround for this by starting to call the read
handler callbacks while sending requests still.

-Dormando

Reply via email to