[ 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)