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

Dmitriy Setrakyan updated IGNITE-640:
-------------------------------------
    Description: 
We need to add {{IgniteMultimap}} data structure in addition to other data 
structures provided by Ignite. {{IgniteMultiMap}} should have similar API to 
{{java.util.Map}} class in JDK, but support the semantics of multiple values 
per key, similar to [Guava 
Multimap|http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html].
 

However, unlike in Guava, our multi-map should work with Lists, not 
Collections. Lists should make it possible to support the following methods:
{code}
// Gets value at a certain index for a key.
V get(K, index);

// Gets values for specified indexes for a key.
Iterable<V> get(K, Iterable<Integer> indexes);

// Gets values for specified range of indexes, between min and max.
Iterable<V> get(K, int min, int max);
{code}

Multimap should also support colocated and non-colocated modes, similar to 
[IgniteQueue|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/IgniteQueue.java]
 and its implementation, 
[GridAtomicCacheQueueImpl|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridAtomicCacheQueueImpl.java].


  was:
We need to add {{IgniteMultimap}} data structure in addition to other data 
structures provided by Ignite. {{IgniteMultiMap}} should have similar API to 
{{java.util.Map}} class in JDK, but support the semantics of multiple values 
per key, similar to [Guava 
Multimap|http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html]

Multimap should also support colocated and non-colocated modes, similar to 
[IgniteQueue|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/IgniteQueue.java]
 and its implementation, 
[GridAtomicCacheQueueImpl|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridAtomicCacheQueueImpl.java].



> Implement IgniteMultimap data structures
> ----------------------------------------
>
>                 Key: IGNITE-640
>                 URL: https://issues.apache.org/jira/browse/IGNITE-640
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: data structures
>            Reporter: Dmitriy Setrakyan
>            Assignee: Vladisav Jelisavcic
>
> We need to add {{IgniteMultimap}} data structure in addition to other data 
> structures provided by Ignite. {{IgniteMultiMap}} should have similar API to 
> {{java.util.Map}} class in JDK, but support the semantics of multiple values 
> per key, similar to [Guava 
> Multimap|http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html].
>  
> However, unlike in Guava, our multi-map should work with Lists, not 
> Collections. Lists should make it possible to support the following methods:
> {code}
> // Gets value at a certain index for a key.
> V get(K, index);
> // Gets values for specified indexes for a key.
> Iterable<V> get(K, Iterable<Integer> indexes);
> // Gets values for specified range of indexes, between min and max.
> Iterable<V> get(K, int min, int max);
> {code}
> Multimap should also support colocated and non-colocated modes, similar to 
> [IgniteQueue|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/IgniteQueue.java]
>  and its implementation, 
> [GridAtomicCacheQueueImpl|https://github.com/apache/incubator-ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridAtomicCacheQueueImpl.java].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to