GitHub user paul-rogers opened a pull request:
https://github.com/apache/drill/pull/704
DRILL-5125: Provide option to use generic code for sv remover
Performance tests showed that, for queries with a large number of
columns, it is faster to use a âgenericâ implementation of the
selection vector remover âcopierâ than to use a generated version.
This PR provides "generic" versions of the SV2 and SV4 copiers
used by the selection vector remover. The generic forms are
enabled using a new boot-time config parameter that is disabled
by default (preserving the traditional generated code.)
The generic form relies on a "virtual function" (really, just a
plain Java function) defined in the base ValueVector class and
implemented by each concrete vector: both the pre-defined and
generated forms. This form "does the right thing" for the copy
operation so that we don't need to generate code just to handle
the method dispatch operation (which Java does quite well on its
own.)
A unit tests validates that the generic form works by runing
the existing SV remover tests with the generic option turned on.
See the DRILL-5125 for details.
Add test
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/paul-rogers/drill DRILL-5125
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/704.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 #704
----
commit ba3a38a403b140149d1605decefae088765ead56
Author: Paul Rogers <[email protected]>
Date: 2016-12-12T18:06:43Z
DRILL-5125: Provide option to use generic code for sv remover
Performance tests showed that, for queries with a large number of
columns, it is faster to use a âgenericâ implementation of the
selection vector remover âcopierâ than to use a generated version.
This PR provides "generic" versions of the SV2 and SV4 copiers
used by the selection vector remover. The generic forms are
enabled using a new boot-time config parameter that is disabled
by default (preserving the traditional generated code.)
The generic form relies on a "virtual function" (really, just a
plain Java function) defined in the base ValueVector class and
implemented by each concrete vector: both the pre-defined and
generated forms. This form "does the right thing" for the copy
operation so that we don't need to generate code just to handle
the method dispatch operation (which Java does quite well on its
own.)
A unit tests validates that the generic form works by runing
the existing SV remover tests with the generic option turned on.
See the DRILL-5125 for details.
Add test
----
---
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.
---