capacityFactor> 0节点被重新添加到群集中,系统无法恢复到稳定状态?

时间:2018-02-12 13:17:31

标签: java infinispan

我从JBoss论坛复制了以下问题。我们遇到了同样的问题。

以下是我的情景:

我只有一个DIST_SYNC缓存,群集中的大多数JVM都配置了capacityFactor = 0(类似于Coherence的distibutedlocalstorage=false属性),某些节点配置了capacityFactor>0(例如1000)。我们讨论的是100个节点capacityFactor=0和另外4个节点,其中集群是单个“站点/机架”。分区处理已关闭,numOwners为1。

capacityFactor > 0的所有节点都关闭时,群集会进入降级状态,如果没有完全重新启动集群,它将无法再恢复。

如果我启用分区处理,可以抛出有效的异常,我认为是预期的行为(Infinispan用户指南)。

我认为这是问题而且是一个错误:

  

14/11/17 09:27:25 WARN topology.CacheTopologyControlCommand:   ISPN000071:处理命令时发生异常   CacheTopologyControlCommand {cache = shared,type = JOIN,   sender = testserver1 @ xxxxxxx-22311,site-id = xxx,rack-id = xxx,   machine-id = 24字节,   joinInfo=CacheJoinInfo{consistentHashFactory=org.infinispan.distribution.ch.impl.TopologyAwareConsistentHashFactory@78b791ef,   hashFunction = MurmurHash3,numSegments = 60,numOwners = 1,timeout = 120000,   totalOrder = false,distributed = true},topologyId = 0,rebalanceId = 0,   currentCH = null,pendingCH = null,availabilityMode = null,throwable = null,   viewId = 3}

java.lang.IllegalArgumentException:缓存拓扑的待定一致哈希必须包含所有当前一致哈希的成员

    at org.infinispan.topology.CacheTopology.<init>(CacheTopology.java:48)

    at org.infinispan.topology.CacheTopology.<init>(CacheTopology.java:43)

    at org.infinispan.topology.ClusterCacheStatus.startQueuedRebalance(ClusterCacheStatus.java:631)

    at org.infinispan.topology.ClusterCacheStatus.queueRebalance(ClusterCacheStatus.java:85)

    at org.infinispan.partionhandling.impl.PreferAvailabilityStrategy.onJoin(PreferAvailabilityStrategy.java:22)

    at org.infinispan.topology.ClusterCacheStatus.doJoin(ClusterCacheStatus.java:540)

    at org.infinispan.topology.ClusterTopologyManagerImpl.handleJoin(ClusterTopologyManagerImpl.java:123)

    at org.infinispan.topology.CacheTopologyControlCommand.doPerform(CacheTopologyControlCommand.java:158)

    at org.infinispan.topology.CacheTopologyControlCommand.perform(CacheTopologyControlCommand.java:140)

    at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher$4.run(CommandAwareRpcDispatcher.java:278)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

    at java.lang.Thread.run(Thread.java:745)

在该错误之后,每个“put”都会产生:

14/11/17 09:27:27 ERROR interceptors.InvocationContextInterceptor:ISPN000136:执行错误

org.infinispan.util.concurrent.TimeoutException:超时等待拓扑1

    at org.infinispan.statetransfer.StateTransferLockImpl.waitForTransactionData(StateTransferLockImpl.java:93)

    at org.infinispan.interceptors.base.BaseStateTransferInterceptor.waitForTransactionData(BaseStateTransferInterceptor.java:96)

    at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:188)

    at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:95)

    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)

    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

    at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:148)

    at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:134)

    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)

    at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)

    at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:102)

    at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:71)

    at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:35)

    at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71)

    at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333)

    at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1576)

    at org.infinispan.cache.impl.CacheImpl.putInternal(CacheImpl.java:1054)

    at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:1046)

    at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:1646)

    at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:245)

请帮助解决此问题。

0 个答案:

没有答案