-
- Downloads
[SPARK-15391] [SQL] manage the temporary memory of timsort
## What changes were proposed in this pull request? Currently, the memory for temporary buffer used by TimSort is always allocated as on-heap without bookkeeping, it could cause OOM both in on-heap and off-heap mode. This PR will try to manage that by preallocate it together with the pointer array, same with RadixSort. It both works for on-heap and off-heap mode. This PR also change the loadFactor of BytesToBytesMap to 0.5 (it was 0.70), it enables use to radix sort also makes sure that we have enough memory for timsort. ## How was this patch tested? Existing tests. Author: Davies Liu <davies@databricks.com> Closes #13318 from davies/fix_timsort.
Showing
- common/unsafe/src/main/java/org/apache/spark/unsafe/memory/MemoryBlock.java 1 addition, 1 deletion...main/java/org/apache/spark/unsafe/memory/MemoryBlock.java
- core/src/main/java/org/apache/spark/shuffle/sort/ShuffleInMemorySorter.java 28 additions, 10 deletions.../org/apache/spark/shuffle/sort/ShuffleInMemorySorter.java
- core/src/main/java/org/apache/spark/shuffle/sort/ShuffleSortDataFormat.java 7 additions, 6 deletions.../org/apache/spark/shuffle/sort/ShuffleSortDataFormat.java
- core/src/main/java/org/apache/spark/unsafe/map/BytesToBytesMap.java 2 additions, 1 deletion...ain/java/org/apache/spark/unsafe/map/BytesToBytesMap.java
- core/src/main/java/org/apache/spark/util/collection/unsafe/sort/UnsafeInMemorySorter.java 29 additions, 14 deletions...ark/util/collection/unsafe/sort/UnsafeInMemorySorter.java
- core/src/main/java/org/apache/spark/util/collection/unsafe/sort/UnsafeSortDataFormat.java 7 additions, 6 deletions...ark/util/collection/unsafe/sort/UnsafeSortDataFormat.java
- core/src/test/java/org/apache/spark/shuffle/sort/UnsafeShuffleWriterSuite.java 21 additions, 14 deletions...g/apache/spark/shuffle/sort/UnsafeShuffleWriterSuite.java
- core/src/test/java/org/apache/spark/unsafe/map/AbstractBytesToBytesMapSuite.java 1 addition, 1 deletion...apache/spark/unsafe/map/AbstractBytesToBytesMapSuite.java
- core/src/test/scala/org/apache/spark/util/collection/ExternalSorterSuite.scala 3 additions, 1 deletion...rg/apache/spark/util/collection/ExternalSorterSuite.scala
- core/src/test/scala/org/apache/spark/util/collection/unsafe/sort/RadixSortSuite.scala 2 additions, 1 deletion...he/spark/util/collection/unsafe/sort/RadixSortSuite.scala
- sql/core/src/main/java/org/apache/spark/sql/execution/UnsafeKVExternalSorter.java 6 additions, 2 deletions...rg/apache/spark/sql/execution/UnsafeKVExternalSorter.java
- sql/core/src/main/scala/org/apache/spark/sql/execution/joins/HashedRelation.scala 6 additions, 6 deletions...org/apache/spark/sql/execution/joins/HashedRelation.scala
- sql/core/src/test/scala/org/apache/spark/sql/execution/benchmark/SortBenchmark.scala 2 additions, 1 deletion.../apache/spark/sql/execution/benchmark/SortBenchmark.scala
Loading
Please register or sign in to comment