[infinispan-issues] [JBoss JIRA] (ISPN-7019) Need better docs for memory-based eviction

John Sanda (JIRA) issues at jboss.org
Tue Sep 13 12:37:00 EDT 2016


     [ https://issues.jboss.org/browse/ISPN-7019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Sanda updated ISPN-7019:
-----------------------------
    Description: 
In order to use memory based eviction, cache entries have to be stored as binary, e.g., 

{noformat}
<infinispan>
  <cache-container default-cache="default">
    <transport cluster="HawkularMetrics"/>
    <distributed-cache name="rawData" mode="ASYNC" >
      <groups enabled="true"/>
      <store-as-binary/>
      <eviction size="2576980377" strategy="LRU" type="MEMORY"/>
      <persistence passivation="true">
        <leveldb-store path="/tmp/hawkular-metrics/jni/raw/data" shared="false" preload="false">
          <expiration path="/tmp/hawkular-metrics/jni/raw/expired"/>
          <compression type="NONE" />
          <implementation type="JAVA"/>
          <write-behind/>
        </leveldb-store>
      </persistence>
    </distributed-cache>
  </cache-container>
</infinispan>
{noformat}

Without the {{store-as-binary}}, you get exceptions like:

{noformat}
java.lang.IllegalArgumentException: Size of Class class org.hawkular.metrics.core.service.cache.MetricKey cannot be determined using given entry size calculator :class org.infinispan.container.entries.MarshalledValueEntrySizeCalculator
        at org.infinispan.container.entries.PrimitiveEntrySizeCalculator.handleObject(PrimitiveEntrySizeCalculator.java:91) ~[infinispan-core-8.1.0.Final.jar:8.1.0.Final]
{noformat}

when trying to store cache entries. This configuration setting should be more clearly documented and/or have the exception mention it as well.

  was:
In order to use memory based eviction, cache entries have to be stored as binary, e.g., 

{noformat}
<infinispan>
  <cache-container default-cache="default">
    <transport cluster="HawkularMetrics"/>
    <distributed-cache name="rawData" mode="ASYNC" >
      <groups enabled="true"/>
      <store-as-binary/>
      <eviction size="2576980377" strategy="LRU" type="MEMORY"/>
      <persistence passivation="true">
        <leveldb-store path="/tmp/hawkular-metrics/jni/raw/data" shared="false" preload="false">
          <expiration path="/tmp/hawkular-metrics/jni/raw/expired"/>
          <compression type="NONE" />
          <implementation type="JAVA"/>
          <write-behind/>
        </leveldb-store>
      </persistence>
    </distributed-cache>
  </cache-container>
</infinispan>
{noformat}

Without the {{store-as-binary}}, you get exceptions like:

{noformat}
ava.lang.IllegalArgumentException: Size of Class class org.hawkular.metrics.core.service.cache.MetricKey cannot be determined using given entry size calculator :class org.infinispan.container.entries.MarshalledValueEntrySizeCalculator
        at org.infinispan.container.entries.PrimitiveEntrySizeCalculator.handleObject(PrimitiveEntrySizeCalculator.java:91) ~[infinispan-core-8.1.0.Final.jar:8.1.0.Final]
{noformat}

when trying to store cache entries. This configuration setting should be more clearly documented and/or have the exception mention it as well.



> Need better docs for memory-based eviction
> ------------------------------------------
>
>                 Key: ISPN-7019
>                 URL: https://issues.jboss.org/browse/ISPN-7019
>             Project: Infinispan
>          Issue Type: Task
>            Reporter: John Sanda
>            Priority: Minor
>
> In order to use memory based eviction, cache entries have to be stored as binary, e.g., 
> {noformat}
> <infinispan>
>   <cache-container default-cache="default">
>     <transport cluster="HawkularMetrics"/>
>     <distributed-cache name="rawData" mode="ASYNC" >
>       <groups enabled="true"/>
>       <store-as-binary/>
>       <eviction size="2576980377" strategy="LRU" type="MEMORY"/>
>       <persistence passivation="true">
>         <leveldb-store path="/tmp/hawkular-metrics/jni/raw/data" shared="false" preload="false">
>           <expiration path="/tmp/hawkular-metrics/jni/raw/expired"/>
>           <compression type="NONE" />
>           <implementation type="JAVA"/>
>           <write-behind/>
>         </leveldb-store>
>       </persistence>
>     </distributed-cache>
>   </cache-container>
> </infinispan>
> {noformat}
> Without the {{store-as-binary}}, you get exceptions like:
> {noformat}
> java.lang.IllegalArgumentException: Size of Class class org.hawkular.metrics.core.service.cache.MetricKey cannot be determined using given entry size calculator :class org.infinispan.container.entries.MarshalledValueEntrySizeCalculator
>         at org.infinispan.container.entries.PrimitiveEntrySizeCalculator.handleObject(PrimitiveEntrySizeCalculator.java:91) ~[infinispan-core-8.1.0.Final.jar:8.1.0.Final]
> {noformat}
> when trying to store cache entries. This configuration setting should be more clearly documented and/or have the exception mention it as well.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the infinispan-issues mailing list