2011-08-20 8 views
4

내 웹 크롤러를 위해 정말 빠르고 영구적 인 캐시가 필요합니다. 그것은 Java에서 ConcurrentSkipListSet만큼 빠를 필요는 없지만 확실히 해시 인덱스 기반 테이블을 사용하여 MySQL이 될 수는 없습니다. 1m + 기록 후 프로세서 시간의 80 %가 걸립니다.

이 사례에 대해 유용한 정보를 알고 계시나요?
힌트를 보내 주셔서 감사합니다.

빠른 영구 캐시에 대한 알려진 솔루션이 있습니까?

+0

에 신흥 지속성 지원을 추적 할 수 있습니다 필요하기 때문에 "2 주"매우 낙관적으로 머물 수 물론 ConcurrentSkipListSet 레벨 1의 게임, 레벨 2의 게임입니다. – tomasb

+0

카산드라는 어떨까요? 많은 속성이 내 시나리오에 적합합니다. 빨리? – tomasb

답변

6

시도 EhCache. 디스크 백업 저장소에 대한 오버플로 및 지속성 옵션이있는 주로 인 메모리 캐시입니다. 몇 년 동안 주변에 있었고, 여전히 활발하게 개발되었고 매우 성숙했습니다.

+0

고마워요, 시도해주세요. 끔찍한 BigMemory는 무료가 아닙니다. – tomasb

+1

저는 최근에 EHCache를보고 시작했는데, BigMemory가 영속적이지 않다고 생각합니다. – Gevorg

+0

나도 그렇게 생각한다.하지만 힙이없는 저장소를 가진 GC를 유지한다. jvm은 작아서 GC가 더 빨리 돌아갈 수있다. – tomasb

5

저는 테라코타 (엔지니어가 아님)의 직원입니다.하지만 기술에 관계없이 명확성을 추가하면 답변을 얻는 데 도움이 될 것입니다.

예, Ehcache는 캐싱과 관련하여 국제적으로 50 만 개가 넘는 배포에 적합하며 분산 캐시가있는 소규모 클러스터에서 주로 사용됩니다. 응용 프로그램이 Java 기반이라면 테라코타는 "BigData"로 최대 성능 향상을 제공 할 것입니다. 왜냐하면 메모리 속도가 빠른 응용 프로그램을 제공하기 때문입니다.

  1. 예, BigMemory Go는 무료입니다. 그것의 32 기가 바이트 freemium 제공, 오픈 소스와 혼동하지 마십시오. 분산 캐시에서는 사용할 수 없으며 BigMemory Max 및 gb 제한이 훨씬 적습니다.

  2. BigMemory는 디스크에 영구적입니다. Terracotta Server Array (L2)는 디스크를 통해 통신하여 치명적인 정전에도 데이터가 손실되지 않도록합니다. 테라코타는 99.999 %의 데이터 내구성을 지닌 산과 같은 특성을 지니고 있습니다. * Terracotta Server Array의 이러한 개념은 대개 많은 혼란을 야기합니다. 자세한 내용은 http://terracotta.org/documentation/terracotta-server-array/server-arrays을 참조하십시오.

  3. BigMemory는 가비지 수집이 완전히 해제 된 오프 힙 데이터 저장소입니다. 이는 바이트 코드 버퍼를 통해 수행되며이 데이터 저장소는 자동 리소스 제어에 의해 능동적으로 관리됩니다. 귀하의 요구 사항 (즉, 캐시에 원하는 오브젝트의 수, 즉시 또는 최종 처리량, 오브젝트 수명 시간 등)에 따라 자동 리소스 제어가이 작업을 수행합니다. 즉, GC, 힙 크기가 서버의 사용 가능한 메모리에 의해 제한되지 않으며, 가장 중요한 것은 조정이 필요하지 않음을 의미합니다.

  4. 얼마나 많은 캐시가 필요한지 아는 것은 추측과 확인 방법입니다. 각 응용 프로그램은 고유하므로 메모리에 배치해야하는 데이터의 양을 자신있게 예측할 수 없습니다. 나는에 게시하여 윤리 강령을 위반하면 나는 ... 사전에

나의 사과 하나가 XYZ의 SLA를 도달하기 위해 캐시에 GB를 배치 "N"필요를 알 수있는 공급 업체의 의심스러운 것 여기 또는 거기에 묵시적인 편견이 있었다. 다행스럽게도이 정보는 선명도를 높이고 테라코타에 대한 일반적인 질문을 밝힐 수있었습니다.

+0

"예, BigMemory Go는 무료입니다."... "무료 평가판"만 있습니다. –

3

저는 cache2k에서 작업 중이며 가장 최근의 캐시 퇴거 정책을 연구하여 cache2k benchmarks을 참조하십시오.

지속성이 현재 추가되었으며 2 주 내에 미리보기 및 테스트를 수행 할 수 있습니다. 나는 그것이 5 주 만에 매우 안정 될 것으로 기대한다. cache2k 구현은 물론 EHCache만큼 성숙하지는 않지만, 출시 된 모든 것이 우리 자신의 응용 프로그램에서 사용되고 프로덕션 환경에서 증명됩니다.

업데이트 : 전체 잠금 개념은 마지막으로 재 작성하고주의 깊은 검사 ... 당신은 github

관련 문제