You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2015/10/22 16:51:27 UTC

[jira] [Commented] (IGNITE-1770) Portables: implement constant-time field lookup.

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

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

Before digging into implementation I tried to measure optimized vs portable marshaller deserialization using JMH and sample "Address" class having two ints and two strings. Summary:

Object size:
Optimized: 60 bytes
Poratble:  108 bytes

Deserialization throughput:
Optimized: 3.0KK ops/sec
Portable:  2.6KK ops/sec

The I implemented some draft optimizations on reading side:
- Removed unnecessary ID mapper lookup on each field read;
- Optimized field seek algorithm for sequential reads;
- Delayed handles hash map creation when possible;
- Get rid of manual string lower-casing.

Results:
Optimized:       3.0KK ops/sec
Portable before: 2.6KK ops/sec
Portable after:  4.8KK ops/sec

As a next step I want to measure random field seek performance with and without proposed algorithm. Then I'll start implementation.

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