accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Billie Rinaldi (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-697) Break Scanner parameterization from Key,Value to Key,{Something}
Date Tue, 24 Jul 2012 16:17:33 GMT


Billie Rinaldi commented on ACCUMULO-697:

A related feature in our API is InputFormatBase<K,V> which you can extend to provide
any type of K,V.  This was to support the ChunkInputFormat which wraps a set of Values in
an InputStream.

I could see making ScannerBase extend Iterable<E> instead of Iterable<Entry<Key,Value>>.
 Then individual scanner implementations could provide whatever types they wanted, e.g. Iterable<KeyValue>,
Iterable<Entry<Key,Value>>, Iterable<Entry<Key,Whatever>>.  We could
model the use of these after the IsolatedScanner and ClientSideIteratorScanner, e.g. Scanner
scanner = new ClientSideIteratorScanner(connector.createScanner(tableName, authorizations)).
 The default types could stay Entry<Key,Value>, and you would use a client side scanner
wrapper to translate them.
> Break Scanner parameterization from Key,Value to Key,{Something}
> ----------------------------------------------------------------
>                 Key: ACCUMULO-697
>                 URL:
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: client
>    Affects Versions: 1.5.0
>            Reporter: Josh Elser
>            Assignee: Josh Elser
> When writing a custom iterator, many times the iterator has some semantic knowledge of
what each Key/Value being returned actually means (e.g. A word count could be returning Key/Value
but really is returning an Integer/Long count in the Value). This forces the client to know
what is going to be returned and handle the cast/transformation.
> I believe it should be fairly straightforward to encapsulate this transformation inside
the Accumulo client code. I plan on investigating the possibility of changing the ScannerBase
impl, or perhaps making a TypedScannerBase, in which the iterator at the "top" of the stack
for a scan can return something other than a Value to the client.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message