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)