ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-1548) Optimize portable object header.
Date Fri, 25 Sep 2015 10:21:04 GMT
Vladimir Ozerov created IGNITE-1548:
---------------------------------------

             Summary: 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
            Priority: Blocker
             Fix For: ignite-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)

Mime
View raw message