우리는 500,000 개의 하위 개체 모음이있는 상위 개체가 있습니다. 우리는 ehcache를 캐시 제공자로 매핑하기 위해 Hibernate를 사용하고있다. 엔티티와 콜렉션에 2 차 레벨 캐시를 사용하면 데이터베이스에 대한 요청을 피할 수 있으므로 잘 작동합니다.2 차 레벨 캐시 사용에도 불구하고 큰 컬렉션의 성능 문제를 해결하십시오
그러나 2 차 수준 캐시로 500,000 개의 개체를로드하면 여전히 많은 CPU 및 메모리 가비지가 생성되어 몇 초의 응답 시간이 소요됩니다. 자식 객체는 불변하지 않기 때문에 우리는 hibernate.cache.use_reference_entries 속성을 활성화 할 수 없다.
최대 절전 모드 2 수준 캐시 상단에 dao 개체의 응용 프로그램 계층 캐시를 사용하면 CPU 및 가비지 메모리 오버 헤드가 없습니다. 응답 시간은 초 단위가 아닌 몇 밀리 초입니다.
그러나이 솔루션의 가장 큰 단점은이 캐시를 직접 관리해야한다는 것입니다. 클러스터 된 멀티 스레딩 시스템에 무효화 및 동기화 포함
저의 CPU와 쓰레기의 장점이있는 더 나은 솔루션이 있다면 제 질문은 무엇입니까? 대형 컬렉션을 다룰 때 경험이있는 사람이 있습니까?