ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ozerov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IGNITE-1803) Optimize random portable field lookup.
Date Thu, 29 Oct 2015 16:01:27 GMT

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

Vladimir Ozerov commented on IGNITE-1803:

Optimized. Random field lookup become 7x faster. Though, we are still loosing OptimizedMarshaller.
Need to evaluate possible further improvements.

> Optimize random portable field lookup.
> --------------------------------------
>                 Key: IGNITE-1803
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1803
>             Project: Ignite
>          Issue Type: Task
>          Components: general
>    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

View raw message