Top 10 Java Caching Sotware

By Partho, Gaea News Network
Tuesday, May 12, 2009

javacaching2Java caching software is written in java for server-side java applications. Caching is an effective technique when it comes to long-running applications such as servlets, JSPs and GUI applications. It speeds up the dynamic web applications by providing a means to manage cached data of various dynamic natures. At times its inevitable to cache some Java objects, especially the data that takes too much time to recreate when it is not changed frequently. For the ease of use these can be objects in a hash table, given that it takes the ever-increasing memory footprint of your application. This allows you to expire the older objects in the hashtable time and again, since you can recreate them whenever needed. The caching solutions are most useful for the high read, low put applications. Java caching solutions can also benefit dynamic content and reporting systems.

Now there are sites that construct pages, dropdowns, or common search results form a database repeatedly at regular intervals. The performance and scalability of these sites can be bettered through caching. Java caching software reduces the latency time and removes the snags from database. After an extensive, I aggregated the top 10 Java caching software.

  1. Ehcache
  2. OScache
  3. JBoss Cache
  4. S3C Java Serverside Cache 2.1
  5. Shiftone
  6. Jofti
  7. JCS
  8. Open Terracota
  9. Cache System
  10. JSR 107: Jcache

1. EHCache


It features a SimplePageCachingFilter for caching the static pages. The filter gzips the HttpResponse to the browser and the browser unzips the response. This is shown to the client. To cache the static art in JSPs, EHCache offers a SimplePageFragmentCachingFilter. Most importantly EHCache is JMX enabled, so it can monitor cache Manager, cache, cacheConfiguration and CacheStatistics.


2. OSCache


It’s one of the popular high performance J2EE caching solutions. OSCache offers dynamic caching of JSP content, servlet responses or arbitary objects. The generic features of OSCache includes caching arbitrary objects, comprehensive API, persistent caching, clustering and expiry of cache entry.


3. JBoss Cache


This software has been designed for frequently accessed Java objects in order to dramatically improve the performance of e-business applications. Jboss prohibits unwanted access to database, reduces the network traffic and enhances the scalability of the application. Moreover, it features a clustered cache that replicates contents to other cache instances running on separate JVMs, servers or entire networks.


4. S3C Java Serverside Cache 2.1

It is a simple server-side java object caching framework that cache java objects on server-side to enable faster retrieval. With S3C it’s easier to retain the objects on the application server in a global JNDI context making it readily available to the user.


5. ShiftOne

This Java Object Cache is a Java library with strict object caching policies, decorators that add behavior, and a light framework for configuring them for an application. Each cache has a hard limit on the number of elements it will contain and the time for which elements are considered valid.


6. Jofti

It is an easy to use, high performance object indexing and searching solution for object in a caching layer or storage structure that supports the Map interface. This framework supports EHCache, JBossCache and OSCache and allows instantaneous addition, removal and updating of objects in its index. It offers simple to use query capabilities for search. Some of it’s other features include type aware searching, configurable object property indexing/searching by interfaces and Dynamic proxies, primitive attributes, collection and arrays.


7. Java Caching System (JCS)

It is a cache that supports caching data in memory or disk on a remote server using RMI. JCS is competent for caching data on the Data Access layer. JCS supports distributed cache. It broadcasts all the caches in the cluster by updating and invalidating the local caches. It also provides API to access the cache from any Java class.


8. Open Terracotta


It is an open source clustering for Java. This cache solution works best for hub-spoke architecture, where each spoke is a client node. The terracotta server implemented in Java acts as the hub.

Open Terracotta features
• HTTP Session replication
• Distributed cache
• POJO clustering
• Application coordination across cluster’s JVMs


9. SHOP.COM Cache system

It is an object cache system that features

- In-process cache and external, shared Cache
- Stores cached objects to disk
- Non-transactional
- Supports associative keys
- Does auto-GC based on TTL
- Container and platform neutral
- Scalable horizontally


10. JSR 107: JCACHE

It offers temporary caching of Java objects with specified API and semantics. JCACHE features  object creation, shared access, cache expiration, spooling, invalidation, and cache consistency across the JVM’s.


May 13, 2009: 1:04 am

I noticed that the list include only FOSS solution.
If you were looking to list the Top 10 FOSS then probably your list covers it well however if your looking for the top 10 Caching overall then it misses fairly important players that should be at the very top such as Oracle Coherence, GigaSpaces, eXtremeScale,..

will not be displayed