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

Vladimir Ozerov closed IGNITE-1803.
-----------------------------------

> Optimize random portable field lookup.
> --------------------------------------
>
>                 Key: IGNITE-1803
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1803
>             Project: Ignite
>          Issue Type: Task
>          Components: general, interop
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Vladimir Ozerov
>            Priority: Critical
>             Fix For: 1.5
>
>
> This ticket should be implemented after IGNITE-1770 is ready because it 
> relies on constant-time lookup feature availability.
> The following optimizations should be performed:
> 1) Create method "PortableFieldReader createFieldReader()" on PortableObject 
> interface. This will minimize garbage and let us get rid from unnecessary 
> header parsing.
> 2) Field position is calculated as follows: 
> - Lookup ID mapper for type, get ID;
> - Lookup schemas for type;
> - Lookup schema for schema ID;
> - Lookup field offset for field ID inside schema.
> 4 (!!!) map lookups! It should work as follows:
> - Lookup ID mapper and schemas for type;
> - Lookup field offset using (schema ID + field ID).
> The latter lookup should be performed from highly optimized long->int map, 
> not from conventional HashMap.
> 3) Normal field scan is faster than constant-time lookup when amount of 
> fields is about 10. We need to have two field search strategies and pick the 
> most performant one based on field count (which can be derived in advance 
> from object footer size).



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

Reply via email to