quickstep-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jianqiao <...@git.apache.org>
Subject [GitHub] incubator-quickstep pull request #171: QUICKSTEP-68 Reorder intermediate rel...
Date Sun, 29 Jan 2017 20:02:39 GMT
GitHub user jianqiao opened a pull request:


    QUICKSTEP-68 Reorder intermediate relations'  attributes to improve copy performance.

    Currently, all the intermediate relations (i.e. temporary relations created during query
execution) have `SPLIT_ROW_STORE` layouts. One existing optimization that improves copy performance
for `SPLIT_ROW_STORE` layout is that, if two (or more) attributes are consecutive in both
the source relation and the destination relation, then we can memory-copy the attributes'
byte stream with just one `std::memcpy` call.
    This PR is a complementary improvement that it adjusts the ordering of the attributes
in the physical plan to maximize the opportunity of copying consecutive attributes – i.e.
to minimize the number of `std::memcpy` calls.
    This PR uses a simple greedy algorithm to reorder the attributes, which works well with
SSB/TPCH workloads. The algorithm may be further improved later.
    The feature can be turned on/off (default is **on**) with the `-reorder_columns` flag.

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

    $ git pull https://github.com/apache/incubator-quickstep reorder-attrs

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


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

    This closes #171
commit 2c1c0905b18e7ecd018a3a05b9db03fdf987720b
Author: Jianqiao Zhu <jianqiao@cs.wisc.edu>
Date:   2017-01-13T00:41:17Z

    Reorder output attribute order to improve copy performance.


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 infrastructure@apache.org or file a JIRA ticket
with INFRA.

View raw message