0
시작시 모든 값을로드하고 단일 데이터베이스 호출로이 값을 강제로 저장하려면 어떻게해야합니까? 열심히로드하는 작업을 수행하는 maploader를 구성하는 것이이 작업을 수행하지 않는 것입니까? 대신 개별 값이로드되므로 데이터베이스에 많은 왕복이 발생합니다.Hazelcast MapLoader 성능 - 데이터베이스에서 모든 값을 강제로로드합니다.
MapLoader 구현 조각은 다음과 같습니다
public V load(K key) {
// issues a SQL query
return databaseService.findByPrimaryKey(key);
}
이 이 구성은 다음과 같습니다
: mapStoreCfg.setImplementation이 (로더)
.setInitialLoadMode (MapStoreConfig.InitialLoadMode.EAGER가)
사용중인 Hazelcast의 버전은 무엇입니까? 다음과 같이 작동하도록 설계되었습니다. 하나의 클러스터 멤버가 모든 키를로드 한 다음 클러스터 멤버에게 배포합니다. 그것은 값로드를 일괄 처리하고 배치 크기가 1,000으로 설정되어 있다고 생각합니다. –
사용하기 3.8.1. 하지만 성능은 데이터베이스에 비해 매우 좋지 않습니다. 우리가 실제로해야 할 일은 하나의 SELECT * 문을 사용하여 모든 행을 가져 오는 것입니다. – hklf
HELTSCEL을 선택하게하려면'SELECT * statement'이 좋지 않습니다. 1. 모든 멤버가 키 - 값 쌍을로드하고 다른 멤버에게 배포합니다. 이 구성원은 병목이됩니다. 2. 모든 멤버는'select * statement'를 얻을 수 있습니다. 그러나 이것은 DB에 불필요한로드를 생성 할 수 있습니다. 모든 구성원은 DB에서 모든 키를 가져올 수 있습니다. –