Performance problems in ConcurrentHashMap vs synchronized HashMap

In Ehcache 1.6, HashMap was replaced with ConcurrentHashmap with statistical sampling for eviction. Having completed 1.6 and released it there were a few surprises along the way with ConcurrentHashMap performance. PUT and GET performance There is some existing material online about ConcurrentHashMap versus HashMap performance, notably http://www.informit.com/guides/content.aspx?g=java&seqNum=246. This article finds that ConcurrentHashMap puts are slower… Continue reading Performance problems in ConcurrentHashMap vs synchronized HashMap

Published
Categorized as Java

Ehcache Server in the Cloud

I am seriously impressed with Amazon’s cloud offering. You get a pick list of virtual machines of different sizes, a CDN, monitoring with elastic forking of new instances, fixed IPs if required, S3, attachable storage and the ability to release software as .amis for easy deployment, map-reduce with Hadoop, load balancing and a payment service.… Continue reading Ehcache Server in the Cloud

The Limitations of Google App Engine

I have a very simple test application up on Google App Engine. See gregrluckapphelloworld.appspot.com. 80MB heap limit Go to gregrluckapphelloworld.appspot.com. Each time you hit is exactly 10MB gets added to Ehcache in-process cache. This is an intentiontal memory leak designed to find out how much you stick in the heap. The answer is around 80MB.… Continue reading The Limitations of Google App Engine

Published
Categorized as Java

Ehcache 1.6.0 is now compatible with Google App Engine

The forthcoming Ehcache 1.6.0 is compatible and works with Google App Engine. You can get it now from ehcache snapshots. Google App Engine provides a constrained runtime which restricts networking, threading and file system access. All features of Ehcache can be used except for the DiskStore and replication. Having said that, there are workarounds for… Continue reading Ehcache 1.6.0 is now compatible with Google App Engine

Published
Categorized as Java