private Iterator<Record> rowQuery(DeltaPlacement placement,
                                      List<Map.Entry<ByteBuffer, Key>> keys,
                                      ReadConsistency consistency) {
        // Build the list of row IDs to query for.
        List<ByteBuffer> rowIds = Lists.transform(keys, entryKeyFunction());

        // Query for Delta & Compaction info, just the first 50 columns for now.
        final Rows<ByteBuffer, DeltaKey> rows = execute(placement.getKeyspace()
                        .prepareQuery(placement.getBlockedDeltaColumnFamily(), SorConsistencies.toAstyanax(consistency))
                        .getKeySlice(rowIds)
                        .withColumnRange(_maxColumnsRange),
                "query %d keys from placement %s", rowIds.size(), placement.getName());

        // Track metrics
        _randomReadMeter.mark(rowIds.size());

        // Return an iterator that decodes the row results, avoiding pinning multiple decoded rows into memory at once.
        return decodeRows(keys, rows, _maxColumnsRange.getLimit(), consistency);
    }
private Iterator < Record > rowQuery ( DeltaPlacement placement , List < Map . Entry < ByteBuffer , Key > > keys , ReadConsistency consistency ) { List < ByteBuffer > rowIds = Lists . transform ( keys , entryKeyFunction ( ) ) ; final Rows < ByteBuffer , DeltaKey > rows = execute ( placement . getKeyspace ( ) . prepareQuery ( placement . getBlockedDeltaColumnFamily ( ) , SorConsistencies . toAstyanax ( consistency ) ) . getKeySlice ( rowIds ) . withColumnRange ( _maxColumnsRange ) , "query %d keys from placement %s" , rowIds . size ( ) , placement . getName ( ) ) ; _randomReadMeter . mark ( rowIds . size ( ) ) ; return decodeRows ( keys , rows , _maxColumnsRange . getLimit ( ) , consistency ) ; }
Queries for rows given an enumerated list of Cassandra row keys.