Uh oh!
There was an error while loading. Please reload this page.
[Spark-1461] Deferred Expression Evaluation (short-circuit evaluation) - #446
[Spark-1461] Deferred Expression Evaluation (short-circuit evaluation)#446chenghao-intel wants to merge 4 commits into
Conversation
AmplabJenkins
commented
Apr 18, 2014
Can one of the admins verify this patch? |
marmbrus
commented
Apr 18, 2014
A few high-level comments:
|
chenghao-intel
commented
Apr 19, 2014
Thank you @marmbrus , if we are not planning to support the stateful UDFs, the deferred evaluation can be removed, too, and we can just change the ordering of calling the eval method for the existed expressions for short-circuit evaluation. |
chenghao-intel
commented
Apr 21, 2014
@marmbrus , I've removed the unrelated changes from this PR, and this PR only for the deferred expression evaluation. |
There was a problem hiding this comment.
I think this was correct before. The nullability of the predicate does not affect the nullability of the output since a null predicate will just cause the falseValue to be output, not null.
marmbrus
commented
Apr 21, 2014
ok to test |
AmplabJenkins
commented
Apr 21, 2014
Merged build triggered. |
AmplabJenkins
commented
Apr 21, 2014
Merged build started. |
AmplabJenkins
commented
Apr 21, 2014
Merged build finished. |
AmplabJenkins
commented
Apr 21, 2014
Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/14285/ |
marmbrus
commented
Apr 21, 2014
@andrewor14, any idea what is up with |
andrewor14
commented
Apr 21, 2014
It has the same problem as |
#446 faced a connection refused exception from these tests, causing them to timeout and fail after a long time. For now, let's disable these tests. (We recently disabled the corresponding test in streaming in 7863ecc. These tests are very similar). Author: Andrew Or <andrewor14@gmail.com> Closes#466 from andrewor14/ignore-ui-tests and squashes the following commits: 6f5a362 [Andrew Or] Ignore org.apache.spark.ui.UISuite tests (cherry picked from commit af46f1f) Signed-off-by: Patrick Wendell <pwendell@gmail.com>
AmplabJenkins
commented
Apr 22, 2014
Merged build triggered. |
AmplabJenkins
commented
Apr 22, 2014
Merged build started. |
AmplabJenkins
commented
Apr 22, 2014
Merged build finished. |
AmplabJenkins
commented
Apr 22, 2014
Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/14311/ |
AmplabJenkins
commented
Apr 22, 2014
Merged build triggered. |
AmplabJenkins
commented
Apr 22, 2014
Merged build started. |
AmplabJenkins
commented
Apr 22, 2014
Merged build finished. |
AmplabJenkins
commented
Apr 22, 2014
Refer to this link for build results: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/14314/ |
marmbrus
commented
May 9, 2014
test this please. |
AmplabJenkins
commented
May 9, 2014
Build triggered. |
AmplabJenkins
commented
May 9, 2014
Build started. |
AmplabJenkins
commented
May 9, 2014
Build finished. All automated tests passed. |
AmplabJenkins
commented
May 9, 2014
All automated tests passed. |
marmbrus
commented
May 9, 2014
LGTM @pwendell can you please merge? |
pwendell
commented
May 10, 2014
@chenghao-intel this has some merge conflicts - mind updating it? |
AmplabJenkins
commented
May 12, 2014
Merged build triggered. |
AmplabJenkins
commented
May 12, 2014
Merged build triggered. |
AmplabJenkins
commented
May 12, 2014
Merged build started. |
AmplabJenkins
commented
May 12, 2014
Merged build finished. All automated tests passed. |
AmplabJenkins
commented
May 12, 2014
All automated tests passed. |
chenghao-intel
commented
May 16, 2014
Thanks @rxin. |
AmplabJenkins
commented
May 16, 2014
Merged build triggered. |
AmplabJenkins
commented
May 16, 2014
Merged build started. |
rxin
commented
May 16, 2014
LGTM. I will merge it once Jenkins comes back green. |
AmplabJenkins
commented
May 16, 2014
Merged build finished. All automated tests passed. |
AmplabJenkins
commented
May 16, 2014
All automated tests passed. |
rxin
commented
May 16, 2014
I've merged this. Thanks a lot! |
This patch unify the foldable & nullable interface for Expression. 1) Deterministic-less UDF (like Rand()) can not be folded. 2) Short-circut will significantly improves the performance in Expression Evaluation, however, the stateful UDF should not be ignored in a short-circuit evaluation(e.g. in expression: col1 > 0 and row_sequence() < 1000, row_sequence() can not be ignored even if col1 > 0 is false) I brought an concept of DeferredObject from Hive, which has 2 kinds of children classes (EagerResult / DeferredResult), the former requires triggering the evaluation before it's created, while the later trigger the evaluation when first called its get() method. Author: Cheng Hao <hao.cheng@intel.com> Closes#446 from chenghao-intel/expression_deferred_evaluation and squashes the following commits: d2729de [Cheng Hao] Fix the codestyle issues a08f09c [Cheng Hao] fix bug in or/and short-circuit evaluation af2236b [Cheng Hao] revert the short-circuit expression evaluation for IF b7861d2 [Cheng Hao] Add Support for Deferred Expression Evaluation (cherry picked from commit a20fea9) Signed-off-by: Reynold Xin <rxin@apache.org>
apache#446 faced a connection refused exception from these tests, causing them to timeout and fail after a long time. For now, let's disable these tests. (We recently disabled the corresponding test in streaming in 7863ecc. These tests are very similar). Author: Andrew Or <andrewor14@gmail.com> Closesapache#466 from andrewor14/ignore-ui-tests and squashes the following commits: 6f5a362 [Andrew Or] Ignore org.apache.spark.ui.UISuite tests
This patch unify the foldable & nullable interface for Expression. 1) Deterministic-less UDF (like Rand()) can not be folded. 2) Short-circut will significantly improves the performance in Expression Evaluation, however, the stateful UDF should not be ignored in a short-circuit evaluation(e.g. in expression: col1 > 0 and row_sequence() < 1000, row_sequence() can not be ignored even if col1 > 0 is false) I brought an concept of DeferredObject from Hive, which has 2 kinds of children classes (EagerResult / DeferredResult), the former requires triggering the evaluation before it's created, while the later trigger the evaluation when first called its get() method. Author: Cheng Hao <hao.cheng@intel.com> Closesapache#446 from chenghao-intel/expression_deferred_evaluation and squashes the following commits: d2729de [Cheng Hao] Fix the codestyle issues a08f09c [Cheng Hao] fix bug in or/and short-circuit evaluation af2236b [Cheng Hao] revert the short-circuit expression evaluation for IF b7861d2 [Cheng Hao] Add Support for Deferred Expression Evaluation
This patch unify the foldable & nullable interface for Expression.
I brought an concept of DeferredObject from Hive, which has 2 kinds of children classes (EagerResult / DeferredResult), the former requires triggering the evaluation before it's created, while the later trigger the evaluation when first called its get() method.