[ 
https://issues.apache.org/jira/browse/ACCUMULO-956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13551289#comment-13551289
 ] 

William Slacum commented on ACCUMULO-956:
-----------------------------------------

You may want to think about being able to make an inversion/reversal function 
part of your interface, otherwise I don't believe you can have a function that 
transforms arbitrary subsets of keys associated with a given prefix.

Say I have a sequence of keys for a row {{r}}:


{{r cf: 1 [v1]}}
{{r cf: 2 [v2]}}
{{r cf: 3 [v3]}}
{{r cf: 4 [v4]}}
{{r cf: 5 [v5]}}

Now let's say I want a transforming iterator that does aggregates the values 
with odd and even qual
ifiers into a list, such that the sequence above generates two keys:

{{r cf: even [v2, v4]}}
{{r cf: odd [v1, v3, v5]}}

After I generate each entry and return them to the client, it's possible the 
iterator stack gets torn down and rebuilt. If it happens after {{r cf: even 
[v2, v4]}}, the new stack will be seeked with a range that has a non-inclusive 
start key of {{r cf: even}}. That is after all of the data used to generate the 
transformed set of keys, so a client would never see the key with the 'odd' 
column qualifier.

It's also possible that this was never an intended use of the transforming 
iterator, but it's something to keep in mind.
                
> Iterator to transform key parts
> -------------------------------
>
>                 Key: ACCUMULO-956
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-956
>             Project: Accumulo
>          Issue Type: Improvement
>            Reporter: Brian Loss
>             Fix For: 1.5.0
>
>         Attachments: key_transforming_iterator.patch
>
>
> Iterators that transform parts of the key can be tricky if any transformation 
> affects sort ordering.  Implement an iterator that takes care of the tricky 
> details that come with modifying sort order (e.g., handling scan-time 
> iterator reconstruction and the associated seek).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to