David Mollitor created ORC-830:
----------------------------------

             Summary: Do Not Copy String When Adding to 
StringHashTableDictionary
                 Key: ORC-830
                 URL: https://issues.apache.org/jira/browse/ORC-830
             Project: ORC
          Issue Type: Improvement
          Components: Java
            Reporter: David Mollitor
            Assignee: David Mollitor


{code:java|title=StringHashTableDictionary.java}
    Text tmpText = new Text();
    for (int i = 0; i < candidateArray.size(); i++) {
      getText(tmpText, candidateArray.get(i));
      if (tmpText.equals(newKey)) {
        return candidateArray.get(i);
      }
    }
{code}

When there is a collision adding a value into a {{StringHashTableDictionary}}, 
a temp {{Text}} object is created and then each value in the byte array is 
copied into the temp {{Text}}  until a match is found (or worst-case scenario, 
a match is not found and every value is loaded).

Instead of loading (copying) the values, just compare directly against the byte 
array without copying the data into a intermediate (temp) buffer.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to