[ 
https://issues.apache.org/jira/browse/IGNITE-1770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14976513#comment-14976513
 ] 

Vladimir Ozerov commented on IGNITE-1770:
-----------------------------------------

Final portable object structure:
0 .. 1 - Header.
1 .. 2 - Version, always 1 now.
2 .. 4 - Flags. There are two flags. "User object" - 0x1, "raw only" - 0x2. 
"Raw only" that object has no named fields and raw offset is placed on "schema 
offset" position.
4 .. 8 - Object length.
8 ..12 - Type ID.
12 .. 16 - Hash code.
16 .. 20 - Schema ID. Calculated only for reflection-based objects now. Zero in 
all other cases.
20 .. 24 - Schema offset. Contains relative offset from object head to the 
place where schema is located.

Schema is located after all object fields and raw data, and looks as follows:
[field1 ID]
[field1 offset]
[field2 ID]
[field2 offset]
...
[raw offset] - optional raw offset. Exists only if "RawWriter" was called 
during object write.


> Portables: implement constant-time field lookup.
> ------------------------------------------------
>
>                 Key: IGNITE-1770
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1770
>             Project: Ignite
>          Issue Type: Task
>          Components: general, interop
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Vladimir Ozerov
>            Priority: Blocker
>             Fix For: 1.5
>
>
> See 
> https://cwiki.apache.org/confluence/display/IGNITE/Portable+object+constant-time+field+lookup



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

Reply via email to