2014-12-03 2 views
0

나는 gridgain을 처음 사용하고 있으며 gridgain을 사용하여 POC를 수행하고있다. 우리는 파티션 된 캐시를 사용하는 몇 가지 간단한 예제를 수행했지만 잘 작동하지만 노드를 가져 오면 해당 노드에서 캐시가 사라지는 것을 발견했습니다. 그래서 제 질문은 : 우리가 계속 pataneed 모드를 사용하는 경우, 노드 (또는 여러 노드)를 배치 해제 할 때 캐시를 다시 분산시킬 수있는 방법이 있는지의 여부입니다. 그렇지 않다면, 그것을 할 수있는 좋은 방법이 있습니까? 감사!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 바람둥이 7 서버에 같은 전쟁 (구성 이상 사용)를 배포했습니다. 백업 수를 지정하지 않았으므로 기본적으로 1이어야합니다.

후속 나는 구성 = 퍼팅 백업에 의해 1이 문제를 해결했다. 이전처럼 백업 복사본을 만들지 않은 것처럼 보입니다. 그러나 그것은 기본적으로 1 복사해야합니다. 또한 한 번에 2 개의 노드를 가져 오려고하면 캐시의 일부가 사라진 것을 보았습니다. 따라서 백업을 2로 설정하고 이번에는 캐시 손실을 발견하지 못했습니다. 따라서 주 노드를 제외한 모든 노드가 충돌하는 매우 나쁜 경우에는 데이터 손실을 막기 위해 노드 수 -1 개의 백업이 필요합니다. 하지만 그렇게하면 복제 모드와 같아지고 복제 모드는 쿼리 및 트랜잭션에 대한 제한이 적습니다. 그래서 내 질문은 : 우리가 병렬 계산의 이점을 취할 필요가 있고 최상의 시간에 노드가 충돌 할 때 데이터 손실을 막고 싶다면?

감사합니다.

+0

구성을 제공 할 수 있습니까? 구성한 백업 노드의 수는 얼마입니까? – Dmitriy

+0

@Dmitriy 문제는 해결되었지만 여전히 하나의 질문이 있습니다. 나는 그것을 이전 게시물에 추가했습니다. 감사! –

답변

0
  1. 기본적으로 백업 수는 0입니다. 설명서가 수정되었습니다.
  2. 당신은 복제 모드에 관한 것입니다. 데이터 손실이 걱정된다면 REPLICATED 모드가이를 보장 할 수있는 유일한 방법입니다. 단점은 클러스터의 모든 노드가 업데이트되므로 쓰기가 느려지 게된다는 것입니다. 장점은 모든 노드에서 데이터를 사용할 수 있으므로 노드를 보낼 걱정없이 계산에서 쉽게 액세스 할 수 있다는 것입니다.
+0

그래서 REPLICATED MODE를 수행하면 PARTITIONED MODE에서 'function to data'와 같은 방식으로 노드 전체에서 병렬 계산을 수행 할 수 있습니까? 가장 먼저 내 생각에 캐시 키 목록을 각 노드로 보내고 목록으로 나누는 것이지만 모든 데이터를 보유하고있는 큰 캐시를 통과해야하기 때문에 성능을 저하시킬 수 있습니다.이를 달성하기위한 좋은 방법이 있습니까? 감사! –

+0

@AaronL 목록 개념의 목록을 잘 모르겠다. REPLICATED 모드에 관해서는 내부적으로 모든 키가 기본 노드를 갖고 클러스터 노드의 나머지 부분이 백업 인 PARTITIONED 모드로 처리됩니다. 기본 세트를 통해서만 계속 반복 할 수 있으며 여전히 키 - 노드 선호도를 사용할 수 있습니다. – Dmitriy

관련 문제