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

Andrey Kuznetsov updated IGNITE-7823:
-------------------------------------
    Description: 
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.

  was:
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 sets it's too expensive to maintain redundant onheap data copies. Thus 
it would be better to use separate cache for non collocated IgniteSet version. 
The difference between these two kinds of sets should be properly documented 
afterwards.


> 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