|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object
|
+--org.jboss.cache.AbstractTreeCacheListener
|
+--org.jboss.cache.loader.SharedStoreCacheLoader
CacheLoader proxy used only when multiple CacheLoaders in a cluster access the same underlying store (e.g.
a shared filesystem, or DB). SharedStoreCacheLoader is a simply facade to a real CacheLoader implementation. It
always delegates reads to the real CacheLoader. Writes are forwarded only if this SharedStoreCacheLoader is
currently the cordinator. This avoid having all CacheLoaders in a cluster writing the same data to the same
underlying store. Although not incorrect (e.g. a DB will just discard additional INSERTs for the same key, and
throw an exception), this will avoid a lot of redundant work.
Whenever the current coordinator dies (or leaves), the second in line will take over. That SharedStoreCacheLoader
will then pass writes through to its underlying CacheLoader.
| Constructor Summary | |
SharedStoreCacheLoader(CacheLoader loader,
org.jgroups.Address local_addr,
boolean coordinator)
|
|
| Method Summary | |
void |
cacheStarted(TreeCache cache)
Called when the cache is started. |
void |
cacheStopped(TreeCache cache)
Called when the cache is stopped. |
void |
commit(java.lang.Object tx)
Commit the transaction. |
void |
create()
|
void |
destroy()
|
boolean |
exists(Fqn name)
Checks whether the CacheLoader has a node with Fqn |
java.util.Map |
get(Fqn name)
Returns all keys and values from the persistent store, given a fully qualified name |
java.lang.Object |
get(Fqn name,
java.lang.Object key)
Returns the value for a given key. |
java.util.Set |
getChildrenNames(Fqn fqn)
Returns a list of children names, all names are relative. |
byte[] |
loadEntireState()
Fetch the entire state for this cache from secondary storage (disk, DB) and return it as a byte buffer. |
void |
nodeCreated(Fqn fqn)
Called when a node is created |
void |
nodeEvicted(Fqn fqn)
Called when a node is evicted (not the same as remove()). |
void |
nodeLoaded(Fqn fqn)
Called when a node is loaded into memory via the CacheLoader. |
void |
nodeModified(Fqn fqn)
Called when a node is modified, e.g., one (key, value) pair in the internal map storage has been modified. |
void |
nodeRemoved(Fqn fqn)
Called when a node is removed. |
void |
nodeVisited(Fqn fqn)
Called when a node is visisted, i.e., get(). |
void |
prepare(java.lang.Object tx,
java.util.List modifications,
boolean one_phase)
Prepare the modifications. |
void |
put(Fqn name,
java.util.Map attributes)
Inserts all elements of attributes into the attributes hashmap of the given node, overwriting existing attributes, but not clearing the existing hashmap before insertion (making it a union of existing and new attributes) If the node does not exist, all parent nodes from the root down are created automatically |
java.lang.Object |
put(Fqn name,
java.lang.Object key,
java.lang.Object value)
Inserts key and value into the attributes hashmap of the given node. |
void |
put(java.util.List modifications)
Inserts all modifications to the backend store. |
void |
remove(Fqn name)
Removes the given node. |
java.lang.Object |
remove(Fqn name,
java.lang.Object key)
Removes the given key and value from the attributes of the given node. |
void |
removeData(Fqn name)
Removes all attributes from a given node, but doesn't delete the node itself |
void |
rollback(java.lang.Object tx)
Roll the transaction back. |
void |
setCache(TreeCache c)
This method allows the CacheLoader to set the TreeCache, therefore allowing the CacheLoader to invoke methods of the TreeCache. |
void |
setConfig(java.util.Properties props)
Sets the configuration. |
void |
start()
|
void |
stop()
|
void |
storeEntireState(byte[] state)
Store the given state in secondary storage. |
void |
viewChange(org.jgroups.View new_view)
|
| Methods inherited from class org.jboss.cache.AbstractTreeCacheListener |
nodeActivate, nodeEvict, nodeModify, nodePassivate, nodeRemove |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public SharedStoreCacheLoader(CacheLoader loader,
org.jgroups.Address local_addr,
boolean coordinator)
| Method Detail |
public void nodeCreated(Fqn fqn)
TreeCacheListener
nodeCreated in interface TreeCacheListenernodeCreated in class AbstractTreeCacheListenerfqn - public void nodeRemoved(Fqn fqn)
TreeCacheListener
nodeRemoved in interface TreeCacheListenernodeRemoved in class AbstractTreeCacheListenerfqn - public void nodeLoaded(Fqn fqn)
TreeCacheListenerTreeCacheListener.nodeCreated(Fqn).
nodeLoaded in interface TreeCacheListenernodeLoaded in class AbstractTreeCacheListenerpublic void nodeEvicted(Fqn fqn)
TreeCacheListener
nodeEvicted in interface TreeCacheListenernodeEvicted in class AbstractTreeCacheListenerfqn - public void nodeModified(Fqn fqn)
TreeCacheListener
nodeModified in interface TreeCacheListenernodeModified in class AbstractTreeCacheListenerfqn - public void nodeVisited(Fqn fqn)
TreeCacheListener
nodeVisited in interface TreeCacheListenernodeVisited in class AbstractTreeCacheListenerfqn - public void cacheStarted(TreeCache cache)
TreeCacheListener
cacheStarted in interface TreeCacheListenercacheStarted in class AbstractTreeCacheListenercache - public void cacheStopped(TreeCache cache)
TreeCacheListener
cacheStopped in interface TreeCacheListenercacheStopped in class AbstractTreeCacheListenercache - public void viewChange(org.jgroups.View new_view)
viewChange in interface TreeCacheListenerviewChange in class AbstractTreeCacheListenerpublic void setConfig(java.util.Properties props)
CacheLoaderService.create() and Service.start()
setConfig in interface CacheLoaderprops - A list of properties, defined in the XML filepublic void setCache(TreeCache c)
CacheLoader
setCache in interface CacheLoaderc - The cache on which this loader works
public java.util.Set getChildrenNames(Fqn fqn)
throws java.lang.Exception
CacheLoader
getChildrenNames in interface CacheLoaderfqn - The FQN of the parent
java.lang.Exception
public java.lang.Object get(Fqn name,
java.lang.Object key)
throws java.lang.Exception
CacheLoader
get in interface CacheLoadername -
java.lang.Exception
public java.util.Map get(Fqn name)
throws java.lang.Exception
CacheLoader
get in interface CacheLoadername -
public boolean exists(Fqn name)
throws java.lang.Exception
CacheLoader
exists in interface CacheLoadername -
java.lang.Exception
public java.lang.Object put(Fqn name,
java.lang.Object key,
java.lang.Object value)
throws java.lang.Exception
CacheLoader
put in interface CacheLoaderjava.lang.Exception
public void put(Fqn name,
java.util.Map attributes)
throws java.lang.Exception
CacheLoader
put in interface CacheLoadername - The fully qualified name of the nodeattributes - A Map of attributes. Can be null
java.lang.Exception
public void put(java.util.List modifications)
throws java.lang.Exception
CacheLoader
put in interface CacheLoadermodifications - A Listjava.lang.Exception
public java.lang.Object remove(Fqn name,
java.lang.Object key)
throws java.lang.Exception
CacheLoader
remove in interface CacheLoaderjava.lang.Exception
public void remove(Fqn name)
throws java.lang.Exception
CacheLoader
remove in interface CacheLoaderjava.lang.Exception
public void removeData(Fqn name)
throws java.lang.Exception
CacheLoader
removeData in interface CacheLoadername -
java.lang.Exception
public void prepare(java.lang.Object tx,
java.util.List modifications,
boolean one_phase)
throws java.lang.Exception
CacheLoadertx (tx is the key)
prepare in interface CacheLoadertx - The transaction, just used as a hashmap keymodifications - Listone_phase - Persist immediately and (for example) commit the local JDBC transaction as well. When true,
we won't get a CacheLoader.commit(Object) or CacheLoader.rollback(Object) method call later
java.lang.Exception
public void commit(java.lang.Object tx)
throws java.lang.Exception
CacheLoadertx and commit that transactiontx key, to (for example) a file system (note this only holds if the previous prepare() did
not define one_phase=true
commit in interface CacheLoadertx -
java.lang.Exceptionpublic void rollback(java.lang.Object tx)
CacheLoadertx and roll back that transaction
rollback in interface CacheLoadertx -
public byte[] loadEntireState()
throws java.lang.Exception
CacheLoader
loadEntireState in interface CacheLoaderjava.lang.Exception
public void storeEntireState(byte[] state)
throws java.lang.Exception
CacheLoader
storeEntireState in interface CacheLoaderjava.lang.Exception
public void create()
throws java.lang.Exception
create in interface org.jboss.system.Servicejava.lang.Exception
public void start()
throws java.lang.Exception
start in interface org.jboss.system.Servicejava.lang.Exceptionpublic void stop()
stop in interface org.jboss.system.Servicepublic void destroy()
destroy in interface org.jboss.system.Service
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||