You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@orc.apache.org by "Panagiotis Garefalakis (Jira)" <ji...@apache.org> on 2020/02/10 20:51:00 UTC

[jira] [Created] (ORC-595) Optimize Decimal64 scale calculation

Panagiotis Garefalakis created ORC-595:
------------------------------------------

             Summary: Optimize Decimal64 scale calculation
                 Key: ORC-595
                 URL: https://issues.apache.org/jira/browse/ORC-595
             Project: ORC
          Issue Type: Improvement
          Components: encoding
            Reporter: Panagiotis Garefalakis
            Assignee: Panagiotis Garefalakis


Currently Decimal64 is using an inner loop to apply the correct scale to each read Long value [https://github.com/apache/orc/blob/master/java/core/src/java/org/apache/orc/impl/TreeReaderFactory.java#L1294]

A more efficient way would be to apply the scale using a single array access and by multiplying by 10 in the power of (scale - scratchScaleVector[r]).

An extra optimization would be to keep all powers of 10 (up to 18) in a static array and reuse it across runtime instead of calculating each time.

cc: [~rameshkumar] [~gopalv]



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