def METHOD_NAME(self, host):
    # First try to take one out of the pool for this host
    (server, instance) = host
    port = self.ports[host]
    connectionPool = self.connections[host]
    try:
        return connectionPool.pop()
    except KeyError:
        pass #nothing left in the pool, gotta make a new connection
    log.cache("CarbonLink creating a new socket for %s" % str(host))
    try:
        connection = socket.create_connection((server, port), self.timeout)
    except socket.error:
        self.last_failure[host] = time.time()
        raise
    else:
        connection.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
        return connection