accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William Slacum (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-956) Iterator to transform key parts
Date Fri, 11 Jan 2013 17:28:12 GMT

    [ 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

Mime
View raw message