Asynchronous Infinispan异步复制队列-配置时不使用
目标 我有一个在嵌入式+复制模式下使用Infinispan的集群。集群大小仅为2个系统。为了检验通过使用复制队列进行异步复制所获得的性能收益,我进行了一些试验,其详细信息如下所示 下面是我正在使用的基本测试设置 集群:具有以下Infinispan配置的简单2节点集群 代码:我使用“async_repl_cache”(请参阅下面粘贴的infinispan.xml)的配置作为模板配置创建了一个异步缓存,并且我没有覆盖下面的任何配置Asynchronous Infinispan异步复制队列-配置时不使用,asynchronous,cluster-computing,infinispan,Asynchronous,Cluster Computing,Infinispan,目标 我有一个在嵌入式+复制模式下使用Infinispan的集群。集群大小仅为2个系统。为了检验通过使用复制队列进行异步复制所获得的性能收益,我进行了一些试验,其详细信息如下所示 下面是我正在使用的基本测试设置 集群:具有以下Infinispan配置的简单2节点集群 代码:我使用“async_repl_cache”(请参阅下面粘贴的infinispan.xml)的配置作为模板配置创建了一个异步缓存,并且我没有覆盖下面的任何配置 templateCfg = ecManager.getCach
templateCfg = ecManager.getCacheConfiguration("async_repl_cache");
ecManager.defineConfiguration(cacheName, templateCfg);
版本:我在嵌入式模式下使用Infinispan的5.3.0
Infinispan配置XML
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:6.0 http://www.infinispan.org/schemas/infinispan-config-5.3.xsd"
xmlns="urn:infinispan:config:5.3">
<global>
<transport nodeName="${nodeName}">
<properties>
<property name="configurationFile" value="jgroups_tcp.xml"/>
</properties>
</transport>
</global>
<default>
<clustering mode="replication">
<sync/>
</clustering>
</default>
<namedCache name="repl">
<!-- Use the configuration of the default cache as it is -->
</namedCache>
<namedCache name="async_repl_cache">
<jmxStatistics enabled="true"/>
<clustering mode="replication">
<async useReplQueue="true" replQueueInterval="2000" />
</clustering>
</namedCache>
</infinispan>
观察结果
- 我使用具有50K条目的简单缓存执行了一个小测试。一个节点只执行put,另一个节点只接收来自远程系统的put。这主要是为了获得同步和异步模式下的明确延迟测量差异。我注意到的是,50K看跌期权的持续时间保持不变
- 编写了一个简单的Btrace脚本来跟踪是否调用了org.infinispan.remoting.ReplicationQueueImpl的
方法,以便我可以确保队列用于复制远程调用我注意到从未调用此方法add
- 使用VisualVM的采样器查看对
方法的调用是否可以跟踪到put
我观察到RPC的整个调用堆栈是在调用方的线程中进行的,而不是org.infinispan.remoting.ReplicationQueueImpl
线程计划的复制
根据您的描述,我感觉您的测试如下:
所以我的建议是首先启动两个节点,然后执行puts