2014-11-15 4 views
1

내부 메트릭 수집 서버 솔루션을 위해 POC 용 Akka 지속성을 사용하고 있습니다. 우리는 가능한 한 빛 (메모리 및 CPU 단위)을 유지하려고합니다. 우리는 inmemory 저널과 파일 스냅 샷을 사용하고 있습니다. 모든 것이 작동하지만 유일한 문제는 우리가 가지고있는 스냅 샷의 수입니다. 우리는 이미 마지막 스냅 샷 (퍼시스턴스 액터 당 당연히)을 제외한 모든 것을 제거하고 있지만, 파일의 수가 너무 많습니다 (우리는 많은 액터를 생성하고 있습니다).스냅 샷 플러그인과 이벤트 저장소의 메모리와 CPU가 가장 가벼운 조합은 무엇 일 수 있습니까?

그래서 우리가 여전히 빛을 유지할 수있는 스냅 샷 플러그인/이벤트 저장소의 가장 좋은 조합은 무엇입니까?

  • H2/Derby + JDBC?
  • 로컬 MongoDB와 --smallfiles?
  • 어떤 방식 으로든 임베디드 몽고를 사용하려고 시도했습니다. (필자가 지금까지 본 모든 것은 테스트 목적으로 만 사용되었으며, 충분히 안정적인지는 확실하지 않습니다.)
  • 다른 아이디어가 있습니까?

우리는 현재 배포를 계획하지 않고 성능 테스트를 통해 사용 사례에 대한 충분한 숫자를 얻을 수 있으므로 같은 컴퓨터에 머무르는 것이 적합하며 충분해야합니다.

답변

1

에만 스냅 샷 또는 저장소 크기는 당신이 필요한 경우, 다음 사항을 고려한다 : 저널 이벤트/스냅 샷

  • 사용 시리얼 지원하는 압축으로 저장된 데이터를 최적화

    1. kryo/akka-kryo-serialization
    2. 데이터를 선택 압축을 지원하는 저장소 (예 : cassandra) 및 적절한 플러그인 akka-persistence-cassandra

    이 모든 것이 성능에 영향을 미칠 수 있습니다.

  • +0

    카산드라는 경량이라고 생각하지 않습니까? 1)과 2)는 스냅 샷 파일 저장소에 머물기로 결정하면 영향을 줄이는 데 유용한 팁입니다. –

    +0

    네, 카산드라는 그다지 가볍지는 않지만 인프라를 고려하지 않았다고 생각했습니다. 인프라뿐만 아니라 저장된 데이터의 크기를 최소화하려는 경우 즉시 압축을 통해 파일 기반 저장소 및 파일 시스템을 사용해야합니다. (예 : ZFS, Reiser4) – hicolour

    +0

    좋은 조언. 더 많이 나는 조심스럽게 조정 된 PostgreSQL DB를 설정하는 것만으로도 충분하다고 생각합니다. 그것이 말하게되면, 나는 다른 아이디어를 위해 조금 더 오래 기다릴 것이고 그렇지 않다면 당신의 대답을 받아 들일 것이다. –