You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "William Slacum (JIRA)" <ji...@apache.org> on 2013/01/11 18:28:12 UTC

[jira] [Commented] (ACCUMULO-956) Iterator to transform key parts

    [ 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