private Map<Column, Bytes> getImpl(Bytes row, Set<Column> columns) {
env.getSharedResources().getVisCache().validate(columns);
ScannerConfiguration config = new ScannerConfiguration();
config.setSpan(Span.exact(row));
for (Column column : columns) {
config.fetchColumn(column.getFamily(), column.getQualifier());
}
RowIterator iter = getImpl(config);
Map<Column, Bytes> ret = new HashMap<>();
while (iter.hasNext()) {
Entry<Bytes, ColumnIterator> entry = iter.next();
ColumnIterator citer = entry.getValue();
while (citer.hasNext()) {
Entry<Column, Bytes> centry = citer.next();
if (columns.contains(centry.getKey())) {
ret.put(centry.getKey(), centry.getValue());
}
}
}
updateColumnsRead(row, columns);
return ret;
}