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

Jihoon Son commented on TAJO-1343:
----------------------------------

Here is my idea.
* The producer operators (i.e., scan, aggregation, join, expr eval, and sort) 
basically maintain the singleton instance for output tuples.
* The store operator is the consumer, and doesn't require the output tuple.
* Every other operators don't have to maintain any instances for output tuples.
* Some operators (e.g., hash join, hash aggregation, etc) use the memory space 
to keep multiple instances of the tuple. They must copy the tuple read from 
their child operators when storing tuples in memory.

> Improve the memory usage of physical executors
> ----------------------------------------------
>
>                 Key: TAJO-1343
>                 URL: https://issues.apache.org/jira/browse/TAJO-1343
>             Project: Tajo
>          Issue Type: Improvement
>          Components: physical operator
>            Reporter: Jihoon Son
>            Assignee: Jihoon Son
>            Priority: Critical
>             Fix For: 0.10
>
>
> *Introduction*
> Basically, the tuple instance is maintained as a singleton in physical 
> operators. However, there are some memory-based operator types which need to 
> keep multiple tuples in the memory. In these operators, multiple instances 
> must be created for each tuple.
> *Problem*
> Currently, there are some temporal routines to avoid unexpected problems due 
> to the singleton instance of tuple. However, the methodology is inconsistent 
> and complex, which causes unexpected bugs.
> *Solution*
> A consistent methodology is needed to handle this problem. Only the operators 
> that keep multiple tuples in memory must maintain those tuples with separate 
> instances.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to