You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Nikolay Izhikov (JIRA)" <ji...@apache.org> on 2018/10/31 08:25:00 UTC

[jira] [Comment Edited] (IGNITE-9996) Investigate possible performance drop in FSYNC mode for ignite-2.7 compared to ignite-2.6

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

Nikolay Izhikov edited comment on IGNITE-9996 at 10/31/18 8:24 AM:
-------------------------------------------------------------------

Hello, [~agoncharuk], [~vozerov]

I found the reason for this issue:

1. Expensive check in {{PageMemoryImpl#realPageSize}}. Is consist of call {{HashMap#get}} which leads to expensive boxing {{int}} to {{Integer}}.
2. In benchmarks, without encrypted caches, this fixed by a simple check:
{code:java}
        if (grpEncKeys.isEmpty())
            return null;
{code}

3. Buy in real life examples with at least one encrypted cache we run in the same problem.
For full fix we should use data structure without int -> Integer boxing. 
Example of such data structure - http://www.docjar.com/docs/api/org/apache/commons/lang/IntHashMap.html
Unfortunately, there is no such thing in the Ignite codebase at the moment.

Guys, please, give me and advice, how should be full fix implemented?


was (Author: nizhikov):
Hello, [~agoncharuk], [~vozerov]

I found the reason for this issue:

1. Expensive check in {PageMemoryImpl#realPageSize}. Is consist of call {HashMap#get} which leads to expensive boxing {int} to {Integer}.
2. In benchmarks, without encrypted caches, this fixed by a simple check:
{code:java}
        if (grpEncKeys.isEmpty())
            return null;
{code}

3. Buy in real life examples with at least one encrypted cache we run in the same problem.
For full fix we should use data structure without int -> Integer boxing. 
Example of such data structure - http://www.docjar.com/docs/api/org/apache/commons/lang/IntHashMap.html
Unfortunately, there is no such thing in the Ignite codebase at the moment.

Guys, please, give me and advice, how should be full fix implemented?

> Investigate possible performance drop in FSYNC mode for ignite-2.7 compared to ignite-2.6
> -----------------------------------------------------------------------------------------
>
>                 Key: IGNITE-9996
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9996
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Alexey Goncharuk
>            Assignee: Nikolay Izhikov
>            Priority: Major
>             Fix For: 2.7
>
>         Attachments: Screen Shot 2018-10-29 at 3.30.51 PM.png, Screen Shot 2018-10-31 at 10.30.26 AM.png
>
>
> As per the latest reports we probably have a performance drop around 5-8% on write benchmarks in FSYNC mode. The cause needs to be investigated and fixed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)