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 ) ; }
Queries for rows given an enumerated list of Cassandra row keys .