Skip to content

Conversation

@ooq
Copy link
Contributor

@ooq ooq commented Jul 19, 2016

What changes were proposed in this pull request?

The 3rd PR in its series to resolve SPARK-16523.

This patch adds benchmark tests for vectorized hashmap vs. row-based hashmap (along with results in the comments). Those tests are ignored by default as they take long to run.

How was this patch tested?

This patch are mostly tests itself.

@ooq ooq changed the title [SPARK-16526] [SQL] Benchmarking Performance for Fast HashMap Implementations and Set Knobs [SPARK-16526][SQL] Benchmarking Performance for Fast HashMap Implementations and Set Knobs Jul 19, 2016
@SparkQA
Copy link

SparkQA commented Jul 19, 2016

Test build #62539 has finished for PR 14266 at commit 3b3c9ea.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Jul 19, 2016

Test build #62541 has finished for PR 14266 at commit c984914.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@ooq ooq force-pushed the rowbasedfastaggmap-pr3 branch from c984914 to c2b276f Compare July 27, 2016 22:07
@ooq ooq changed the title [SPARK-16526][SQL] Benchmarking Performance for Fast HashMap Implementations and Set Knobs [SPARK-16526][SQL] Benchmarking Performance for Fast HashMap Implementations Jul 27, 2016
@SparkQA
Copy link

SparkQA commented Jul 27, 2016

Test build #62945 has finished for PR 14266 at commit c2b276f.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Jul 28, 2016

Test build #62947 has finished for PR 14266 at commit 4944b29.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

sparkSession.conf.set("spark.sql.codegen.aggregate.map.columns.max", "30")

// scalastyle:off
println(Benchmark.getJVMOSInfo())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: to minimize duplication, maybe create a small utility function that can then be reused in all test cases.

@sameeragarwal
Copy link
Member

Just a minor nit. LGTM.

*/
}

ignore("varying key fields, varying value field, 16 linear distinct keys") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The performance difference between column-based and row-based are cache locality, could you increase the number of distinct keys to make sure that not all the keys/values are fit in L1 cache? for example, 4k. We could also increase that to 64k in first two cases (single key, single value).

@ooq
Copy link
Contributor Author

ooq commented Aug 5, 2016

@davies Added some test results with larger number of distinct keys.

@SparkQA
Copy link

SparkQA commented Aug 5, 2016

Test build #63296 has finished for PR 14266 at commit 0875fbc.

  • This patch fails Scala style tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Aug 6, 2016

Test build #63299 has finished for PR 14266 at commit e990794.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

*/
}

ignore("single key field, single value field, varying linear distinct keys") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we access them in random way?

@HyukjinKwon
Copy link
Member

(gentle ping @ooq)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants