private void optimizeGets() {
    // make sure there are at least two get operations in a row before
    // attempting to optimize them.
    optimizedOp = writeQ.remove();
    if (writeQ.peek() instanceof GetOperation) {
      OptimizedGetImpl og = new OptimizedGetImpl((GetOperation) optimizedOp);
      optimizedOp = og;

      while (writeQ.peek() instanceof GetOperation
          && og.size() < MAX_GET_OPTIMIZATION_COUNT) {
        GetOperation o = (GetOperation) writeQ.remove();
        if (!o.isCancelled()) {
          og.addOperation(o);
        }
      }

      // Initialize the new mega get
      optimizedOp.initialize();
      assert optimizedOp.getState() == OperationState.WRITE_QUEUED;
      ProxyCallback pcb = (ProxyCallback) og.getCallback();
      getLogger().debug("Set up %s with %s keys and %s callbacks", this,
          pcb.numKeys(), pcb.numCallbacks());
    }
  }
Implementation of MemcachedNode for speakers of the binary protocol.
src/main/java/net/spy/memcached/protocol/binary/BinaryMemcachedNodeImpl.java