'Fetch counts of distinct items for each rollup interval within the range.'

def get_distinct_counts_series(self, model, keys, start, end=None, rollup=None):

    (rollup, series) = self.get_optimal_rollup_series(start, end, rollup)
    responses = {}
    with self.cluster.fanout() as client:
        for key in keys:
            c = client.target_key(key)
            r = responses[key] = []
            for timestamp in series:
                r.append((timestamp, c.pfcount(self.make_key(model, rollup, timestamp, key))))
    return {key: [(timestamp, promise.value) for (timestamp, promise) in value] for (key, value) in six.iteritems(responses)}
