- Ehcache is a pure Java, in-process cache with the following features:
- Acts as a pluggable cache for Hibernate 2.1.
- Small foot print. Both in terms of size and memory requirements.
- Minimal dependencies.
- Fully documented. See the online Documentation, FAQ and the online
- Comprehensively Test Coverage. See the clover test report.
- Scalable to hundreds of caches and large multi-cpu servers.
- Available under the Apache 1.1 license. Ehcaches copyright and licensing
has been reviewed and approved by the Apache Software Foundation, making
ehcache suitable for use in Apache projects.
- Production tested. All versions of ehcache are production tested for
several weeks on a large and very busy eCommerce site before release.
Java Caching System
JCS is a distributed caching system written in java for server-side java applications. It is intended to speed up dynamic web applications by providing a means to manage cached data of various dynamic natures. Like any caching system, the JCS is most useful for high read, low put applications. Dynamic content and reporting systems can benefit most. However, any site that repeatedly constructs pages, dropdowns, or common search results from a database that is updated at intervals (rather than across categories continuously) can improve performance and scalability by implementing caching. Latency times drop sharply and bottlenecks move away from the database in an effectively cached system.
The JCS goes beyond simply caching objects in memory. It provides several
important features, necessary for any Enterprise level caching system:
- Memory management
- Disk overflow (and defragmentation)
- Element grouping
- Quick nested categorical removal
- Data expiration
- Extensible framework
- Fully configurable runtime parameters
- Remote synchronization
- Remote store recovery
- Non-blocking zombie (balking facade) pattern
- Optional lateral distribution of elements via HTTP, TCP, or UDP
- Remote server chaining (or clustering) and failover
These features provide a framework with no point of failure, allowing for
full session failover including session data across multiple servers.
- OSCache is a widely used, high performance J2EE caching framework.
OSCache solves fundamental problems
for dynamic websites:
- Caching Dynamic Content - Dynamic content of some
form must often be executed during each request, but sometimes that content
does not change every request. Caching the whole page does not help because
sections of the page change every request.
- OSCache solves this problem by providing a means
to cache sections of JSP pages.
- Caching Binary Content - Generated images and PDFs
can be very costly in terms of server load.
- OSCache solves this problem through a Servlet
2.3 CachingFilter which can cache any URI (such as an entire page or a
- Error Tolerance - If one error occurs somewhere on
your dynamic page, chances are the whole page will be returned as an error,
even if 95% of the page executed correctly.
- OSCache solves this problem by allowing you to
serve the cached content in the event of an error, and then reporting
the error appropriately.
- ShiftOne Java Object Cache is a Java library that implements several strict object caching policies, decorators that add behavior, and a light framework for configuring them for an application.
- SwarmCache is a simple but effective distributed cache. It uses IP multicast to efficiently communicate with any number of hosts on a LAN. It is specifically designed for use by clustered, database-driven web applications.
Such applications typically have many more read operations than write operations, which allows SwarmCache to deliver the greatest performance gains.
TreeCache / JBossCache
- JBoss Cache is a product designed to cache frequently accessed Java objects in order to dramatically improve the performance of e-business applications. By eliminating unnecessary database access, JBoss Cache decreases network traffic and increases the scalability of applications.
JBoss Cache provides two caching APIs to suit your needs. The JBossCache API offers a traditional, tree-structured node-based cache and the JBossCacheAOP API, which builds on the JBossCache API, provides the ability to perform fine-grained replication of Java objects, resulting in maximum performance benefits.
JBoss Cache has a business friendly open source license that makes it free to download, use, embed, and distribute.
Whirlycache is a fast, configurable in-memory object cache for Java. It can
be used, for example, to speed up a website or an application by caching objects
that would otherwise have to be created by querying a database or by another
expensive procedure. From the testing that we have done, it appears to be faster
than any other Java cache that we have been able to inspect.
Whirlycache is built around several design principles that differ from other
- Require synchronization as infrequently as possible
- Do as little as possible in the insertion and retrieval operations
- Soft limits are acceptable for many applications
- Disk overflow becomes a bad idea very quickly
Many attributes of Whirlycache are configurable in an XML file, but the most
important components of the cache are the Backend, the Tuner,
and the Policy.