ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: More efficient writes of messages in direct mode.
Date Fri, 25 Sep 2015 14:18:51 GMT
Excellent points, and does not seem hard to do.

On Fri, Sep 25, 2015 at 7:06 AM, Vladimir Ozerov <vozerov@gridgain.com>
wrote:

> Igniters,
>
> Several observations on our "direct" message writes:
>
> 1) For some reason we write null arrays, maps and ints as "-1" integer,
> while it can be encoded in a single byte. And our cache messages have
> looooots of containers, which are commonly null.
>
> 2) Some frequently used data types could benefit significantly if integers
> are written in compacted form, while others could not. Several examples:
>
> GridCacheVersion:
>     topVer - fits in 2 bytes instead of 4;
>     nodeOrderDrId -  1 instead of 4;
>     globalTime -     6 instead of 8;
>     order -          6 instead of 8.
> Result: shrunk from 24 to 15 bytes with minimal overhead.
>
> AffinityTopologyVersion:
>     topVer -      1-2 bytes instead of 8.
>     minorTopVer - 1 byte instead of 4;
> Result: shrunked from 12 to 2-3 bytes in 99% cases.
>
> IgniteUuid - takes 24 bytes, but can be shrunk only to 22 bytes => bad
> candidate for optimziation.
>
> I picked random test and set breakpoint into random cache message -
> GridDhtTxPrepareRequest. It was 444 bytes long with a single int-int pair
> as a payload. At least 90 bytes (~20%) could be saved easily with described
> optimziations.
>
> Looks like we should pay more attention to it.
>
> Vladimir.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message