Interface MemcachedNode

All Known Implementing Classes:
AsciiMemcachedNodeImpl, BinaryMemcachedNodeImpl, MemcachedNodeROImpl, TCPMemcachedNodeImpl

public interface MemcachedNode
Interface defining a connection to a memcached server.
  • Method Details

    • copyInputQueue

      void copyInputQueue()
      Move all of the operations delivered via addOperation into the internal write queue.
    • destroyInputQueue

      Collection<Operation> destroyInputQueue()
      Extract all queued items for this node destructively. This is useful for redistributing items.
    • setupResend

      void setupResend()
      Clear the queue of currently processing operations by either cancelling them or setting them up to be reapplied after a reconnect.
    • fillWriteBuffer

      void fillWriteBuffer(boolean optimizeGets)
      Fill the write buffer with data from the next operations in the queue.
      Parameters:
      optimizeGets - if true, combine sequential gets into a single multi-key get
    • transitionWriteItem

      void transitionWriteItem()
      Transition the current write item into a read state.
    • getCurrentReadOp

      Operation getCurrentReadOp()
      Get the operation at the top of the queue that is requiring input.
    • removeCurrentReadOp

      Operation removeCurrentReadOp()
      Remove the operation at the top of the queue that is requiring input.
    • getCurrentWriteOp

      Operation getCurrentWriteOp()
      Get the operation at the top of the queue that has information available to write.
    • removeCurrentWriteOp

      Operation removeCurrentWriteOp()
      Remove the operation at the top of the queue that has information available to write.
    • hasReadOp

      boolean hasReadOp()
      True if an operation is available to read.
    • hasWriteOp

      boolean hasWriteOp()
      True if an operation is available to write.
    • addOp

      void addOp(Operation op)
      Add an operation to the queue. Authentication operations should never be added to the queue, but this is not checked.
    • insertOp

      void insertOp(Operation o)
      Insert an operation to the beginning of the queue. This method is meant to be invoked rarely.
    • getSelectionOps

      int getSelectionOps()
      Compute the appropriate selection operations for the channel this MemcachedNode holds to the server.
    • getRbuf

      ByteBuffer getRbuf()
      Get the buffer used for reading data from this node.
    • getWbuf

      ByteBuffer getWbuf()
      Get the buffer used for writing data to this node.
    • getSocketAddress

      SocketAddress getSocketAddress()
      Get the SocketAddress of the server to which this node is connected.
    • isActive

      boolean isActive()
      True if this node is active. i.e. is is currently connected and expected to be able to process requests
    • isAuthenticated

      boolean isAuthenticated()
      True if this node is authenticated.
    • lastReadDelta

      long lastReadDelta()
      Milliseconds since last successful read.
    • completedRead

      void completedRead()
      Notify node of successful read. This is used so the node can keep track of any internal debugging or state it cares about on read.
    • reconnecting

      void reconnecting()
      Notify this node that it will be reconnecting.
    • connected

      void connected()
      Notify this node that it has reconnected.
    • getReconnectCount

      int getReconnectCount()
      Get the current reconnect count.
    • registerChannel

      void registerChannel(SocketChannel ch, SelectionKey selectionKey)
      Register a channel with this node.
    • setChannel

      void setChannel(SocketChannel to)
      Set the SocketChannel this node uses.
    • getChannel

      SocketChannel getChannel()
      Get the SocketChannel for this connection.
    • setSk

      void setSk(SelectionKey to)
      Set the selection key for this node.
    • getSk

      SelectionKey getSk()
      Get the selection key from this node.
    • getBytesRemainingToWrite

      int getBytesRemainingToWrite()
      Get the number of bytes remaining to write.
    • writeSome

      int writeSome() throws IOException
      Write some bytes and return the number of bytes written.
      Returns:
      the number of bytes written
      Throws:
      IOException - if there's a problem writing
    • fixupOps

      void fixupOps()
      Fix up the selection ops on the selection key.
    • authComplete

      void authComplete()
      Let the node know that auth is complete. Typically this would mean the node can start processing and accept new operations to its input queue.
    • setupForAuth

      void setupForAuth()
      Tell a node to set up for authentication. Typically this would mean blocking additions to the queue. In a reconnect situation this may mean putting any queued operations on hold to get to an auth complete state.
    • setContinuousTimeout

      void setContinuousTimeout(boolean timedOut)
      Count 'time out' exceptions to drop connections that fail perpetually.
      Parameters:
      timedOut -
    • getContinuousTimeout

      int getContinuousTimeout()
    • getConnection

      MemcachedConnection getConnection()
    • setConnection

      void setConnection(MemcachedConnection connection)