Hi,
I am using a prefix mechanism for storing row keys and I have a separate
table to store my secondary index.
Attached is a snapshot of the schema.
Whenever I find an existing ISBN in ISBNs table, I extract the prefix key
and over-write the existing record in Lists table with a new timestamp.
I am using a scanner to extract records of a particular list (prefix):
------------------------------------------------------------------------------------------------------------------------
List<Stocklists> list = new ArrayList<Stocklists>();
byte [] startRow = PrefixKey.createKeyWithPrefix(prefix,0);
byte [] stopRow =
PrefixKey.createKeyWithPrefix(prefix,Integer.MAX_VALUE);
Scan scan = new Scan(startRow, stopRow);
scan.setTimeStamp(timestamp);
scan.addFamily(Bytes.toBytes(Constants.StocklistsConstants.TAB_STOCKLISTS_CF_DETAIL));
try {
ResultScanner rs = table.getScanner(scan);
Result rDetail = null;
while((rDetail = rs.next()) != null) {
list.add(getStocklistsFromResult(rDetail));
}
rs.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return list;
------------------------------------------------------------------------------------------------------------------------
The issue is that I get 5 records for list 1, but I get only 4 records for
list 2.
I should have got 5 records for list 2 as well, because there are 2 versions
(timestamps) of the same value present.
What am I missing?
Regards,
Subhash Bhushan.