GitHub user nongli opened a pull request:

    https://github.com/apache/spark/pull/10628

    [SPARK-12635][SQL] Add ColumnarBatch, an in memory columnar format for 
execution.

    There are many potential benefits of having an efficient in memory columnar 
format as an alternate
    to UnsafeRow. This patch introduces ColumnarBatch/ColumnarVector which 
starts this effort. The
    remaining implementation can be done as follow up patches.
    
    As stated in the in the JIRA, there are useful external components that 
operate on memory in a
    simple columnar format. ColumnarBatch would serve that purpose and could 
server as a
    zero-serialization/zero-copy exchange for this use case.
    
    This patch supports running the underlying data either on heap or off heap. 
On heap runs a bit
    faster but we would need offheap for zero-copy exchanges. Currently, this 
mode is hidden behind one
    interface (ColumnVector).
    
    This differs from Parquet or the existing columnar cache because this is 
*not* intended to be used
    as a storage format. The focus is entirely on CPU efficiency as we expect 
to only have 1 of these
    batches in memory per task. The layout of the values is just dense arrays 
of the value type.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nongli/spark spark-12635

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/10628.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #10628
    
----
commit 381492eee072a8e1a536103db1e6afcff008b6b1
Author: Nong <[email protected]>
Date:   2016-01-01T05:12:44Z

    [SPARK-12635][SQL] Add ColumnarBatch, an in memory columnar format for 
execution.
    
    There are many potential benefits of having an efficient in memory columnar 
format as an alternate
    to UnsafeRow. This patch introduces ColumnarBatch/ColumnarVector which 
starts this effort. The
    remaining implementation can be done as follow up patches.
    
    As stated in the in the JIRA, there are useful external components that 
operate on memory in a
    simple columnar format. ColumnarBatch would serve that purpose and could 
server as a
    zero-serialization/zero-copy exchange for this use case.
    
    This patch supports running the underlying data either on heap or off heap. 
On heap runs a bit
    faster but we would need offheap for zero-copy exchanges. Currently, this 
mode is hidden behind one
    interface (ColumnVector).
    
    This differs from Parquet or the existing columnar cache because this is 
*not* intended to be used
    as a storage format. The focus is entirely on CPU efficiency as we expect 
to only have 1 of these
    batches in memory per task.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to