JBoss.orgCommunity Documentation

Part II. JBoss Cache Architecture

This section digs deeper into the JBoss Cache architecture, and is meant for developers wishing to use the more advanced cache features,extend or enhance the cache, write plugins, or are just looking for detailed knowledge of how things work under the hood.

Table of Contents

7. Architecture
7.1. Data Structures Within The Cache
7.2. SPI Interfaces
7.3. Method Invocations On Nodes
7.3.1. Interceptors
7.3.2. Commands and Visitors
7.3.3. InvocationContexts
7.4. Managers For Subsystems
7.4.1. RpcManager
7.4.2. BuddyManager
7.4.3. CacheLoaderManager
7.5. Marshalling And Wire Formats
7.5.1. The Marshaller Interface
7.5.2. VersionAwareMarshaller
7.6. Class Loading and Regions
8. Cache Modes and Clustering
8.1. Cache Replication Modes
8.1.1. Local Mode
8.1.2. Replicated Caches
8.2. Invalidation
8.3. State Transfer
8.3.1. State Transfer Types
8.3.2. Byte array and streaming based state transfer
8.3.3. Full and partial state transfer
8.3.4. Transient ("in-memory") and persistent state transfer
8.3.5. Configuring State Transfer
9. Cache Loaders
9.1. The CacheLoader Interface and Lifecycle
9.2. Configuration
9.2.1. Singleton Store Configuration
9.3. Shipped Implementations
9.3.1. File system based cache loaders
9.3.2. Cache loaders that delegate to other caches
9.3.3. JDBCCacheLoader
9.3.4. S3CacheLoader
9.3.5. TcpDelegatingCacheLoader
9.3.6. Transforming Cache Loaders
9.4. Cache Passivation
9.4.1. Cache Loader Behavior with Passivation Disabled vs. Enabled
9.5. Strategies
9.5.1. Local Cache With Store
9.5.2. Replicated Caches With All Caches Sharing The Same Store
9.5.3. Replicated Caches With Only One Cache Having A Store
9.5.4. Replicated Caches With Each Cache Having Its Own Store
9.5.5. Hierarchical Caches
9.5.6. Multiple Cache Loaders
10. Eviction
10.1. Design
10.1.1. Collecting Statistics
10.1.2. Determining Which Nodes to Evict
10.1.3. How Nodes are Evicted
10.1.4. Eviction threads
10.2. Eviction Regions
10.2.1. Resident Nodes
10.3. Configuring Eviction
10.3.1. Basic Configuration
10.3.2. Programmatic Configuration
10.4. Shipped Eviction Policies
10.4.1. LRUAlgorithm - Least Recently Used
10.4.2. FIFOAlgorithm - First In, First Out
10.4.3. MRUAlgorithm - Most Recently Used
10.4.4. LFUAlgorithm - Least Frequently Used
10.4.5. ExpirationAlgorithm
10.4.6. ElementSizeAlgorithm - Eviction based on number of key/value pairs in a node
11. Transactions and Concurrency
11.1. Concurrent Access
11.1.1. Multi-Version Concurrency Control (MVCC)
11.1.2. Pessimistic and Optimistic Locking Schemes
11.2. JTA Support