Gridgain:当一个节点关闭时如何重新分配分区模式缓存

时间:2014-12-03 16:35:02

标签: gridgain

我是gridgain的新手,我们正在使用gridgain进行POC。我们使用分区缓存做了一些简单的例子,它运行良好但是我们发现当我们关闭节点时,来自该节点的缓存消失了。所以我的问题是:如果我们继续使用patitioned模式,是否有任何方法在取消部署节点(或多个节点)时重新分配缓存。如果没有,有什么好办法吗?谢谢!

配置代码:

<context:component-scan base-package="com.test" />
 <bean id="hostGrid" class="org.gridgain.grid.GridSpringBean">
    <property name="configuration">
       <bean class="org.gridgain.grid.GridConfiguration">
    <property name="localHost" value="127.0.0.1"/>
    <property name="peerClassLoadingEnabled" value="false"/>
    <property name="marshaller">
        <bean class="org.gridgain.grid.marshaller.optimized.GridOptimizedMarshaller">  
            <property name="requireSerializable" value="false"/>
        </bean>
    </property
    <property name="cacheConfiguration">
        <list>
            <bean class="org.gridgain.grid.cache.GridCacheConfiguration">
                <property name="name" value="CACHE"/>
                <property name="cacheMode" value="PARTITIONED"/>
                <property name="store" >
                    <bean class="com.test.CacheJdbcPOCStore"></bean>
                </property>
            </bean>

        </list>
    </property>
</bean>
     </property>
 </bean> 

我们将相同的战争(使用上述配置)部署到3个tomcat 7服务器。我们没有指定备份数,因此默认情况下它应该是1。

跟进

我通过在配置中放置backups = 1解决了这个问题。看起来像以前它没有创建备份副本。但它应该制作1份,因为它是默认的。另外,当我试图同时关闭2个节点时,我看到部分缓存消失了,所以我设置了备份= 2,这次没有发现缓存丢失。所以看起来如果在一个非常糟糕的情况下,除了主节点之外的所有节点都崩溃了,我们需要有#节点-1备份以防止数据丢失。但如果我这样做,那就像复制模式一样,复制模式对查询和事务的限制较少。所以我的问题是:如果我们需要利用并行计算的优势,并且在节点崩溃时希望防止数据丢失,那么最佳做法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 默认情况下,备份数为0。文档已修复。
  2. 你对REPLICATED模式是正确的。如果您担心任何数据丢失,REPLICATED模式是保证它的唯一方法。这里的缺点是写入会变慢,因为群集中的所有节点都将更新。优点是数据在每个节点上都可用,因此您可以轻松地从计算中访问它,而无需担心将节点发送到哪个节点。