zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Tarbox <briantar...@gmail.com>
Subject excessive client timeouts tied to NIO select(timeout)
Date Tue, 26 Feb 2013 17:15:43 GMT
The main client loop involves sending keep-alive pings in-between calls to
the NIO selector.select call which looks for data from the server
(including ping responses).

What I've found is that the select() which takes a timeout value takes a
hugely varying time to complete.

When asking for a max 6 second timeout on the select call I'm in fact
staying in the call for 15-25 seconds.  Which leads to starving the keep
alives which leads to timeouts.

Looking at the NIO documentation of the timeout parameter to select it says:
timeout - If positive, block for up to timeout milliseconds, *more or less*
Has anyone else seen this or have a suggestion for a work around?  This
seems like a basic flaw.  If I can't count on timely return from select it
seems to break the how keep-alive scheme.

Thanks in advance for any help!

Brian Tarbox


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