[ 
https://issues.apache.org/jira/browse/IGNITE-7823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-7823:
-------------------------------------
    Comment: was deleted

(was: Implementation details:
- DataStructuresProcessor#compatibleCache creates separate cache for each new 
non-collocated version of IgniteSet (method IgniteSet#close destroys this 
cache).
- A new version of IgniteSet called GrideCacheSetImplV2 was created, common 
internal service methods required by proxy extracted to separate interface 
called IgniteInternalSet.
- A new header GrideCacheSetHeaderV2 was created (also was added common header 
interface called CacheSetHeader).
- Duplicate code GridCacheSetImpl and GrieCacheSetHeader should be removed in 
next major release.)

> Separate cache for non collocated IgniteSet.
> --------------------------------------------
>
>                 Key: IGNITE-7823
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7823
>             Project: Ignite
>          Issue Type: New Feature
>          Components: data structures
>            Reporter: Andrey Kuznetsov
>            Assignee: Pavel Pereslegin
>            Priority: Major
>             Fix For: 2.6
>
>
> Currently, single data structures cache is shared between several collection 
> instances (IgniteQueue, IgniteSet).
> To support iterator() and size() IgniteSet maintains plain on-heap Java sets 
> on every node (see CacheDataStructuresManager.setDataMap). These sets 
> duplicate backing-cache entries, both primary and backup. For big 
> non-collocated sets it's too expensive to maintain redundant onheap data 
> copies. The simplest way to avoid copies is to use separate cache for 
> non-collocated IgniteSet version; hence size of set is the same as size of 
> backing cache, and also set iterator is virtually the same as backing cache 
> iterator. 
> The difference between exising set implementation and set based on separate 
> cache should be properly documented afterwards.



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

Reply via email to