[ https://issues.apache.org/jira/browse/IGNITE-4661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15865828#comment-15865828 ]
Igor Seliverstov commented on IGNITE-4661: ------------------------------------------ Have added local benchmark results (with attempts to optimize dealing with stripes) Seems that such optimization doesn't bring any improvements using current page size (perhaps it will if we have longer pages with huge amounts of data pages ids) > 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 > > Attachments: Pagemem_benchmark_results.xlsx > > > 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)