EHC ❯ Improve memory performance of clustered ehcache
-
Task
-
Status: Closed
-
1 Critical
-
Resolution: Fixed
-
ehcache-terracotta
-
-
hsingh
-
Reporter: amiller
-
October 09, 2009
-
0
-
Watchers: 0
-
January 17, 2013
-
November 05, 2009
Attachments
Description
In 1.3/4 identity mode, you have:
Element –> VALUE
In 1.7 identity mode, you have:
DefaultTimestampedValue –> ElementData –> VALUE
The DefaultTimestampedValue is the Distributed cache element / timeout object (which in serialization mode holds the raw serialized data). In identity mode, the ElementData is the holder for the guts of the Element data that we actually cluster. Conceptually seems like these could be combined. I’m not sure whether there are any dependency/classloader issues with that. DTV comes from tim-distributed-cache which in dso mode is loaded from the classpath tim. ElementData is loaded from ehcache jar, also in classpath.
Seems like maybe the clustered ElementData could be a subclass of DefaultTimestampedValue?
Comments
Alexander Snaps 2009-11-05
Himadri Singh 2009-11-23
Ran 25K owners read-only ehcache perf test, with fix it had around 791K live objects while without it had 1091K live objects. The test creates 25K * 12 = 3M objects. (Attached Screenshots.)
Verified with
2009-11-22 23:48:28,636 [main] INFO com.tc.plugins.ModulesLoader - BuildInfo for module: org.terracotta.modules.tim-ehcache-1.7 BuildInfo-User: cruise BuildInfo-Revision: 19466 BuildInfo-Timestamp: 20091121-003527 BuildInfo-URL: http://svn.terracotta.org/svn/forge/projects/tim-ehcache/trunk/tim-ehcache-1.7 BuildInfo-Host: rh5vfm0.terracotta.lan
2009-11-22 23:48:28,773 [main] INFO com.tc.plugins.ModulesLoader - BuildInfo for module: org.terracotta.modules.tim-distributed-cache
BuildInfo-User: cruise
BuildInfo-Revision: 19442
BuildInfo-Timestamp: 20091121-001234
BuildInfo-URL: http://svn.terracotta.org/svn/forge/projects/tim-distributed-cache/trunk/tim-distributed-cache
BuildInfo-Host: rh5vfm0.terracotta.lan
2009-11-22 23:48:29,117 [main] INFO com.tc.plugins.ModulesLoader - BuildInfo for module: org.terracotta.modules.tim-concurrent-collections BuildInfo-User: cruise BuildInfo-Revision: 19443 BuildInfo-Timestamp: 20091121-000417 BuildInfo-URL: http://svn.terracotta.org/svn/forge/projects/tim-concurrent-collections/trunk/tim-concurrent-collections BuildInfo-Host: su10fm3
Himadri Singh 2009-11-23
Read only test with 25k owners. Probably the improvement is not too much as its a read only test which has full data in L1 heap. This should affect the faulting/flushing.
Without fix : /shares/perf/perfFrameworksApps/dataForDB/ehcacheperf-results-perfTests-hsingh-1258966863.zip
2009-11-23 00:57:11,369 INFO [com.terracotta.EhCachePerfTest] - ——- FINAL REPORT ——– 2009-11-23 00:57:11,370 INFO [com.terracotta.EhCachePerfTest] - Node TPS: 4096.8 2009-11-23 00:57:11,370 INFO [com.terracotta.EhCachePerfTest] - Cluster TPS: 32220.6 2009-11-23 00:57:11,370 INFO [com.terracotta.EhCachePerfTest] - Node: Cumulative latency: min: 0, max: 1236, average: 3.60938
With Fix: /shares/perf/perfFrameworksApps/dataForDB/ehcacheperf-results-perfTests-hsingh-1258964883.zip
2009-11-23 00:26:09,883 INFO [com.terracotta.EhCachePerfTest] - ——- FINAL REPORT ——– 2009-11-23 00:26:09,884 INFO [com.terracotta.EhCachePerfTest] - Node TPS: 4327.9 2009-11-23 00:26:09,884 INFO [com.terracotta.EhCachePerfTest] - Cluster TPS: 34292.8 2009-11-23 00:26:09,884 INFO [com.terracotta.EhCachePerfTest] - Node: Cumulative latency: min: 0, max: 1167, average: 3.41482
r19355 on tc-3.1 branch