Search code examples
iccube

Changing icCube result cache configuration


I'm trying to increase the cache value from 16 MB to 64 MB but the log always shows 16 MB. I've tried different values from 2 MB to 512 MB. What is wrong with my configuration file? Is there a size limit?

<resultCacheConfiguration>
<mode>MEMORY</mode>
<size>64</size>
<gvi>true</gvi>
<xmla>false</xmla>
<cachingPolicy>
<classname>crazydev.iccube.olap.eval.cache.result.cache.OlapResultCacheImmediatePolicy</classname>
<!-- <classname>crazydev.iccube.olap.eval.cache.result.cache.OlapResultCacheBufferedPolicy</classname> -->
<param>
<name>bufferedRequestCount</name>
<value>1024</value>
</param>
</cachingPolicy>
</resultCacheConfiguration>

The log dump:

[                main] [ INFO] (14:18:02.358)                    icCube.loadReadingQueueSize : 32
[                main] [ INFO] (14:18:02.358)                     icCube.loadReadingRowBatch : 1000
[                main] [ INFO] (14:18:02.359)                  icCube.loadReadingThreadCount : 2 (actual:2)
[                main] [ INFO] (14:18:02.359)                        icCube.localeIdentifier : SystemDefault (2048)
[                main] [ INFO] (14:18:02.359)         icCube.maxBufferSizeForCachingIterator : 65536
[                main] [ INFO] (14:18:02.359)                  icCube.maxTablePartitionCount : 1024
[                main] [ INFO] (14:18:02.359)                  icCube.maxUnresolvedRowsCount : 65535
[                main] [ INFO] (14:18:02.360)                 icCube.mdxEvalFastNonEmptyAxis : true
[                main] [ INFO] (14:18:02.360)             icCube.mdxEvalLambdaProcessingMode : SET_CALC | PARALLEL_AXIS
[                main] [ INFO] (14:18:02.360)                    icCube.mdxEvalMeasureVector : true
[                main] [ INFO] (14:18:02.360)               icCube.mdxEvalUnknownMemberError : true
[                main] [ INFO] (14:18:02.361)      icCube.olapEngineSimultaneousRequestCount : -1 (actual:4)
[                main] [ INFO] (14:18:02.361)                      icCube.requestCacheActive : true
[                main] [ INFO] (14:18:02.361)           icCube.requestCacheAssertConsistency : false
[                main] [ INFO] (14:18:02.361)                     icCube.requestCacheMaxSize : 500000
[                main] [ INFO] (14:18:02.361)                        icCube.requestCacheMode : ALL
[                main] [ INFO] (14:18:02.361)                         icCube.resultCacheMode : MEMORY
[                main] [ INFO] (14:18:02.362)                       icCube.resultCachePolicy : crazydev.iccube.olap.eval.cache.result.cache.OlapResultCacheBufferedPolicy
[                main] [ INFO] (14:18:02.362)                         icCube.resultCacheSize : 16
[                main] [ INFO] (14:18:02.362)                      icCube.selectCellMaxCount : -1
[                main] [ INFO] (14:18:02.362)                            icCube.toStrMaxSize : 4096
[                main] [ INFO] (14:18:02.362)                              icCube.visualMode : NON_VISUAL_TOTAL
[                main] [ INFO] (14:18:02.363)         icCube.visualTotalsIntermediateMembers : true

[     docs-on-startup] [ INFO] (14:18:07.564)            max mem : 16.0MB
[     docs-on-startup] [ INFO] (14:18:07.565)  max mem per cache : 4096KB
[     docs-on-startup] [ INFO] (14:18:07.565)  min mem per cache : 128KB

Solution

  • Your resultCacheConfiguration is correct; you can check the actual cache configuration using the Monitoring/Runtime application (see picture attached).

    enter image description here

    The log file is about the old way of configuring that cache in icCube.xml and as you've no such property in the icCube.xml file you're seeing default values.