如何使一致性完全分布(没有本地缓存​​)

时间:2014-01-23 03:52:25

标签: oracle oracle-coherence

我的连贯性配置非常简单:

<cache-config>
    <caching-scheme-mapping>
        <cache-mapping>
            <cache-name>*</cache-name>
            <scheme-name>distributed</scheme-name>
        </cache-mapping>

    </caching-scheme-mapping>

    <caching-schemes>
        <distributed-scheme>
            <scheme-name>distributed</scheme-name>
        </distributed-scheme>
    </caching-schemes>

</cache-config>

并且预期的行为是每次读取都将进入分区,但是从perf测试我可以看到读取是在本地完成的 - 没有网络调用发生。

我试图遵循官方文档,但无法找到如何使缓存完全分发。任何建议将不胜感激!

2 个答案:

答案 0 :(得分:2)

您可以将到期时间设置为1毫秒,它将完成工作。名为<expiry-delay>

的属性

例如:

</caching-schemes>
 <distributed-scheme>
  <scheme-name>cache-distributed</scheme-name>
  <service-name>Foo</service-name>
    <lease-granularity>member</lease-granularity>
    <backing-map-scheme>
    <read-write-backing-map-scheme>
      <internal-cache-scheme>
        <local-scheme>
          <expiry-delay>1ms</expiry-delay>
        </local-scheme>
      </internal-cache-scheme>
    </read-write-backing-map-scheme>
  </backing-map-scheme>
 </distributed-scheme>
</caching-schemes>

这是我们曾经使用过的解决方法,也许它适合你。

答案 1 :(得分:1)

在禁用本地存储的情况下运行。在缓存方案声明中将值设置为false,或者像vm prameter一样传递它。 假