public List<UUID> findPostUUIDsByTimeRange( DateTime start, DateTime end ) {
        // this method assumes the number of keys for the range is "not too big" so as to blow
        // out thrift's frame buffer or cause cassandra to take too long and "time out"
        DateTime firstRow = calculatePostTimeGranularity(start);
        DateTime lastRow = calculatePostTimeGranularity(end);

        MultigetSliceQuery<String, UUID, byte[]> q = HFactory.createMultigetSliceQuery(keyspace, StringSerializer.get(), UUIDSerializer.get(), BytesArraySerializer.get());
        q.setColumnFamily(CF_POSTS_BY_TIME);

        // determine all the rows required to satisfy the time range and set as the 'row keys' for the query
        // each row key is "pre-decided" to be hours of the day
        DateTime current = firstRow;
        List<String> rowKeys = new LinkedList<String>();
        while ( current.isBefore(lastRow) || current.isEqual(lastRow) ) {
            rowKeys.add(hourFormatter.print(current));
            current = current.plusHours(1);
        }
        q.setKeys(rowKeys);
        q.setRange(null, null, false, 1000); // this is an assumption that there will not be more than 1000 posts in one hour

        QueryResult<Rows<String, UUID, byte[]>> qr = q.execute();
        Rows<String, UUID, byte[]> rows = qr.get();
        if ( null == rows || 0 == rows.getCount() ) {
            return null;
        }

        long startAsLong = start.getMillis();
        long endAsLong = end.getMillis();

        // loop over result rows, only adding to uuidList if Post time is between range
        List<UUID> uuidList = new LinkedList<UUID>();
        for ( Row<String, UUID, byte[]> row : rows ) {
            ColumnSlice<UUID, byte[]> slice = row.getColumnSlice();
            for ( HColumn<UUID, byte[]> col : slice.getColumns() ) {
                long t = TimeUUIDUtils.getTimeFromUUID(col.getName());
                if ( t > endAsLong ) {
                    break;
                }

                if ( t >= startAsLong ) {
                    uuidList.add(col.getName());
                }
            }
        }

        return uuidList;
    }