2014-10-20 2 views
0

hazelcastcache cluster으로 사용하고 있습니다.헤이즐 캐스팅 맵에 더 많은 데이터를 포함하도록 파티션 크기를 늘리십시오.

나는 3 개의 테이블에 대해 3 개의 맵 스토어를 mysql에 가지고있다. 각 테이블에는 100000 개의 레코드가 있습니다. hazelcast의 세 인스턴스를 시작하여 내지도에이 테이블을로드하려면 different maps을 입력하십시오. 하지만 문제.

첫 번째 인스턴스를 시작하고 모두 첫 번째 테이블에 대해 load all을 호출하면 모든 100000 항목이로드되지만 두 번째 테이블을로드 할 때 두 번째 테이블에 동일한 프로세스가로드되면 49449 항목이로드되고 세 번째 인스턴스에서는 33249 개만로드됩니다.

이 테이블을로드하는 데 3 가지 Java 코드를 사용하고 있습니다. 내 파티션 크기 기본값은 271 오류를 찾고 있었지만 위의 설명과 동일한 오류 및 데이터로드가 항상 없습니다. 문제의 원인이 될 수 있도록 도와주세요.

답변

0

MapLoader.loadAllKeys()를 호출 할 때 각 MapLoader/MapStore 구현에서로드 한 키 수를 기록 할 수 있습니까?

아마도이 상황에 대해 밝힐 수 있습니다. 이 숫자가 100k가 아니라면 문제는 HZ 내부가 아닙니다.

+0

적어도 우리는 DB에서 올바른 수의 키를 얻을 수 있다는 것을 알고 있습니다. 이것은 탄탄한 시작입니다. '각 테이블에 대한 hazelcast 인스턴스'로 무엇을 의미합니까? 클러스터를 형성하지 않거나 다른 파티션 그룹 또는 다른 것을 부여하지 않습니까? – pveentjer

+0

각 인스턴스에 대해 jabva 메인 프로그램을 노드 구조와 같이 나타 내기 위해 크레이 티드가 있습니다. 그래서 세 개의 클러스터에 세 개의 노드가 있습니다. 각 맵 저장소에 대해 config 구현에서 볼 수 있듯이 세 개의 다른 포트에 있습니다. – viren

+0

MY issues 내가 100k보다 적은 데이터를 갖는지도를 쿼리 할 때 그 키가 맵에 존재하지 않는다면 null이다. 그러나 레코드를 가져 와서지도에서 업데이트해야하는 데이터베이스에 있어야한다. – viren

관련 문제