2016-08-05 2 views
3

작은 시간대 (대개 30 분에서 최대 50 분까지 60 분 이내)에 중요한 데이터를 저장하는 데 hazelcast를 사용하고 있습니다. 오래된 항목 일수록 덜 중요합니다. 즉, OutOfMemory를 피하기 위해 일부 항목을 제거 할 수 있다면 이전 항목이됩니다.Hazelcast - 가장 오래된 항목이 처음에 가장 먼저 읽음

이 항목의 TTL을 60 분으로 구성했지만 메모리가 부족하면 신뢰할 수있는 상태에서 가장 오래된 항목을 먼저 제거합니다.

EvictionPolicy.LRU의 구성을 확인했지만 구성했는데 최근에지도에 추가 된 항목 중 일부가 축출되었습니다. 나는 그것이 설명 된대로 퇴거를위한 엔트리를 선출하는 데 사용 된 샘플링 알고리즘으로 인한 것이라고 생각합니다. here.

이 유스 케이스를 다루는 분산 객체 구현이 있습니까?

답변

1

Hazelcast 3.7부터는 a custom eviction policy을 정의하고 알고리즘을 구현할 수 있습니다. 샘플 here을 찾을 수 있습니다.

고맙습니다.

+0

안녕하세요. 일부 상황에서 'LRU'구현이 마지막으로 추가 된 항목을 제거 할 것으로 예상됩니까? 엔트리가 추가되거나 축출 될 때 엔 뭔가를 출력하는 엔트리 리스너를 추가함으로써 그러한 행동을 볼 수 있습니다. 어떤 경우에는 최근에 추가 된 엔트리의 퇴출을 볼 수 있고 (hz 3.6을 사용하여) 몇 시간 이상 액세스하지 않는 엔트리를 유지할 수 있습니다. 4 '). –

+0

마지막으로 추가 된 항목을 제거하면 3.7 릴리스에서 더 이상 문제가 발생하지 않습니다. 다음을 참조하십시오 : https://github.com/hazelcast/hazelcast/issues/4334 – mrck

관련 문제