2014-06-25 2 views
1

나는 gridgain doe가 오프 헤아리기 위해 항목을 제거하지 않고 단순히 버려야하는 문제에 직면하고 있습니다. 캐시에 대한 나의 구성은 내가 1 개 백만 항목 N 캐시를 삽입하기 시작하지만, 풋 작업의 끝에서, 나는 오프 힙 0 항목 (크기()를 사용하여) onheap 40,000 항목을 볼GridGain Eventlyon offheap to

<bean id="test-cache" class="org.gridgain.grid.cache.GridCacheConfiguration"> 
    <property name="name" value="testCache"/> 
    <property name="cacheMode" value="LOCAL" /> 
    <property name="memoryMode" value="ONHEAP_TIERED"/> 
    <property name="swapEnabled" value="false"/> 
    <property name="offHeapMaxMemory" value="#{1024 * 1024 * 1024 * 3}"/> 
    <property name="evictionPolicy"> 
     <!-- LRU eviction policy. --> 
     <bean class="org.gridgain.grid.cache.eviction.lru.GridCacheLruEvictionPolicy"> 
      <property name="maxSize" value="40000"/> 
     </bean> 
    </property> 
    </bean> 

입니다 (사용 offHeapEntriesCount()). 나는 다른 사람들이 버려 졌음을 나타내는 어떤 일이라도 반복 할 수 없다. 나는 그때 힙 스토리지에서 찾을 희망했다.

답변

1

언뜻보기에는 offHeapMaxMemory이 실제 메모리 크기 (바이트)이므로 3MB의 메모리 힙만 할당하므로 매우 작습니다.

offHeapMaxMemory을 0으로 설정하십시오. 이는 제한이 없음을 의미하며 예상되는 동작을하는지 확인하십시오.

+0

이 문제는 실수를 long으로 변환하지 않아서 부정적인 크기를 할당하는 결과를 낳았습니다. 그러나 같은 구성이 OFFHEAP_TIERED와 함께 작동하기 때문에 이전에이 실수를 저지하지 못했습니다. OFFHEAP_TIERED는 음수 할당 검사를 수행하고 최대로 설정하지만 ONHEAP_TIERED에는 그러한 검사가없는 것으로 보입니다. 나는 적어도 잘못된 할당의 경우에 경고 나 오류를 가져야한다고 생각한다. – GDS

+0

@GDS Javadoc에 따르면 음의 값은 실제로 오프 힙 저장을 비활성화합니다. – Dmitriy

1

문제점을 파악했습니다. 실제로는 3GB의 할당 이었지만 스프링 표현식은이를 Integer로 간주하고 할당 크기를 음수로 만드는 최대 정수 값을 위반했습니다.

<property name="offHeapMaxMemory" value="#{1024L * 1024L * 1024L * 3L}"/> 
관련 문제