You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Rohini Palaniswamy (JIRA)" <ji...@apache.org> on 2017/08/11 05:13:00 UTC

[jira] [Created] (PIG-5288) Improve performance of PigTextRawBytesComparator

Rohini Palaniswamy created PIG-5288:
---------------------------------------

             Summary: Improve performance of PigTextRawBytesComparator
                 Key: PIG-5288
                 URL: https://issues.apache.org/jira/browse/PIG-5288
             Project: Pig
          Issue Type: Improvement
            Reporter: Rohini Palaniswamy
            Assignee: Rohini Palaniswamy
             Fix For: 0.18.0


Came across this stacktrace for a group by when investigating a different performance issue.
{code}
"TezChild" #22 daemon prio=5 os_prio=0 tid=0x00007fa935495000 nid=0x7c3e runnable [0x00007fa91d354000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.cs.UTF_8$Decoder.decodeLoop(UTF_8.java:412)
        at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:579)
        at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:802)
        at org.apache.hadoop.io.Text.decode(Text.java:412)
        at org.apache.hadoop.io.Text.decode(Text.java:389)
        at org.apache.hadoop.io.Text.toString(Text.java:280)
        at org.apache.pig.impl.io.NullableText.getValueAsPigType(NullableText.java:46)
        at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigTextRawComparator.compare(PigTextRawComparator.java:95)
        at org.apache.tez.runtime.library.common.ValuesIterator.readNextKey(ValuesIterator.java:188)
        at org.apache.tez.runtime.library.common.ValuesIterator.access$300(ValuesIterator.java:47)
        at org.apache.tez.runtime.library.common.ValuesIterator$1$1.next(ValuesIterator.java:143)
        at org.apache.pig.backend.hadoop.executionengine.tez.plan.operator.POShuffleTezLoad.getNextTuple(POShuffleTezLoad.java:218)
{code}

Conversion to String and comparing is a wastage (result of extending from PigTextRawBytesComparator which is used in sorting). PigCharArrayWritableComparator which is the equivalent used in mapreduce does not. It directly compares it as a Text.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)