본문 바로가기

Programing/OpenSource

hazelcast Hibernate Second Level Cache

링크: https://hazelcast.com/use-cases/caching/hibernate-second-level-cache/


회사에서 어떤 분이 hazelcast의 2차 캐시를 붙이고 성능이 좋아졌다고 하여 관심을 가지게 되었다.

레퍼런스 문서: https://docs.hazelcast.org/docs/latest/manual/html-single/index.html#hibernate-second-level-cache

GitHub: 


Hazelcast: 회사 이름?

IMDG: In Memory Data Grid

패턴: read-through, write-through, and write-behind.


네이버 D2 : 이제 필요한 것은 In Memory Data Grid https://d2.naver.com/helloworld/106824

 메인 메모리를 저장소로 사용하려면 극복해야 하는 약점 두 가지: 용량의 한계와 신뢰성

 - 용량의 한계: 분산 아키텍처를 이용하여 극복, Horizontal Scalability 방식을 사용

 - 신뢰성: 복제 시스템을 구성해 해결


 In Memory Key-Value Database - Key-Value 모델이다. 그래서 이 키(key)를 이용해 데이터를 분산시켜 저장

 Arcus: Consistency Hash 모델

 Hazelcast: modulo 방식




HazelCast: 더블 라이선스 정책을 취하고 있는 제품, ElasticMemory와 같은 기능을 사용하려면 상용 라이선스를 구입. 그러나 많은 기능이 오픈소스라서 별도의 비용 없이 사용할 수 있으며, 사용 레퍼런스 정보를 찾아 보기가 매우 쉽다.

영구 저장소에 저장 알고리즘: LRU(Least Recently Used), LFU(Least Frequently Used)

Full GC 제약 극복: Off-heap 메모리(Direct Buffer) 사용

 - 장점: 큰 공간을 할당할 수 있고 Full GC에 대한 부담을 줄일 수 있다. 매우 큰 용량의 메모리 공간을 사용할 때 Full GC 시간을 없앨 수 있어 항상 일정한 처리 시간을 확보할 수 있다.

 - 단점: 보통 Direct Buffer에 대한 접근은 Heap Buffer보다 느리다. Memory Allocator를 만드는 것과 같은 매우 전문적인 기술이 필요


Hazelcast IMDG Reference Manualhttps://docs.hazelcast.org/docs/latest/manual/html-single/index.html



Hazelcast Topology: Embedded or Client/Server.

Github: https://github.com/hazelcast/hazelcast

Mail Group: https://groups.google.com/forum/#!forum/hazelcast



vs Infinispan @ 조대협's blog http://bcho.tistory.com/862 Infinispan과의 성능 비교 글들을 보면, 열세인데, 이부분은 조금 더 리서치 필요


인메모리 데이터 그리드 IMDG가 DB업계에 던지는 화두