private void doSend(Operation operation, int retry) {
        if (retry > 5) {
            throw new MemcachedException("No connections available");
        }

        Channel channel = null;

        for (int i = 0; i < retry; i++) {
            long l = counter.incrementAndGet();
            List<Channel> chanels = getChanels();
            if (chanels.size() == 0) {
                try {
                    TimeUnit.MILLISECONDS.sleep(500);
                } catch (InterruptedException e) {
                    //e.printStackTrace();
                }
                continue;
            } else {
                channel = chanels.get((int) (l % chanels.size()));
                break;
            }
        }

        if (channel != null) {
            channel.writeAndFlush(operation);
        } else {
            throw new MemcachedException("No connections available for:" + host + ":" + port);
        }
    }