You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Jitendra Nath Pandey (JIRA)" <ji...@apache.org> on 2013/03/13 20:58:14 UTC

[jira] [Commented] (HIVE-4160) Vectorized Query Execution in Hive

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

Jitendra Nath Pandey commented on HIVE-4160:
--------------------------------------------

    This will be an incremental work in multiple phases with no regression on current system. We will publish a design/scope document very soon.
    The main idea behind the proposal is to transform the execution engine to process a row batch at a time instead of a single row. The row batch will consist of column vectors and each operator will process the whole column vector at a time. The column vector will consist of array(s) of primitive types as far as possible.
    The expressions will be implemented for various data types using pre-compiled templates. The appropriate expressions will be added to the operators based on data types.
    A vectorized iterator interface will be implemented by the file formats to provide vectorized input to the operator tree. 

                
> Vectorized Query Execution in Hive
> ----------------------------------
>
>                 Key: HIVE-4160
>                 URL: https://issues.apache.org/jira/browse/HIVE-4160
>             Project: Hive
>          Issue Type: New Feature
>            Reporter: Jitendra Nath Pandey
>            Assignee: Jitendra Nath Pandey
>
>   Hive query execution engine currently processes one row at a time. A single row of data goes through all the operators before next row can be processed. This mode of processing is very inefficient in terms of CPU usage. Research has demonstrated that this yields very low instructions per cycle [MonetDB]. Also currently hive heavily relies on lazy deserialization and data columns go through a layer of object inspectors that identify column type, de-serialize data and determine appropriate expression routines in the inner loop. These layers of virtual method calls further slow down the processing.
> Reference: http://www-db.cs.wisc.edu/cidr/cidr2005/papers/P19.pdf

--
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