org.apache.slide.util
Class TxLRUObjectCache
java.lang.Object
org.apache.slide.util.TxLRUObjectCache
- Direct Known Subclasses:
- ByteSizeLimitedObjectCache
- public class TxLRUObjectCache
- extends java.lang.Object
Transactional LRU object cache. Caches objects using a least-recently-used strategy.
It provides basic isolation from other transactions and atomicity of all operations. As
no locking is used (which is undesirable mainly as a cache should never block and a commit must never fail)
serializability needs to be guaranteed by underlying stores.
Caution: Only global caches are limited by given size.
Size of temporary data inside a transaction is unlimited.
Note: This cache has no idea if the data it caches in transactions are read from or written to store.
It thus handles both access types the same way. This means read accesses are cached in transactions even though they
could be cached globally. Like write accesses they will be moved to global cache at commit time.
- Version:
- $Revision: 1.1.2.1 $
- Author:
- Oliver Zeigermann
Method Summary |
void |
clear()
|
void |
commit(java.lang.Object txId)
|
void |
forget(java.lang.Object txId)
|
java.lang.Object |
get(java.lang.Object txId,
java.lang.Object key)
|
protected void |
hit(java.lang.Object txId,
java.lang.Object key)
|
protected void |
log(java.lang.Object txId,
java.lang.Object key,
boolean hit)
|
protected void |
miss(java.lang.Object txId,
java.lang.Object key)
|
void |
put(java.lang.Object txId,
java.lang.Object key,
java.lang.Object value)
|
void |
remove(java.lang.Object txId,
java.lang.Object key)
|
void |
rollback(java.lang.Object txId)
|
void |
start(java.lang.Object txId)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
globalCache
protected java.util.Map globalCache
txChangeCaches
protected java.util.Map txChangeCaches
txDeleteCaches
protected java.util.Map txDeleteCaches
hits
protected int hits
misses
protected int misses
name
protected java.lang.String name
logger
protected Logger logger
logChannel
protected java.lang.String logChannel
loggingEnabled
protected final boolean loggingEnabled
TxLRUObjectCache
public TxLRUObjectCache(int globalCacheSize,
java.lang.String name,
Logger logger)
- Creates a new object cache.
- Parameters:
globalCacheSize
- maximum size in objects of global cachename
- the name used to construct logging category / channellogger
- Slide logger to be used for logging
TxLRUObjectCache
public TxLRUObjectCache(int globalCacheSize)
clear
public void clear()
get
public java.lang.Object get(java.lang.Object txId,
java.lang.Object key)
put
public void put(java.lang.Object txId,
java.lang.Object key,
java.lang.Object value)
remove
public void remove(java.lang.Object txId,
java.lang.Object key)
start
public void start(java.lang.Object txId)
rollback
public void rollback(java.lang.Object txId)
commit
public void commit(java.lang.Object txId)
forget
public void forget(java.lang.Object txId)
hit
protected void hit(java.lang.Object txId,
java.lang.Object key)
miss
protected void miss(java.lang.Object txId,
java.lang.Object key)
log
protected void log(java.lang.Object txId,
java.lang.Object key,
boolean hit)