方案附近的测试一致性

时间:2014-06-23 00:20:03

标签: oracle caching oracle-coherence

我在Coherence中设置了一个近端方案缓存,具有本地前端方案和远程后端方案。

我认为配置是正确的,但我想确保它在后面检查前端缓存。

我该如何测试?我正在使用Windows。

我的配置如下:

<?xml version="1.0"?>
<cache-config xmlns="http://schemas.tangosol.com/cache">
  <caching-scheme-mapping>
    <cache-mapping>
      <cache-name>common-cache</cache-name>
      <scheme-name>near-cache</scheme-name>
    </cache-mapping>
  </caching-scheme-mapping>
  <caching-schemes>
    <near-scheme>
      <scheme-name>near-cache</scheme-name>
      <invalidation-strategy>all</invalidation-strategy>
      <front-scheme>
        <local-scheme>
          <scheme-ref>local</scheme-ref>
        </local-scheme>
      </front-scheme>
      <back-scheme>
        <remote-cache-scheme>
          <scheme-ref>remote</scheme-ref>
        </remote-cache-scheme>
      </back-scheme>
    </near-scheme>
    <remote-cache-scheme>
      <scheme-name>remote</scheme-name>
      <service-name>ExtendTcpCacheService</service-name>
      <initiator-config>
        <tcp-initiator>
          <remote-addresses>
            <socket-address>
              <address>xxx.xxx.xxx.com</address>
              <port>555</port>
            </socket-address>
          </remote-addresses>
          <connect-timeout>5s</connect-timeout>
        </tcp-initiator>
        <outgoing-message-handler>
          <request-timeout>30s</request-timeout>
        </outgoing-message-handler>
        <serializer>
          <class-name>Tangosol.IO.Pof.ConfigurablePofContext, Coherence</class-name>
          <init-params>
            <init-param>
              <param-type>string</param-type>
              <param-value>web://~/coherence-pof-config.xml</param-value>
            </init-param>
          </init-params>
        </serializer>
      </initiator-config>
    </remote-cache-scheme>
    <local-scheme>
      <scheme-name>local</scheme-name>
      <eviction-policy>HYBRID</eviction-policy>
      <high-units>1000</high-units>
      <low-units>750</low-units>
      <unit-calculator>FIXED</unit-calculator>
      <expiry-delay>10d</expiry-delay>
      <flush-delay>1d</flush-delay>
    </local-scheme>
  </caching-schemes>
</cache-config>

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

组:

 <invalidation-strategy>None</invalidation-strategy>

此策略指示缓存根本不监听失效事件。当业务需求允许使用可能不是绝对最新的数据时,这是原始性能和可伸缩性的最佳选择。通过使用前端缓存的足够简短的逐出策略,可以保证数据的新鲜度 http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_config.htm

  • 将条目添加到缓存
  • 从第二个客户端更新条目
  • 验证第一个客户端是否有未经修改的条目

答案 1 :(得分:0)

&#34;共用高速缓冲存储器&#34;确实使用&#34; near-cache&#34;方案,这就是你要寻找的行为。

要测试它,请访问100000个不同(和不存在)的密钥,例如new Integer(1)通过new Integer(100000),并测试时间。现在&#34;放&#34; Integer(1)中的一个键,例如

cache.put(new Integer(1), "hello world")

然后重复第一次测试,但不是访问1到100000,只需访问&#34; new Integer(1)&#34;反复 - 100,000次!

第一次测试可能需要一两分钟(取决于服务器数量,它们是否在同一台机器上等)。第二次测试应该不到一秒钟。