You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2015/12/10 09:55:11 UTC

[jira] [Resolved] (IGNITE-1548) Optimize portable object header.

     [ https://issues.apache.org/jira/browse/IGNITE-1548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Ozerov resolved IGNITE-1548.
-------------------------------------
    Resolution: Won't Fix

> Optimize portable object header.
> --------------------------------
>
>                 Key: IGNITE-1548
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1548
>             Project: Ignite
>          Issue Type: Task
>          Components: general
>    Affects Versions: 1.1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Vladimir Ozerov
>            Priority: Blocker
>             Fix For: 1.5
>
>
> Currently portable object header takes 18 bytes:
> 1 - object type
> 1 - user flag
> 4 - type ID
> 4 - hash code
> 4 - length
> 4 - raw offset.
> The following optimizations can be applied:
> 1) User flag can be easilty merged into object type. (-1 byte)
> 2) In most cases only length or raw-offset exists, but not both. Remove one of them and encode state into the object type. (-4 bytes)
> 3) Length usually fit in 1-2 bytes. Encode it with "variable bytes" algo (-2-3 bytes).
> As a result we will shrink header size from 18 to 10-11 bytes. Encoded states will require 6 additional object types:
> 104 => system, with length 
> 105 => system, with raw offset
> 106 => system, with both
> 107, 108, 109 - the same, but for user types.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)