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

6. Architecture
6.1. Data Structures Within The Cache
6.2. SPI Interfaces
6.3. Method Invocations On Nodes
6.3.1. Interceptors
6.3.2. Commands and Visitors
6.3.3. InvocationContexts
6.4. Managers For Subsystems
6.4.1. RpcManager
6.4.2. BuddyManager
6.4.3. CacheLoaderManager
6.5. Marshalling And Wire Formats
6.5.1. The Marshaller Interface
6.5.2. VersionAwareMarshaller
6.6. Class Loading and Regions
7. Cache Modes and Clustering
7.1. Cache Replication Modes
7.1.1. Local Mode
7.1.2. Replicated Caches
7.2. Invalidation
7.3. State Transfer
7.3.1. State Transfer Types
7.3.2. Byte array and streaming based state transfer
7.3.3. Full and partial state transfer
7.3.4. Transient ("in-memory") and persistent state transfer
7.3.5. Configuring State Transfer
8. Cache Loaders
8.1. The CacheLoader Interface and Lifecycle
8.2. Configuration
8.2.1. Singleton Store Configuration
8.3. Shipped Implementations
8.3.1. File system based cache loaders
8.3.2. Cache loaders that delegate to other caches
8.3.3. JDBCCacheLoader
8.3.4. S3CacheLoader
8.3.5. TcpDelegatingCacheLoader
8.3.6. Transforming Cache Loaders
8.4. Cache Passivation
8.4.1. Cache Loader Behavior with Passivation Disabled vs. Enabled
8.5. Strategies
8.5.1. Local Cache With Store
8.5.2. Replicated Caches With All Caches Sharing The Same Store
8.5.3. Replicated Caches With Only One Cache Having A Store
8.5.4. Replicated Caches With Each Cache Having Its Own Store
8.5.5. Hierarchical Caches
8.5.6. Multiple Cache Loaders
9. Eviction
9.1. Design
9.1.1. Collecting Statistics
9.1.2. Determining Which Nodes to Evict
9.1.3. How Nodes are Evicted
9.1.4. Eviction threads
9.2. Eviction Regions
9.2.1. Resident Nodes
9.3. Configuring Eviction
9.3.1. Basic Configuration
9.3.2. Programmatic Configuration
9.4. Shipped Eviction Policies
9.4.1. LRUAlgorithm - Least Recently Used
9.4.2. FIFOAlgorithm - First In, First Out
9.4.3. MRUAlgorithm - Most Recently Used
9.4.4. LFUAlgorithm - Least Frequently Used
9.4.5. ExpirationAlgorithm
9.4.6. ElementSizeAlgorithm - Eviction based on number of key/value pairs in a node
10. Transactions and Concurrency
10.1. Concurrent Access
10.1.1. Multi-Version Concurrency Control (MVCC)
10.1.2. Pessimistic and Optimistic Locking Schemes
10.2. JTA Support