Uploaded image for project: 'Spymemcached Java Client'
  1. Spymemcached Java Client
  2. SPY-94

handle disappearing nodes better, do not block io for other operations


    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: .next
    • Component/s: None
    • Security Level: Public
    • Labels:


      In testing, we've found the client can end up blocked until the continuious op timeout comes along and kills a dead connection.

      Right now, in practice, this "network cable falls out" mode is worse than it needs to be since the handleIO() method on the evented IO loop blocks waiting for something to do. Though it's not 100% clear why, it's believed to be related to all of the caller threads eventually blocking on the "int selected = selector.select(delay);" in that method. Since our continuous timeout threshold is 1000 that means (worst case) 1000*timeout until we dump the connection, which could be several minutes. Ideally, we'd probably push this IO down a layer so data wanting to go to a particular node from a new caller isn't caught up in everything else going on. There may be a simpler fix though, since these should all be non-blocking and the selector.select() should pretty much always come back with something.


        No reviews matched the request. Check your Options in the drop-down menu of this sections header.


          There are no comments yet on this issue.


            • Assignee:
              daschl Michael Nitschinger
              ingenthr Matt Ingenthron
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created:

                Gerrit Reviews

                There are no open Gerrit changes