캐시가 한 노드에 유지되고 다른 노드에서 액세스되는 구성이 있습니다. get() 및 put()을 완벽하게 잘 수행 할 수 있지만 size(), keySet() 등의 일부 연산은 올바른 결과를 반환하지 않습니다.GridGain 원격 캐시 크기는 항상 0입니다.
Test1을 클라이언트 노드 캐시 설정
<bean id="test-cache" class="org.gridgain.grid.cache.GridCacheConfiguration">
<property name="name" value="testCache"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="distributionMode" value="CLIENT_ONLY" />
<property name="swapEnabled" value="true"/>
</bean>
Test1을 클라이언트 노드 클래스
public class GridGainTest1
{
public static void main(String[] args) throws Exception
{
//Client Mode
Grid g = GridGain.start("etc/config/grid-test1.xml");
//Put in Remote Cache
g.cache("testCache").put(1, "ABC");
g.cache("testCache").put(2, "XYZ");
System.out.println("Size of Cache :- " + g.cache("testCache").size());
System.out.println("Value for 1 :- " + g.cache("testCache").get(1));
System.out.println("Value for 2 :- " + g.cache("testCache").get(2));
}
Test2를 데이터 노드 캐시 설정
<bean id="test-cache" class="org.gridgain.grid.cache.GridCacheConfiguration">
<property name="name" value="testCache"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="swapEnabled" value="true"/>
</bean>
Test2를 데이터 노드 클래스
,노드 1의 출력은 맵에 항목이 있어도 크기가 0 인 경우 다음과 같습니다. 이것이 잘못된 설정 때문인지 확실하지 않습니다. GridGain 캐시 API의 메소드
Size of Cache :- 0
Value for 1 :- ABC
Value for 2 :- XYZ
솔루션이 작동합니다. 그러나 내가 힙 캐시 (cacheMode = LOCAL 및 memoryMode = OFFHEAP_TIERED)에서 로컬 크기로 가져 오려고하면 값이 있지만 크기가없는 동일한 문제가 발생합니다. 위의 코드조차도 작동하지 않습니다. 어떤 아이디어? – GDS
'size()'메서드는 on-heap 항목의 수를 반환합니다. 'OFFHEAP_TIERED'메모리 모드가 사용되면, 캐시 엔트리는 바로 오프 힙에 저장된다. 캐시의 오프 힙 항목 수를 얻으려면,'GridCache.offheapEntriesCount()'를 사용하십시오. – Alexey