사용자 도구

사이트 도구


java:ehcache

문서의 이전 판입니다!


ehcache

Update Check 끄기

  • 시스템 프라퍼티
    -Dnet.sf.ehcache.skipUpdateCheck=true
  • ehcache.xml 설정 파일 : updateCheck=“false”
    <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="ehcache.xsd"
        updateCheck="false" monitoring="autodetect"
        dynamicConfig="true">

Distributed Cache

The data is held in a Terracotta Server Array with a subset of recently used data held in each application cache node. The distributed topology, available with BigMemory Max, supports a very rich set of consistency modes.

Replicated Cache

  • Relication 전략은 각 애플리케이션의 메모리에서 각자 캐시를 하되 캐시 상태를 여러 애플리케이션이 서로 동기화한다.
  • 이 경우 캐시 된 데이터를 각자 자기 메모리에서 읽기 때문에 로컬 캐시를 사용하는 효과와 동일할 것이다.
  • 하지만 노드의 갯수가 증가하게 되면 그만큼 부하도 증가하고 성능도 떨어질 수 있다. 따라서 10 노드 이하 정도의 규모에서 사용한다.
  • Do not use Time To Idle with replicated caching, unless you do not care about inconsistent data across nodes.

Replication 데이터 복제 전략

  • 각 애플리케이션에 캐시가 존재하고 RMI, JGroups, JMX 등을 통해 캐시를 서로 동기화
  • replicatePuts=true|false : 새로운 캐시 생성시 다른 애플리케이션에 복제할 것인가(true) 아무것도 안 할 것인가(false - put은 각 애플리케이션이 각자 알아서하기)
  • replicateUpdatesViaCopy=true|false : 기존 캐시가 갱신 됐을 때 다른서버에 복제할 것인가(true), 다른 서버에는 단지 값이 갱신됐으니 기존 값을 지우라고 알린 뒤 필요할 때 직접 데이터를 다시 읽으라고 지시할 것인가(false).
  • 복제 전략을 true로 하면 네트워크 부하는 높아지고 일관성이 다소 떨어질 수 있고 애플리케이션 성능은 높아진다.
  • 복제 전략을 false로 하면 네트워크 부하는 낮아지고 일관성은 높아지며 애플리케이션 성능은 낮아진다. 애플리케이션 성능보다는 네트워크 부하를 줄이고 일관성을 높이고 싶을 때 사용.
  • TODO : 내 예상으로는 복제=true 전략을 사용하면 캐시 대상 Class가 한쪽 애플리케이션에서만 변경되고 다른 애플리케이션에서는 변경이 안됐을 경우 오류가 발생할 것으로 보인다.
java/ehcache.1412050325.txt.gz · 마지막으로 수정됨: 2014/09/30 13:12 저자 kwon37xi