You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Maryann Xue (JIRA)" <ji...@apache.org> on 2014/11/25 22:59:12 UTC
[jira] [Resolved] (PHOENIX-1456) Incorrect query results caused by
reusing buffers in SpoolingResultIterator
[ https://issues.apache.org/jira/browse/PHOENIX-1456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Maryann Xue resolved PHOENIX-1456.
----------------------------------
Resolution: Fixed
Fix Version/s: 3.2
4.2
5.0.0
> Incorrect query results caused by reusing buffers in SpoolingResultIterator
> ---------------------------------------------------------------------------
>
> Key: PHOENIX-1456
> URL: https://issues.apache.org/jira/browse/PHOENIX-1456
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 3.0.0, 4.0.0, 5.0.0
> Reporter: Maryann Xue
> Assignee: Maryann Xue
> Fix For: 5.0.0, 4.2, 3.2
>
> Attachments: 1456.patch
>
> Original Estimate: 120h
> Remaining Estimate: 120h
>
> The SpoolingResultIterator#OnDiskResultIterator switches between two pre-allocated buffers as reading buffers for the tuple result, based on the assumption that the outer ResultIterator consumes the returned tuple in a streaming fashion and will never look back/forward outside 2-tuple span.
> However, some usages fail this assumption:
> 1. OrderedResultIterator: It adds all tuples into its MappedByteBufferQueue on initialization, which is maintained by a priority queue before threshold is reached and spooling to files.
> This is not revealed in most test cases because, most importantly, OrderedResultIterator is not commonly used on clientside (only ClientProcessingPlan does)
> 2. Child/parent hash-join optimization, which uses a list of PK values to create an InListExpression.
> It might be easy to walk around the second usage here though, but may need more consideration on the first one.
> I am thinking to take away SpoolingResultIterator at all if there is an outer ResultIterator being OrderedResultIterator.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)