org.castor.cache.distributed
Class GigaspacesCache<K,V>

java.lang.Object
  extended by org.castor.cache.AbstractBaseCache<K,V>
      extended by org.castor.cache.distributed.AbstractDistributedCache<K,V>
          extended by org.castor.cache.distributed.GigaspacesCache<K,V>
Type Parameters:
K - the type of keys maintained by this cache
V - the type of cached values
All Implemented Interfaces:
Map<K,V>, Cache<K,V>

public final class GigaspacesCache<K,V>
extends AbstractDistributedCache<K,V>

Gigaspaces implementation of Castor JDO Cache.

Gigaspaces supports a wide variety of cache topologies, allowing the user to distribute and/or replicate application data as needed. This cache instance replicates this flexibility by allowing you to configure it (and thus the underlying Gigaspaces instance) as follows.

 <cache-type type="gigaspaces">
    <cacheUrl>/./</cacheURL>
    <cacheProperties>schema=cache</cacheProperties>
 </cache-type>
 
As mentioned briefly above, the main issue is the cache topology usage. Per definition, Gigaspaces caches can be started in various modes:


Each of the above can run in replicated or partitioned mode. This means you should run several instance in one of the above mode using the relevant schema name, total_membres and id.

instance 1:
"/./myCache?schema=cache&cluster_schema=replicated&total_members=2&id=1"

instance 2:
"/./myCache?schema=cache&cluster_schema=replicated&total_members=2&id=2"


or

instance 1:
"/./myCache?schema=cache&cluster_schema=partitioned&total_members=2&id=1"

instance 2:
"/./myCache?schema=cache&cluster_schema=partitioned&total_members=2&id=2"


When running the cache in server or in embedded mode, you must have the cache schema to be used, i.e. 'schema=cache'.


For more information on cache topoligies and the use of URLs with Gigaspaces, please see here.
For more details on Gigaspaces in general, please see http://www.gigaspaces.com/.

Since:
1.0
Version:
$Revision: 9041 $ $Date: 2011-08-16 11:51:17 +0200 (Di, 16 Aug 2011) $
Author:
Werner Guttmann
See Also:
The Gigaspaces Home Page, The Gigaspaces Wiki

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
static String IMPLEMENTATION
          The classname of the implementations factory class.
static String TYPE
          The type of the cache.
 
Fields inherited from interface org.castor.cache.Cache
DEFAULT_DEBUG, DEFAULT_NAME, DEFAULT_TYPE, PARAM_DEBUG, PARAM_NAME, PARAM_TYPE
 
Constructor Summary
GigaspacesCache()
           
 
Method Summary
 String getType()
          Indicates the type of this cache.
 void initialize(Properties params)
          Lyfe-cycle method to allow custom initialization of cache implementations.
 void initialize(String implementation, Properties params)
          Normally called to initialize CoherenceCache.
 
Methods inherited from class org.castor.cache.distributed.AbstractDistributedCache
clear, containsKey, containsValue, entrySet, get, getCache, invokeMethod, invokeStaticMethod, isEmpty, keySet, put, putAll, remove, setCache, size, values
 
Methods inherited from class org.castor.cache.AbstractBaseCache
close, expire, expireAll, getName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

TYPE

public static final String TYPE
The type of the cache.

See Also:
Constant Field Values

IMPLEMENTATION

public static final String IMPLEMENTATION
The classname of the implementations factory class.

See Also:
Constant Field Values
Constructor Detail

GigaspacesCache

public GigaspacesCache()
Method Detail

initialize

public void initialize(Properties params)
                throws CacheAcquireException
Lyfe-cycle method to allow custom initialization of cache implementations.

Specified by:
initialize in interface Cache<K,V>
Overrides:
initialize in class AbstractBaseCache<K,V>
Parameters:
params - Parameters to initialize the cache (e.g. name, capacity).
Throws:
CacheAcquireException - If cache can not be initialized.

initialize

public void initialize(String implementation,
                       Properties params)
                throws CacheAcquireException
Normally called to initialize CoherenceCache. To be able to test the method without having com.tangosol.net.CacheFactory implementation, it can also be called with a test implementations classname.

Parameters:
implementation - Cache implementation classname to initialize.
params - Parameters to initialize the cache (e.g. name, capacity).
Throws:
CacheAcquireException - If cache can not be initialized.

getType

public String getType()
Indicates the type of this cache.

Returns:
The cache type.


Copyright © 2012. All Rights Reserved.