Hello! It should not be possible to change configuration of node when data is already present.
Moreover, page eviction settings are supposed to be ignored when persistence is enabled: https://apacheignite.readme.io/docs/evictions Page replacement is prepared instead. I recommend filing an issue about this problem in Apache Ignite JIRA because it is obviously unexpected, but I think that your expectations are also off. Regards, -- Ilya Kasnacheev пт, 27 мар. 2020 г. в 17:06, Andrey Davydov <[email protected]>: > > > Hello, > > > > We have Ignite data directory from system with following data region > configuration: > > > > <bean > class="org.apache.ignite.configuration.DataRegionConfiguration"> > > <property name="name" > value="myPersistDataRegion"/> > > <property name="persistenceEnabled" > value="true"/> > > > > <property name="initialSize" > value="${config.node.memory.initial}"/> > > <property name="maxSize" > value="${config.node.memory.max}"/> > > > > <property name="pageEvictionMode" > value="DISABLED"/> > > <property name="metricsEnabled" value="true"/> > > </bean> > > > > When we update configuration to: > > > > <bean > class="org.apache.ignite.configuration.DataRegionConfiguration"> > > <property name="name" > value="myPersistDataRegion"/> > > <property name="persistenceEnabled" > value="true"/> > > > > <property name="initialSize" > value="${config.node.memory.initial}"/> > > <property name="maxSize" > value="${config.node.memory.max}"/> > > <property name="evictionThreshold" > value="${config.node.memory.evict.threshold}"/> > > > > <property name="pageEvictionMode" > value="RANDOM_2_LRU"/> > > <property name="metricsEnabled" value="true"/> > > </bean> > > > > And restart (exactly same system. Difference only in data region config) > we got following exception. When we change configuration back, everything > works OK and all data present. > > If there is any way to access data from old files with new settings? > > > > org.apache.ignite.IgniteException: Runtime failure on bounds: > [lower=SearchRow [key=null, hash=0, cacheId=2077719173], upper=SearchRow > [key=null, hash=0, cacheId=2077719173]] > > at > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:48) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.advance(GridCacheQueryManager.java:2996) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager$ScanQueryIterator.onHasNext(GridCacheQueryManager.java:2965) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > ru.exampl.data.appl.service.business.ModelService.findRunningModels(ModelService.java:945) > ~[appl.jar:?] > > at > ru.exampl.data.appl.service.business.LocalEnvironmentService.initializeEnvironment(LocalEnvironmentService.java:192) > ~[appl.jar:?] > > at > ru.exampl.data.appl.service.business.LocalEnvironmentService.afterIgniteSet(LocalEnvironmentService.java:125) > ~[appl.jar:?] > > at > ru.exampl.data.appl.service.AppServiceNew.lambda$execInner$2(AppServiceNew.java:228) > ~[appl.jar:?] > > at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) > ~[?:1.8.0_242] > > at > ru.exampl.data.appl.service.AppServiceNew.execInner(AppServiceNew.java:228) > ~[appl.jar:?] > > at > ru.exampl.data.appl.service.AppServiceNew.execInLock(AppServiceNew.java:181) > ~[appl.jar:?] > > at > ru.exampl.data.appl.service.AppServiceNew.execute(AppServiceNew.java:139) > [appl.jar:?] > > at > org.apache.ignite.internal.processors.service.GridServiceProcessor$3.run(GridServiceProcessor.java:1394) > [ignite-core-2.7.6.jar:2.7.6] > > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [?:1.8.0_242] > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [?:1.8.0_242] > > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242] > > Caused by: > org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException: > Runtime failure on bounds: [lower=SearchRow [key=null, hash=0, > cacheId=2077719173], upper=SearchRow [key=null, hash=0, cacheId=2077719173]] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1016) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:988) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2923) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2894) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2888) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2876) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.cursor(GridCacheOffheapManager.java:2075) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6.onHasNext(IgniteCacheOffheapManagerImpl.java:968) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) > ~[ignite-core-2.7.6.jar:2.7.6] > > ... 16 more > > Caused by: java.lang.IllegalArgumentException: Invalid object type: 0 > > at > org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessorImpl.toKeyCacheObject(IgniteCacheObjectProcessorImpl.java:166) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.toKeyCacheObject(CacheObjectBinaryProcessorImpl.java:865) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.readFullRow(CacheDataRowAdapter.java:333) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:167) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.CacheDataRowAdapter.initFromLink(CacheDataRowAdapter.java:108) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.tree.DataRow.<init>(DataRow.java:55) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.tree.CacheDataRowStore.dataRow(CacheDataRowStore.java:92) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.tree.CacheDataTree.getRow(CacheDataTree.java:200) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.tree.CacheDataTree.getRow(CacheDataTree.java:49) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$ForwardCursor.fillFromBuffer0(BPlusTree.java:5515) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.fillFromBuffer(BPlusTree.java:5283) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.init(BPlusTree.java:5208) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetCursor.notFound(BPlusTree.java:2902) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Search.run0(BPlusTree.java:309) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:5618) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$Search.run(BPlusTree.java:274) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$GetPageHandler.run(BPlusTree.java:5603) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.util.PageHandler.readPage(PageHandler.java:159) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.DataStructure.read(DataStructure.java:334) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.findDown(BPlusTree.java:1312) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.doFind(BPlusTree.java:1279) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.access$8700(BPlusTree.java:90) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree$AbstractForwardCursor.find(BPlusTree.java:5292) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:1008) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:988) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2923) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2894) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2888) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.cursor(IgniteCacheOffheapManagerImpl.java:2876) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.cursor(GridCacheOffheapManager.java:2075) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$6.onHasNext(IgniteCacheOffheapManagerImpl.java:968) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) > ~[ignite-core-2.7.6.jar:2.7.6] > > at > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) > ~[ignite-core-2.7.6.jar:2.7.6] > > ... 16 more > > > > > > Andrey. > > >
