Я новичок в gridgain, и мы делаем POC с помощью gridgain. Мы сделали несколько простых примеров с использованием секционированного кеша, он работает хорошо, однако мы обнаружили, что когда мы отключаем узел, кеш этого узла исчезает. поэтому мои вопросы: если мы продолжаем использовать режим разделения, есть ли способ перераспределить кеш, когда узел (или несколько узлов) не развернут. если нет, есть ли хороший способ сделать это? Спасибо!
Код конфигурации:
<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 узла одновременно, я увидел, что часть кеша исчезла, поэтому я установил backups=2 и на этот раз не обнаружил потери кеша. так что похоже, что в очень плохом случае, когда все узлы, кроме основного узла, выходят из строя, нам нужно иметь # узлов -1 резервных копий, чтобы предотвратить потерю данных. но если я это сделаю, то это похоже на реплицированный режим, а реплицированный режим имеет меньше ограничений на запросы и транзакции. Итак, мой вопрос: если нам нужно воспользоваться преимуществами параллельных вычислений и в то же время мы хотим предотвратить потерю данных при сбое узлов, какова наилучшая практика?
Спасибо!