I am using ignite version 1.6. In my use case I have two caches with the
below configuration
CacheConfiguration<BinaryObject, BinaryObject> cfg1 = new
CacheConfiguration<>("Cache 1");
cfg1.setCacheMode(CacheMode.PARTITIONED);
cfg1.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
IgniteCache<BinaryObject, BinaryObject> cache1 =
ignite.getOrCreateCache(cfg1).withKeepBinary();
CacheConfiguration<BinaryObject, BinaryObject> cfg2 = new
CacheConfiguration<>("Cache 2");
cfg2.setCacheMode(CacheMode.REPLICATED);
cfg2.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
//using the default PRIMARY_SYNC write synchronization works fine
IgniteCache<BinaryObject, BinaryObject> cache2 =
ignite.getOrCreateCache(cfg2);
When adding a BinaryObject to the second cache, Ignite *fails when calling
cache2.put()*. The code to add data to the cache is
BinaryObjectBuilder keyBuilder =
ignite.binary().builder("keyType")
.setField("F1", "V1").hashCode("V1".hashCode());
BinaryObjectBuilder valueBuilder =
ignite.binary().builder("valueType)
.setField("F2", "V2")
.setField("F3", "V3");
BinaryObject key = keyBuilder.build();
BinaryObject value = valueBuilder.build();
cache1.put(key, value);
cache2.put(key, value);
If FULL_SYNC write synchronization is turned off (default PRIMARY_SYNC), the
write works fine. Also if a copy of the BinaryObject is made before adding
to cache2, the put method succeeds. Can someone have a look and let me know
what could be missing?
The exception is as below.
java.lang.AssertionError: Affinity partition is out of range [part=667,
partitions=512]
at
org.apache.ignite.internal.processors.affinity.GridAffinityAssignment.get(GridAffinityAssignment.java:149)
at
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtPartitionTopologyImpl.nodes(GridDhtPartitionTopologyImpl.java:827)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapKey(GridNearAtomicUpdateFuture.java:1031)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapUpdate(GridNearAtomicUpdateFuture.java:867)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.map(GridNearAtomicUpdateFuture.java:689)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapOnTopology(GridNearAtomicUpdateFuture.java:544)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicAbstractUpdateFuture.map(GridNearAtomicAbstractUpdateFuture.java:202)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$22.apply(GridDhtAtomicCache.java:1007)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$22.apply(GridDhtAtomicCache.java:1005)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.asyncOp(GridDhtAtomicCache.java:703)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAsync0(GridDhtAtomicCache.java:1005)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.putAsync0(GridDhtAtomicCache.java:475)
at
org.apache.ignite.internal.processors.cache.GridCacheAdapter.putAsync(GridCacheAdapter.java:2506)
at
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.put(GridDhtAtomicCache.java:452)
at
org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2180)
at
org.apache.ignite.internal.processors.cache.IgniteCacheProxy.put(IgniteCacheProxy.java:1165)
--
View this message in context:
http://apache-ignite-users.70518.x6.nabble.com/Adding-a-binary-object-to-two-caches-fails-with-FULL-SYNC-write-mode-configured-for-the-replicated-ce-tp6343.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.