2016-10-04 5 views
0

저는 리포지토리를 hazelcast로 변경하기 위해 특정 프로젝트를 진행하고 있습니다. 데이터 범위, 상점 유형 및 상점 ID별로 일부 문서를 찾아야합니다. 내 테스트 동안 나는 하나의 인스턴스 c3.large를 사용하여 90k 처리량을 얻었지만 더 많은 인스턴스가있는 동일한 테스트를 실행할 때 결과가 크게 줄어 들었습니다 (10 인스턴스 500k 및 20 인스턴스 700k).술어 질문이 포함 된 대규모 쿼리

  • hazelcast.query.predicate.parallel.evaluation
  • hazelcast.operation.generic.thread.count
  • Hz에서 : 쿼리 이 숫자는 내가 몇 가지 속성을 조정 수있는 최선이었다

더 많은 처리를 위해 인스턴스를 c3.2xlarge로 변경하려했으나 숫자가 맞지 않습니다. 가격.

이 시나리오에서 헤이즐 캐스팅을보다 빠르게 최적화하려면 어떻게해야합니까? 내 사용자의 경우 map.get (key)을 사용하지 않고 map.values ​​(predicate) 만 사용합니다.

설정 :

  • Hazelcast 3.7.1
  • 지도 데이터 구조와 같은;
  • 복합체 사용 IdentifiedDataSerializable;
  • 지도 색인이 구성되었습니다.
  • 지도상의 2000 개 문서;
  • 스프링 부트 응용 프로그램 (싱글 톤)으로 구성된 Hazelcast 임베디드.
  • 같은 지역의 모든 인스턴스입니다.

테스트

  • 개틀링 서비스 모니터로
  • 새로운 유물.

도움이되었습니다. 감사.

답변

0

유스 케이스에 술어가있는 map.values ​​만있는 경우 객체 유형을 메모리 내장 스토리지 모델로 사용하는 것이 좋습니다. 이렇게하면 쿼리를 실행하는 동안 직렬화가 수행되지 않습니다.

다른 한편으로는 회원이 1 명일 때 매우 높은 숫자를 얻는 것이 일반적입니다. 네트워크를 통해 이동하는 데이터가 없기 때문입니다. 잠재적으로 개선하기 위해, 나는 높은 네트워크 용량으로 EC2 인스턴스를 점검 할 것입니다. 예를 들어 c3.8xlarge는 c3.2xlarge와 함께 제공되는 High에 비해 10Gbit 네트워크를 사용합니다.

얼마나 많은 돈을 벌 수 있을지는 약속 할 수 없지만, 먼저 이러한 변경 사항을 시도해 보겠습니다.

+0

답변 해 주셔서 감사합니다. 객체 유형을 메모리 내장 스토리지 모델로 사용하고 있습니다. 이 게시물에 따라 모든 모범 사례를 수행하고 있습니다. http://blog.hazelcast.com/for-faster-hazelcast-queries/ 마이크로 서비스 규모 전략은 수직이 아니고 수평이라고 생각합니다. –