【发布时间】:2016-08-18 05:33:38
【问题描述】:
我在两个 jvm 中运行了一个带有两个 ignite 缓存节点的示例。每个 jvm 运行一个 ignite 节点。节点映射到同一个缓存。
ignite-config.xml
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
...
<property name="cacheConfiguration">
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<!-- Set a cache name. -->
<property name="name" value="cacheName"/>
<!-- Set cache mode. -->
<property name="cacheMode" value="PARTITIONED"/>
<!-- Number of backup nodes. -->
<property name="backups" value="1"/>
...
</bean>
</property>
</bean>
测试步骤:
- 其中一个ignite节点先启动,写入10条 数据(键值:1-1,2-2,3-3...10-10)。
- 然后第二个启动并映射到缓存。
- 然后点燃节点开始重新平衡数据 为他们。第一个节点有 4 个,第二个有 6 个。
- 然后我杀死第一个缓存节点的 jvm。
结果:备份节点没有像我预期的那样拥有 10 块。为什么?
【问题讨论】:
-
这不应该发生。您如何检查哪些条目由哪些节点拥有?可以展示一下测试代码吗?
-
@Valentin 我使用 ignitevisorcmd.sh,它提供了一个 cmd:cache -swap 和 cache -scan -c=@c0 -id8=@n0
-
你杀死一个节点后是否尝试查询缓存?还是您只是使用了 ignitevisorcmd.sh。这也可能是监控软件的一个bug,所以你应该通过查询来测试它是否有密钥。 (不太可能,但有可能)是否会影响您杀死哪个节点?
-
@CarlosBribiescas 也许吧,我明天测试一下。你之前测试过吗?你能给我一个真正有效的例子吗?
-
cache -scan仅显示我认为的主要条目。节点被杀死后IgniteCache.size()返回什么?
标签: ignite