David Mollitor created AVRO-4067:
------------------------------------

             Summary: Optimize First Byte of Long Decode
                 Key: AVRO-4067
                 URL: https://issues.apache.org/jira/browse/AVRO-4067
             Project: Apache Avro
          Issue Type: Improvement
          Components: java
    Affects Versions: 1.12.0
            Reporter: David Mollitor
            Assignee: David Mollitor
             Fix For: 1.13.0


Long values are used for many different areas of the spec, for example:
 
bq. a string is encoded as a long followed by that many bytes of UTF-8 encoded 
character data.

Because of this, long values actually tend to be pretty small on average, and 
so can often fit within the first byte of the variable-length array. Therefore, 
the first byte should be prioritized.

For the first byte, if the high-order bit is set, then not only does it mean 
there are more bytes to follow, but that the signed value of the byte will be 
negative. Therefore, the inverse is that for a positive number (>=0), then 
there are not more bytes to follow.

Check the first byte, and if it is positive, exit early, if it is zero, return 
zero.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to