hi All,
Current we are leveraging the DataStorageConfiguration to persist the cache to
local file system.
Can currently the persistence enable flag be set for separated data Regions?
as from our running log.
Even we only set the region A for persistenceEnabled but log said:
[WARN ] 2018-01-02 03:27:43.234 [main] [ig] GridCacheDatabaseSharedManager -
Page eviction mode for [B_Region] memory region is ignored because Ignite
Native Persistence is enabled
[WARN ] 2018-01-02 03:27:43.235 [main] [ig] GridCacheDatabaseSharedManager -
Page eviction mode for [C_Region] memory region is ignored because Ignite
Native Persistence is enabled
B/C_Region used because some cache refer to those regions.
Now the problem is if any time we update the data structure in the Other caches
in B/C_Region, this cache in the Region A can not be query any more!
[ERROR] 2018-01-02 03:50:06.328 [query-#202%BookerFX%] [ig]
GridMapQueryExecutor - Failed to execute local query.
org.apache.ignite.IgniteCheckedException: Failed to execute SQL query.
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:968)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1027)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:1006)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest0(GridMapQueryExecutor.java:670)
[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest(GridMapQueryExecutor.java:516)
[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onMessage(GridMapQueryExecutor.java:214)
[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor$2.onMessage(GridMapQueryExecutor.java:174)
[ignite-indexing-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.managers.communication.GridIoManager$ArrayListener.onMessage(GridIoManager.java:2332)
[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
[ignite-core-2.3.0.jar!/:2.3.0]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[?:1.8.0_131]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Caused by: org.h2.jdbc.JdbcSQLException: General error: "class
org.apache.ignite.IgniteException: Runtime failure on bounds: [lower=RowSimple
[vals=[null, null, null, 'EURUSD', 0]], upper=RowSimple [vals=[null, null,
null, 'EURUSD', 4096]]]"; SQL statement:
SELECT
"CacheExample".__Z0._KEY __C0_0,
"CacheExample".__Z0._VAL __C0_1,
__Z0.SEQUENCENUMBER __C0_2
FROM "BookerGenericDomainEventEntryFX".GENERICDOMAINEVENTENTRY __Z0
WHERE (__Z0.SEQUENCENUMBER < ?3) AND ((__Z0.AGGREGATEIDENTIFIER = ?1) AND
(__Z0.SEQUENCENUMBER >= ?2))
ORDER BY 3 [50000-195]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
~[h2-1.4.195.jar!/:?]
at org.h2.message.DbException.get(DbException.java:168) ~[h2-1.4.195.jar!/:?]
at org.h2.message.DbException.convert(DbException.java:295)
~[h2-1.4.195.jar!/:?]
at org.h2.command.Command.executeQuery(Command.java:215) ~[h2-1.4.195.jar!/:?]
at
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
~[h2-1.4.195.jar!/:?]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:961)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
... 14 more
Caused by: org.apache.ignite.IgniteException: Runtime failure on bounds:
[lower=RowSimple [vals=[null, null, null, 'EURUSD', 0]], upper=RowSimple
[vals=[null, null, null, 'EURUSD', 4096]]]
at
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:965)
~[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.find(BPlusTree.java:938)
~[ignite-core-2.3.0.jar!/:2.3.0]
at
org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex.find(H2TreeIndex.java:181)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
at org.h2.index.BaseIndex.find(BaseIndex.java:128) ~[h2-1.4.195.jar!/:?]
at org.h2.index.IndexCursor.find(IndexCursor.java:169) ~[h2-1.4.195.jar!/:?]
at org.h2.table.TableFilter.next(TableFilter.java:468) ~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1452)
~[h2-1.4.195.jar!/:?]
at org.h2.result.LazyResult.hasNext(LazyResult.java:79) ~[h2-1.4.195.jar!/:?]
at org.h2.result.LazyResult.next(LazyResult.java:59) ~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Select.queryFlat(Select.java:519) ~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Select.queryWithoutCache(Select.java:625)
~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Query.queryWithoutCacheLazyCheck(Query.java:114)
~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Query.query(Query.java:352) ~[h2-1.4.195.jar!/:?]
at org.h2.command.dml.Query.query(Query.java:333) ~[h2-1.4.195.jar!/:?]
at org.h2.command.CommandContainer.query(CommandContainer.java:113)
~[h2-1.4.195.jar!/:?]
at org.h2.command.Command.executeQuery(Command.java:201) ~[h2-1.4.195.jar!/:?]
at
org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:111)
~[h2-1.4.195.jar!/:?]
at
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:961)
~[ignite-indexing-2.3.0.jar!/:2.3.0]
... 14 more
Caused by: java.lang.NullPointerException
Cache configuration:
<property name="storagePath"
value="${persistent.store.base.path:/var/ignite/persistent}/${app.instance.cnt}/store"/>
<property name="walArchivePath"
value="${persistent.store.base.path:/var/ignite/persistent}/${app.instance.cnt}/store/wal/archive"/>
<property name="walPath"
value="${persistent.store.base.path:/var/ignite/persistent}/${app.instance.cnt}/store/wal"/><bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="A_Region"/>
<property name="initialSize" value="#{2L * 1024L * 1024L * 1024L}"/>
<property name="maxSize" value="#{4L * 1024L * 1024L * 1024L}"/>
<property name="pageEvictionMode" value="DISABLED"/>
<property name="persistenceEnabled" value="true"/>
</bean>
Thanks for your time!
Regards
Aaron
[email protected]