Hi, thanks for pointing out the problem of why data is being stored on the
same machine.
The 2nd point:
As I mentioned in steps, we are getting the same exception even with
backups.
Could you please point out other problems with configuration as you
mentioned


On Mon, Jan 31, 2022 at 4:35 PM Stephen Darlington <
stephen.darling...@gridgain.com> wrote:

> There’s a lot to unpack here, but there are (at least) two problems with
> your configuration.
>
> First, you should not be activating your cluster in your startup script.
> That’s an operation that needs to be completed only once, not every time
> the cluster (or node) starts. This is probably why all the data is being
> stored on a single machine.
>
> Second, you create a cache but without any backups. That means that when a
> node dies, you lose access to all the data.
>
> > On 31 Jan 2022, at 10:57, Surinder Mehra <redni...@gmail.com> wrote:
> >
> >
> > Hi Guys,
> > I observed below behavior with persistence enabled. Could you please
> check and confirm if it's a bug or I missed some configuration.
> >
> > Steps:
> > 1. Start ignite node1 and 2 with persistence enabled
> > 2. Step 1 will write few entries to ignite cache
> > 3. All entries go to one node
> > 4. Stop node containing the data
> > 5. Run a query to get data, below exception will be thrown. I guess this
> is expected because the node containing the data is down
> > 6. Restart killed node, exception shouldn’t be thrown because data is
> back in caches
> > 7. Run a query to get data, below exception will be thrown again. This
> looks weird.
> > 8. Kill node2 and try to query again, still the same exception
> > 9. Restart only the left node(data owning node). After restart, the
> query starts working again.
> > 10. I checked the cache directory under node1, it didn't have part0.bin
> ever. files start from part1 and so on.
> > 11. From the exception, it looks like it is trying to read non existent
> file
> > 12. Tried setting consistent Id for each node, still same exception.
> >
> >
> > Another observation : When backup is enabled, shouldn't the backup node
> serve the query. Why it throws same below exception when node1(primary) is
> down
> >
> > This exception is only thrown if data containing node goes down
> >
> > Caused by: class
> org.apache.ignite.internal.processors.cache.CacheInvalidStateException:
> Failed to execute query because cache partition has been lostParts
> [cacheName=deptCache, part=0]
> >
> > Node2{
> >
> > DataStorageConfiguration storageCfg = new DataStorageConfiguration();
> >
> storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);
> > IgniteConfiguration cfg = new IgniteConfiguration();
> > cfg.setDataStorageConfiguration(storageCfg);
> >
> > try (Ignite ignite = Ignition.start(cfg)) {
> >             ignite.cluster().state(ClusterState.ACTIVE);
> >             CacheConfiguration<Integer, Department> deptCacheConfig =
> new CacheConfiguration<>(DEPT_CACHE);
> >             deptCacheConfig.setCacheMode(CacheMode.PARTITIONED);
> > IgniteCache<Integer, Department> deptCache =
> ignite.getOrCreateCache(deptCacheConfig);
> >
> > Department d1 = new Department(1, "CS");
> > Department d2 = new Department(2, "ECE");
> > Department d3 = new Department(3, "CIVIL");
> >
> > if(deptCache.size(CachePeekMode.ALL) == 0){
> > System.out.println("Adding dept data to cache");
> > deptCache.put(d1.getDeptId(), d1);
> > deptCache.put(d2.getDeptId(), d2);
> > deptCache.put(d3.getDeptId(), d3);
> > }
> >
> > }
> >
> > }
> >
> > Node1{
> >
> > DataStorageConfiguration storageCfg = new DataStorageConfiguration();
> >
> storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);
> > IgniteConfiguration cfg = new IgniteConfiguration();
> > cfg.setDataStorageConfiguration(storageCfg);
> >
> > try (Ignite ignite = Ignition.start(cfg)) {
> >             ignite.cluster().state(ClusterState.ACTIVE);
> >             CacheConfiguration<Integer, Department> deptCacheConfig =
> new CacheConfiguration<>(DEPT_CACHE);
> >             deptCacheConfig.setCacheMode(CacheMode.PARTITIONED);
> > IgniteCache<Integer, Department> deptCache =
> ignite.getOrCreateCache(deptCacheConfig);
> >
> > Department d1 = new Department(1, "CS");
> > Department d2 = new Department(2, "ECE");
> > Department d3 = new Department(3, "CIVIL");
> >
> > if(deptCache.size(CachePeekMode.ALL) == 0){
> > System.out.println("Adding dept data to cache");
> > deptCache.put(d1.getDeptId(), d1);
> > deptCache.put(d2.getDeptId(), d2);
> > deptCache.put(d3.getDeptId(), d3);
> > }
> >
> > }
> > }
> >
> > Client{
> >
> > IgniteConfiguration cfg = new IgniteConfiguration();
> > cfg.setDataStorageConfiguration(storageCfg);
> >
> > try (Ignite ignite = Ignition.start(cfg)) {
> >         IgniteCache<Integer, Department> deptCache =
> ignite.getOrCreateCache(DEPT_CACHE);
> >         List<Cache.Entry<Object, Object>> depts = deptCache.query(new
> ScanQuery<>()).getAll();
> >         depts.stream().forEach(entry ->
> System.out.println(entry.getValue()));
> >     }
> > }
>
>

Reply via email to