accumulo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Armstrong <j...@ccri.com>
Subject WholeRowIterator, BatchScanner, and fetchColumnFamily don't play well together?
Date Mon, 09 Jul 2012 16:42:38 GMT
Hi everybody.

I've run across an unexpected behavior when using WholeRowIterator on a 
BatchScanner.  In case it matters, we're using cloudbase-1.3.4.

When I tell it to fetchColumnFamily(new Text("foo")) I get no results 
back, though there are definitely records in that column family and in 
the row ranges I'm scanning.  This doesn't happen when I use a scanner 
on that column family, though in that case I'm scanning over the entire 
table.

To be more explicit, some constants:

List<Range> ranges = new ArrayList<Range>();
ranges.add(new Range(new Text("bar")));
Text CF = new Text("foo");

getNewScanner() and getNewBatchScanner() create scanners for the 
appropriate table name, authorization, and number of threads.

BatchScanner batchScanner = getNewBatchScanner();
batchScanner.fetchColumnFamily(CF);
batchScanner.setRanges(ranges);

returns all the entries in row "bar" and column family "foo".

BatchScanner batchScanner = getNewBatchScanner();
batchScanner.fetchColumnFamily(CF);
batchScanner.setScanIterators(1,
                               WholeRowIterator.class.getName(),
                               UUID.randomUUID().toString());
batchScanner.setRanges(ranges);

returns nothing.

BatchScanner batchScanner = getNewBatchScanner();
batchScanner.setScanIterators(1,
                               WholeRowIterator.class.getName(),
                               UUID.randomUUID().toString());
batchScanner.setRanges(ranges);

returns an encoded entry containing all the entries in row "bar".

Scanner scanner = getNewScanner();
scanner.fetchColumnFamily(CF);
scanner.setScanIterators(1,
                          WholeRowIterator.class.getName(),
                          UUID.randomUUID().toString());

returns encoded entries containing all the entries in column family 
"foo", one for each row that contains anything in that column family.

So, why does the second case return nothing?

TIA

Mime
View raw message