[
https://issues.apache.org/jira/browse/IGNITE-4661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15863876#comment-15863876
]
Igor Seliverstov commented on IGNITE-4661:
------------------------------------------
Seems that deleting stripe in
{{org.apache.ignite.internal.processors.cache.database.freelist.PagesList#mergeNoNext}}
reduces performance. Is it really necessary? Also I've found that there is an
inconsistency between
{{org.apache.ignite.internal.processors.cache.database.freelist.PagesList#removeDataPage}}
method, which deletes the stripe in case it's empty and
{{org.apache.ignite.internal.processors.cache.database.freelist.PagesList#takeEmptyPage}}
which doesn't do that
> Optimizations: optimize PagesList.removeDataPage
> ------------------------------------------------
>
> Key: IGNITE-4661
> URL: https://issues.apache.org/jira/browse/IGNITE-4661
> Project: Ignite
> Issue Type: Task
> Components: cache
> Reporter: Semen Boikov
> Assignee: Igor Seliverstov
> Fix For: 2.0
>
>
> Optimization for new PageMemory approach (IGNITE-3477, branch ignite-3477).
> Currently PagesList.removeDataPage requires linear search by page ID, need
> check if it makes sense to change structure of PagesList's element from list
> to hash table.
> Here are links to proposed hash table alrorithm:
> http://codecapsule.com/2013/11/11/robin-hood-hashing
> http://codecapsule.com/2013/11/17/robin-hood-hashing-backward-shift-deletion/
> Note: with hash table approach 'take' from PagesList will require linear
> search, so we'll also need some heuristic to make it more optimal.
> For more details see:
> IgniteCacheOffheapManagerImpl.update -> FreeListImpl.insertDataRow,
> IgniteCacheOffheapManagerImpl.update -> FreeListImpl.removeDataRowByLink.
> To check result of optimization IgnitePutRandomValueSizeBenchmark can be used.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)