[
https://issues.apache.org/jira/browse/TAJO-1041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14135292#comment-14135292
]
Hyunsik Choi commented on TAJO-1041:
------------------------------------
I'm designing push model iteration model instead of traditional pull-based
model. Its advantages is to reduce memory copy and reuse allocated row block.
The description is as follows:
h3. RowBlock allocations
* Each physical executor will have its in/out row blocks, which are allocated
once and are reused during a task.
* Each physical executor which bypasses tuples will have an output row block.
* Each physical executor like join, projection, and scan, which builds new
tuple will have input row block and output row block.
* We call this kind of physical executor *projectable executor*.
* An output row block of one physical executor is the input row block of its
parent physical executor.
* Each physical executor which plays a role of filter will not have any row
block.
* We call this kind of physical executor *selectable executor*. Having and
Selection are this type.
* RowBlock interface will have selection IDs, which indicate rows matched to
filter conditions of descendant nodes.
h3. Iteration model
h4. Projectable executors
* A projectable executor will call its child node (or nodes) with its input row
block.
* Then, a projectable executor will fill its output row block with processed
rows.
h4. Selectable executors
* A selectable executor will use only its output row block, which actually is
an input row block of its parent row block.
* It will add indices of qualified rows of its filter condition to the row
block.
> Change tuple-at-a-time execution model to block iteration.
> ----------------------------------------------------------
>
> Key: TAJO-1041
> URL: https://issues.apache.org/jira/browse/TAJO-1041
> Project: Tajo
> Issue Type: Improvement
> Reporter: Hyunsik Choi
> Labels: block_iteration
>
> Currently, our physical executor is based on a tuple-at-a-time model. It is a
> traditional model and is well known that it is not inefficient in terms of
> CPU costs.
> Also, I think that we can design integrated interface for row block with
> considering row block and vectorized row block. I'll add some possibility to
> extend row block iteration model to be vectorized.
> This is an umbrella issue, which is to change current execution model to
> block iteration model.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)