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

Denis Mekhanikov updated IGNITE-6474:
-------------------------------------
    Summary: Non-collocated IgniteSet stores duplicate values   (was: 
Unexpected behavior of IgniteSet in Official example running on cluster)

> Non-collocated IgniteSet stores duplicate values 
> -------------------------------------------------
>
>                 Key: IGNITE-6474
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6474
>             Project: Ignite
>          Issue Type: Bug
>          Components: data structures
>    Affects Versions: 2.1
>         Environment: a ignite cluster with 2 nodes
>            Reporter: DL Ren
>
> Here is the problem description in 
> [stackoverflow|https://stackoverflow.com/questions/46343833/unexpected-behavior-of-igniteset-in-official-example]
> I tried to run org.apache.ignite.examples.datastructures.IgniteSetExample on 
> cluster(2 nodes) after adding some my debug code. Some of its source code 
> like following:
> CollectionConfiguration setCfg = new CollectionConfiguration();
> setCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
> setCfg.setCacheMode(CacheMode.PARTITIONED);
> // Initialize new set.
> IgniteSet<String> set = ignite.set(setName, setCfg);
> System.out.println("Set size before initializing: " + set.size()); //added by 
> myslef
> // Initialize set items.
> for (int i = 0; i < 10; i++){
>     set.add(Integer.toString(i));
>     System.out.println("Set: " + Arrays.toString(set.toArray())); //added by 
> myslef
> }
> System.out.println("Set size after initializing: " + set.size());
> In my opinion, the size of ignite set should be 10 after adding data but I 
> got a number which is great than 10 and typically 15. I found that there was 
> some reduplicate numbers been added to the set. The log is here:
> [19:53:16] Topology snapshot [ver=29, servers=2, clients=0, CPUs=8, 
> heap=3.4GB]
> Sep 21, 2017 7:53:16 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Topology snapshot [ver=29, servers=2, clients=0, CPUs=8, heap=3.4GB]
> >>> Ignite set example started.
> Set size before initializing: 0
> Set: [0]
> Set: [1, 1, 0]
> Set: [2, 1, 2, 1, 0]
> Set: [2, 1, 3, 2, 1, 0, 3]
> Set: [2, 1, 3, 2, 1, 0, 4, 3]
> Set: [2, 1, 3, 2, 1, 0, 5, 4, 3]
> Set: [2, 1, 3, 2, 1, 0, 6, 5, 4, 3]
> Set: [7, 2, 1, 3, 7, 2, 1, 0, 6, 5, 4, 3]
> Set: [7, 2, 1, 3, 8, 7, 2, 1, 0, 6, 5, 4, 3]
> Set: [7, 2, 1, 3, 9, 8, 7, 2, 1, 0, 6, 5, 4, 3]
> Set size after initializing: 14
> Sep 21, 2017 7:53:16 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Class locally deployed: class 
> org.apache.ignite.examples.datastructures.IgniteSetExample$SetClosure
> Sep 21, 2017 7:53:16 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Class locally deployed: class 
> org.apache.ignite.configuration.CollectionConfiguration
> Sep 21, 2017 7:53:16 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Class locally deployed: class org.apache.ignite.cache.CacheAtomicityMode
> Sep 21, 2017 7:53:16 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Class locally deployed: class org.apache.ignite.cache.CacheMode
> Set item has been added: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_0
> Set item has been added: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_1
> Set item has been added: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_2
> Set item has been added: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_3
> Set item has been added: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_4
> Set size after writing [expected=20, actual=30]
> Iterate over set.
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_1
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_3
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_3
> Set item: 7
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_4
> Set item: 2
> Set item: 1
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_1
> Set item: 3
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_2
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_3
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_4
> Set item: 2
> Set item: 1
> Set item: 0
> Set item: 6
> Set item: 5
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_0
> Set item: 4
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_1
> Set item: 3
> Set item: 7aa983e1-c358-4876-b58f-4f3b7bfa65f3_2
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_1
> Set item: 9
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_2
> Set item: 8
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_3
> Set item: 7
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_4
> Set item: 292c99a6-137b-433c-97d9-40ce0f8c0abc_0
> Set size before clearing: 30
> Set size after clearing: 0
> Set was removed: true
> Expected exception - Set has been removed from cache: GridCacheSetImpl 
> [cache=GridDhtAtomicCache 
> [defRes=org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$1@482d776b,
>  near=null, super=GridDhtCacheAdapter 
> [multiTxHolder=java.lang.ThreadLocal@186978a6, stopping=false, 
> super=GridDistributedCacheAdapter [super=GridCacheAdapter 
> [locMxBean=org.apache.ignite.internal.processors.cache.CacheLocalMetricsMXBeanImpl@631e06ab,
>  
> clusterMxBean=org.apache.ignite.internal.processors.cache.CacheClusterMetricsMXBeanImpl@2a3591c5,
>  
> aff=org.apache.ignite.internal.processors.cache.affinity.GridCacheAffinityImpl@34a75079,
>  igfsDataCache=false, mongoDataCache=false, mongoMetaCache=false, 
> igfsDataCacheSize=null, 
> asyncOpsSem=java.util.concurrent.Semaphore@346a361[Permits = 500], 
> name=datastructures_ATOMIC_PARTITIONED_0@default-ds-group, size=0]]]], 
> name=03bbdb45-72ce-45aa-b75f-00b7b6134dc6, 
> id=d55a844ae51-baeb6ba4-cb04-4d72-b0d8-188f21bc5ac5, collocated=false, 
> hdrPart=961, rmvd=true, binaryMarsh=true, 
> compute=org.apache.ignite.internal.IgniteComputeImpl@4052274f]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Command protocol successfully stopped: TCP binary
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Stopped cache [cacheName=ignite-sys-cache]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Stopped cache 
> [cacheName=datastructures_TRANSACTIONAL_PARTITIONED_0@default-ds-group, 
> group=default-ds-group]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Stopped cache 
> [cacheName=datastructures_ATOMIC_PARTITIONED_0@default-ds-group, 
> group=default-ds-group]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Stopped cache [cacheName=ignite-sys-atomic-cache@default-ds-group, 
> group=default-ds-group]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: Removed undeployed class: GridDeployment [ts=1505994796165, 
> depMode=SHARED, clsLdr=sun.misc.Launcher$AppClassLoader@73d16e93, 
> clsLdrId=355a844ae51-7aa983e1-c358-4876-b58f-4f3b7bfa65f3, userVer=0, 
> loc=true, 
> sampleClsName=org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionFullMap,
>  pendingUndeploy=false, undeployed=true, usage=0]
> [19:53:17] Ignite node stopped OK [uptime=00:00:00:778]
> Sep 21, 2017 7:53:17 PM org.apache.ignite.logger.java.JavaLogger info
> Info: 
> >>> +---------------------------------------------------------------------------------+
> >>> Ignite ver. 2.1.0#20170721-sha1:a6ca5c8a97e9a4c9d73d40ce76d1504c14ba1940 
> >>> stopped OK
> >>> +---------------------------------------------------------------------------------+
> >>> Grid uptime: 00:00:00:778
> Ignite set example finished.
> If and only if I set "collocated" of the CollectionConfiguration instance to 
> true , the size of IgniteSet was 10 as expected. But according to the 
> official documents, if there is lots of data in a IgniteSet then "false" is 
> recommended configuration of "collocated" attribute. So what's wrong here?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to