[ https://issues.apache.org/jira/browse/PARQUET-2106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454217#comment-17454217 ]
ASF GitHub Bot commented on PARQUET-2106: ----------------------------------------- alexeykudinkin commented on a change in pull request #940: URL: https://github.com/apache/parquet-mr/pull/940#discussion_r763341502 ########## File path: parquet-column/src/main/java/org/apache/parquet/io/api/Binary.java ########## @@ -542,6 +606,10 @@ public static Binary fromCharSequence(CharSequence value) { return new FromCharSequenceBinary(value); } + public static int compareToLexicographic(Binary one, Binary other) { Review comment: It's called `compareToLexicographic` to keep it in-line with base class's generic `compareTo` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@parquet.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > BinaryComparator should avoid doing ByteBuffer.wrap in the hot-path > ------------------------------------------------------------------- > > Key: PARQUET-2106 > URL: https://issues.apache.org/jira/browse/PARQUET-2106 > Project: Parquet > Issue Type: Task > Components: parquet-mr > Affects Versions: 1.12.2 > Reporter: Alexey Kudinkin > Priority: Major > Attachments: Screen Shot 2021-12-03 at 3.26.31 PM.png, > profile_48449_alloc_1638494450_sort_by.html > > > *Background* > While writing out large Parquet tables using Spark, we've noticed that > BinaryComparator is the source of substantial churn of extremely short-lived > `HeapByteBuffer` objects – It's taking up to *16%* of total amount of > allocations in our benchmarks, putting substantial pressure on a Garbage > Collector: > !Screen Shot 2021-12-03 at 3.26.31 PM.png|width=828,height=521! > [^profile_48449_alloc_1638494450_sort_by.html] > > *Proposal* > We're proposing to adjust lexicographical comparison (at least) to avoid > doing any allocations, since this code lies on the hot-path of every Parquet > write, therefore causing substantial churn amplification. > > > -- This message was sent by Atlassian Jira (v8.20.1#820001)