- Bamboo is a either based on Pastry, a re-engineering of the Pastry protocols, or an entirely new DHT, depending on how you want to look at it. The term geometry is used to refer to the pattern of neighbor links in a DHT, independent of the routing algorithms or neighbor management algorithms used. Bamboo uses the Pastry geometry. It does not, however, use the same joining or neighbor management algorithms. Compared to Pastry, the algorithms are more incremental, a difference that allows Bamboo to better withstand large membership changes in the DHT as well as continuous churn in membership, especially in bandwidth-limited environments.
- 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.
Fully documented. See the online Documentation, FAQ and the online JavaDoc.
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.
- Pastry is a generic, scalable and efficient substrate for peer-to-peer applications. Pastry nodes form a decentralized, self-organizing and fault-tolerant overlay network within the Internet. Pastry provides efficient request routing, deterministic object location, and load balancing in an application-independent manner. Furthermore, Pastry provides mechanisms that support and facilitate application-specific object replication, caching, and fault recovery.
Java Caching System (i.e. JCS)
- 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
JGroups ReplicatedHashtable and DistributedHashtable
- JGroups is a toolkit for reliable multicast communication.
(Note that this does not necessarily mean IP Multicast, JGroups can also use transports such as TCP).
It can be used to create groups of processes whose members can send messages to each other. The main features include
Group creation and deletion. Group members can be spread across LANs or WANs
Joining and leaving of groups
Membership detection and notification about joined/left/crashed members
Detection and removal of crashed members
Sending and receiving of member-to-group messages (point-to-multipoint)
Sending and receiving of member-to-member messages (point-to-point)
- OceanStore is a global persistent data store designed to scale to billions of users. It provides a consistent, highly-available, and durable storage utility atop an infrastructure comprised of untrusted servers.
Any computer can join the infrastructure, contributing storage or providing local user access in exchange for economic compensation. Users need only subscribe to a single OceanStore service provider, although they may consume storage and bandwidth from many different providers. The providers automatically buy and sell capacity and coverage among themselves, transparently to the users. The utility model thus combines the resources from federated systems to provide a quality of service higher than that achievable by any single company.
Open Source Java Caching Service
- Java Caching Service is an effort to make an Open Source version of JSR-107 JCache. Since the JSR-107 hasnt released any specs for years, This version still builds on the original Functional Specification. Features include ability to set an maximum size for the memory requirements; spools old objects to disk with max-size requirements; group elements with support for nested groups to create cache-trees; easily remove whole branches of the cache; automatic time-based expiration; fully user configurable; support for cache-loaders and upport for distribution.
- 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 generated image/PDF)
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.
- 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. SwarmCache uses JavaGroups internally to manage the membership and communications of its distributed cache