[
https://issues.apache.org/jira/browse/IGNITE-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16019501#comment-16019501
]
Vyacheslav Daradur commented on IGNITE-5097:
--------------------------------------------
bq. the max size is going to take 5 bytes then
Yes, Integer.MAX_VALUE will took 5 bytes.
I've prepared the tests to show size limits:
BinaryUtilsSelfTest#testSizeInUnsignedVarint
BinaryUtilsSelfTest#testSizeInSignedVarint
Please, take a look:
https://github.com/apache/ignite/pull/1902/files#diff-3f0e73696aef50d25ad791438f2625f0R82
{quote}
There is an issue with implementation for Collections, Maps and Arrays of
objects - in C++ length of these types implemented in 3 steps:
1. Open writing session;
2. Write objects one by one;
3. Close session.
{quote}
Is resize-array or shift operations "expensive" in platfroms?
Can you provide some extra step after a session closing?
Just for example:
4. Write an array size to reserved place and shift the data.
> 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)