| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <document> |
| <properties> |
| <title>Java Caching System</title> |
| <author email="pete@kazmier.com">Pete Kazmier</author> |
| <author email="asmuts@apache.org">Aaron Smuts</author> |
| </properties> |
| |
| <body> |
| <section name="Java Caching System"> |
| <p> |
| JCS is a distributed caching system written in java. It is intended to speed up |
| 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. |
| </p> |
| <p> |
| The JCS goes beyond simply caching objects in memory. It |
| provides several important features, necessary for any |
| Enterprise level caching system: |
| </p> |
| <ul> |
| <li>Memory management</li> |
| <li>Disk overflow (and defragmentation)</li> |
| <li>Thread pool controls</li> |
| <li>Element grouping</li> |
| <li>Quick nested categorical removal</li> |
| <li>Data expiration (idle time and max life)</li> |
| <li>Extensible framework</li> |
| <li>Fully configurable runtime parameters</li> |
| <li>Region data separation and configuration</li> |
| <li>Fine grained element configuration options</li> |
| <li>Remote synchronization</li> |
| <li>Remote store recovery</li> |
| <li>Non-blocking "zombie" (balking facade) pattern</li> |
| <li>Lateral distribution of elements via HTTP, TCP, or |
| UDP</li> |
| <li>UDP Discovery of other caches</li> |
| <li>Element event handling</li> |
| <li>Remote server chaining (or clustering) and failover</li> |
| </ul> |
| </section> |
| </body> |
| </document> |
| |