0

我有一个这样配置的持久缓存:-

<region name="stock-hist" refid="PARTITION_PERSISTENT" >
  <region-attributes disk-store-name="myOverflowStore" disk-   synchronous="false">
<partition-attributes local-max-memory="1024" />
<eviction-attributes>
  <!-- Overflow to disk when 100 megabytes of data reside in the
       region -->
  <lru-memory-size maximum="100" action="overflow-to-disk"/>
</eviction-attributes>
</region-attributes>

问题是,当我存储 8 GB 的数据时,缓存会由于内存过多而崩溃。我不希望这种情况发生。就像我需要数据在超过 100MB 时溢出到磁盘,但是如果我尝试访问它,则将其返回缓存。我也想要持久缓存。

此外,如果我写到数据库后面,我怎么能在一段时间后驱逐数据。

这是如何运作的?

4

1 回答 1

0

这是一个不打算使用内存数据网格的用例。根据您描述的问题,您应该考虑使用关系数据库或者您应该增加内存以使用IN-MEMORY数据网格。溢流功能旨在用作安全阀,而非“正常”使用。

当您说“它”由于“太多”内存而崩溃时,我不明白,因为它显然没有“足够”的内存。我怀疑没有定义足够的磁盘空间。如果您不这么认为,请检查您的显式和非隐式磁盘分配。

至于基于时间的驱逐/到期,请参阅“PARTITION_HEAP_LRU”: http: //gemfire.docs.pivotal.io/docs-gemfire/latest/reference/topics/region_shortcuts_reference.html

于 2016-10-16T03:24:54.877 回答