|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager
org.apache.openjpa.datacache.AbstractQueryCache
org.apache.openjpa.datacache.ConcurrentQueryCache
public class ConcurrentQueryCache
A QueryCache implementation that is optimized for concurrent
access. When the cache fill up, values to remove from the cache are chosen
randomly. Due to race conditions, it is possible that a get call might not
retur a cached instance if that instance is being transferred between
internal datastructures.
| Field Summary |
|---|
| Fields inherited from class org.apache.openjpa.datacache.AbstractQueryCache |
|---|
conf, log |
| Fields inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager |
|---|
_listeners |
| Constructor Summary | |
|---|---|
ConcurrentQueryCache()
|
|
| Method Summary | |
|---|---|
protected void |
clearInternal()
Clear the cache. |
CacheMap |
getCacheMap()
Returns the underlying CacheMap that this cache is using. |
int |
getCacheSize()
Returns the maximum number of unpinned objects to keep hard references to. |
protected QueryResult |
getInternal(QueryKey qk)
Return the list for the given key. |
int |
getSoftReferenceSize()
Returns the maximum number of unpinned objects to keep soft references to. |
void |
initialize(DataCacheManager mgr)
Initialize any resources associated with the given DataCacheManager. |
protected Collection |
keySet()
Return a threadsafe view of the keys in this cache. |
protected CacheMap |
newCacheMap()
Return the map to use as an internal cache. |
protected boolean |
pinInternal(QueryKey qk)
Pin an object to the cache. |
protected QueryResult |
putInternal(QueryKey qk,
QueryResult result)
Add the given result to the cache, returning the old result under the given key. |
protected QueryResult |
removeInternal(QueryKey qk)
Remove the result under the given key from the cache. |
void |
setCacheSize(int size)
Sets the maximum number of unpinned objects to keep hard references to. |
void |
setSoftReferenceSize(int size)
Sets the maximum number of unpinned objects to keep soft references to. |
protected boolean |
unpinInternal(QueryKey qk)
Unpin an object from the cache. |
void |
writeLock()
Obtain a write lock on the cache. |
void |
writeUnlock()
Release the write lock on the cache. |
| Methods inherited from class org.apache.openjpa.datacache.AbstractQueryCache |
|---|
addTypesChangedListener, afterCommit, clear, close, close, endConfiguration, fireEvent, get, isClosed, newListenerCollection, onTypesChanged, pin, put, remove, removeAllInternal, removeTypesChangedListener, setConfiguration, startConfiguration, unpin |
| Methods inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager |
|---|
addListener, fireEvent, getListeners, hasListener, hasListeners, isFailFast, removeListener, setFailFast |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.apache.openjpa.event.RemoteCommitListener |
|---|
afterCommit, close |
| Constructor Detail |
|---|
public ConcurrentQueryCache()
| Method Detail |
|---|
public CacheMap getCacheMap()
CacheMap that this cache is using.
This is not an unmodifiable view on the map, so care should be taken
with this reference. Implementations should probably not modify the
contents of the cache, but should only use this reference
to obtain cache metrics. Additionally, this map may contain
expired data. Removal of timed-out data is done in a lazy
fashion, so the actual size of the map may be greater than the
number of non-expired query results in cache.
public int getCacheSize()
public void setCacheSize(int size)
size, then this method will result in the cache
flushing old values.
public int getSoftReferenceSize()
-1.
public void setSoftReferenceSize(int size)
size, then this method will result in the cache
flushing values.
public void initialize(DataCacheManager mgr)
QueryCacheDataCacheManager.
initialize in interface QueryCacheinitialize in class AbstractQueryCachepublic void writeLock()
QueryCache
writeLock in interface QueryCachepublic void writeUnlock()
QueryCache
writeUnlock in interface QueryCacheprotected CacheMap newCacheMap()
protected QueryResult getInternal(QueryKey qk)
AbstractQueryCache
getInternal in class AbstractQueryCache
protected QueryResult putInternal(QueryKey qk,
QueryResult result)
AbstractQueryCache
putInternal in class AbstractQueryCacheprotected QueryResult removeInternal(QueryKey qk)
AbstractQueryCache
removeInternal in class AbstractQueryCacheprotected void clearInternal()
AbstractQueryCache
clearInternal in class AbstractQueryCacheprotected boolean pinInternal(QueryKey qk)
AbstractQueryCache
pinInternal in class AbstractQueryCacheprotected boolean unpinInternal(QueryKey qk)
AbstractQueryCache
unpinInternal in class AbstractQueryCacheprotected Collection keySet()
AbstractQueryCache
keySet in class AbstractQueryCache
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||