2014-06-23 79 views
0

我已经在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> 

回答

0

您可以尝试以下操作:

集:

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

这一战略指示缓存不为无效事件听的。当业务需求允许使用可能不是绝对最新的数据时,这是原始性能和可扩展性的最佳选择。数据新鲜度可通过使用足够短逐出策略来保证前缓存 http://docs.oracle.com/cd/E18686_01/coh.37/e18677/cache_config.htm

  • 从第二个客户端
  • 添加条目缓存
  • 更新条目验证第一客户端未修改的条目
0

“common-cache”确实使用“near-cache”方案,因此这是您正在查找的行为。

为了测试它,访问100000个不同的(并且不存在的)密钥,例如,新的整数(1)通过新的整数(100000),并测试时间。现在“放入”整数(1)的键,例如

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

然后重复第一次测试,而不是访问1到100000,只需重复访问“新的Integer(1)” - 100,000次!

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