You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Daradur (JIRA)" <ji...@apache.org> on 2017/06/05 09:30:04 UTC

[jira] [Comment Edited] (IGNITE-5097) BinaryMarshaller should write ints in "varint" encoding where it makes sense

    [ https://issues.apache.org/jira/browse/IGNITE-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16036716#comment-16036716 ] 

Vyacheslav Daradur edited comment on IGNITE-5097 at 6/5/17 9:29 AM:
--------------------------------------------------------------------

[~ptupitsyn],
bq. Not sure though about int<->uint casts. 
It is equivalent of {{>>>}} unsigned right bit-shift operator in Java
This is necessary in the case of negative numbers, otherwise it may provide infinite loop. Covered by added unit test.
bq. 1) Does this work for negative values?
Yes it works for negative values, but we shouldn't use it for, because negative values always take 5 bytes.
bq. 2) Since we use this thing purely for positive values, should we use uint in method signature?
Not sure. I'd prefer not to use {{uint}} for compliance with the Java implementation.


was (Author: daradurvs):
bq. Not sure though about int<->uint casts. 
It is equivalent of {{>>>}} unsigned right bit-shift operator in Java
This is necessary in the case of negative numbers, otherwise it may provide infinite loop. Covered by added unit test.
bq. 1) Does this work for negative values?
Yes it works for negative values, but we shouldn't use it for, because negative values always take 5 bytes.
bq. 2) Since we use this thing purely for positive values, should we use uint in method signature?
Not sure. I'd prefer not to use {{uint}} for compliance with the Java implementation.

> BinaryMarshaller should write ints in "varint" encoding where it makes sense
> ----------------------------------------------------------------------------
>
>                 Key: IGNITE-5097
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5097
>             Project: Ignite
>          Issue Type: Task
>          Components: general
>    Affects Versions: 2.0
>            Reporter: Vladimir Ozerov
>            Assignee: Vyacheslav Daradur
>              Labels: important, performance
>             Fix For: 2.1
>
>
> There are a lot of places in the code where we write integers for some special purposes. Quite often their value will be vary small, so that applying "varint" format could save a lot of space at the cost of very low additional CPU overhead. 
> Specifically:
> 1) Array/collection/map lengths
> 2) BigDecimal's (usually will save ~6 bytes)
> 3) Strings
> 4) Enum ordinals



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)