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 Ermakov (Jira)" <ji...@apache.org> on 2021/11/03 13:24:00 UTC

[jira] [Commented] (IGNITE-15443) Add Map with primitive keys implementations.

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

Vladimir Ermakov commented on IGNITE-15443:
-------------------------------------------

Based on the article ([http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/)] and the tests attached to it ([https://github.com/mikvor/hashmapTest]), I made a comparison of different map implementations(including IntMap from Ignite 2, FastUtils, Netty, Trove, JDK and OpenHFT).

The fastest in the tests were Ignite 2 and FastUtils implementations.

After reviewing the code, it became clear that the implementation of the maps is quite similar. However, in FastUtils library some parts of the code are more optimal due to less creation of objects.
 
Given that FastUtils library may contain other useful data structures, it was decided to add it as dependency to the project using the maven-shading plugin.
 
The dependency will be added in the IGNITE-15462 task.

> Add Map with primitive keys implementations.
> --------------------------------------------
>
>                 Key: IGNITE-15443
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15443
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Assignee: Vladimir Ermakov
>            Priority: Major
>              Labels: ignite-3, newbie, perfomance
>
> There are a number of places where Map<Integer, Integer> and Map<Integer, Object> are used.
> Let's add an optimized Map with a primitive key (IntMap, IntIntMap) to the ignite-core module.
> Let's benchmark next candidates and choose one
> * IntMap from Ignite 2 with robinhood hashing.
> * FastUtils
> * Netty
> * OpenHFT



--
This message was sent by Atlassian Jira
(v8.3.4#803005)