public abstract class AbstractCacheService extends Object implements ICacheService, PostJoinAwareService, PartitionAwareService, QuorumAwareService, SplitBrainHandlerService
| Modifier and Type | Field and Description |
|---|---|
protected ConstructorFunction<String,CacheContext> |
cacheContexesConstructorFunction |
protected ConcurrentMap<String,CacheContext> |
cacheContexts |
protected com.hazelcast.cache.impl.CacheEventHandler |
cacheEventHandler |
protected com.hazelcast.cache.impl.CacheSplitBrainHandler |
cacheSplitBrainHandler |
protected ConstructorFunction<String,CacheStatisticsImpl> |
cacheStatisticsConstructorFunction |
protected ConcurrentMap<String,Closeable> |
closeableListeners |
protected ConcurrentMap<String,CacheConfig> |
configs |
protected ILogger |
logger |
protected NodeEngine |
nodeEngine |
protected ConcurrentMap<String,CacheOperationProvider> |
operationProviderCache |
protected ConcurrentMap<String,Set<Closeable>> |
resources |
protected CachePartitionSegment[] |
segments |
protected ConcurrentMap<String,CacheStatisticsImpl> |
statistics |
CACHE_SUPPORT_NOT_AVAILABLE_ERROR_MESSAGE, SERVICE_NAME| Constructor and Description |
|---|
AbstractCacheService() |
| Modifier and Type | Method and Description |
|---|---|
void |
addCacheResource(String name,
Closeable resource) |
String |
addInvalidationListener(String name,
CacheEventListener listener,
boolean localOnly)
Registers and
CacheEventListener for specified cacheName. |
void |
beforeMigration(PartitionMigrationEvent event)
Called before migration process starts, on both source and destination members.
|
void |
cacheEntryListenerDeregistered(String name,
javax.cache.configuration.CacheEntryListenerConfiguration cacheEntryListenerConfiguration) |
void |
cacheEntryListenerRegistered(String name,
javax.cache.configuration.CacheEntryListenerConfiguration cacheEntryListenerConfiguration) |
protected void |
checkCacheConfig(String cacheName,
CacheConfig cacheConfig) |
protected void |
checkCacheSimpleConfig(String cacheName,
CacheSimpleConfig cacheSimpleConfig) |
protected void |
closeSegments(String name) |
void |
commitMigration(PartitionMigrationEvent event)
Commits the migration process for this service, on both source and destination members.
|
CacheStatisticsImpl |
createCacheStatIfAbsent(String name) |
DistributedObject |
createDistributedObject(String fullCacheName)
Creates a distributed object.
|
protected abstract ICacheRecordStore |
createNewRecordStore(String name,
int partitionId) |
protected abstract CacheOperationProvider |
createOperationProvider(String nameWithPrefix,
InMemoryFormat inMemoryFormat) |
void |
deleteCache(String name,
String callerUuid,
boolean destroy) |
CacheConfig |
deleteCacheConfig(String name) |
void |
deleteCacheStat(String name) |
void |
deregisterAllListener(String name) |
boolean |
deregisterListener(String name,
String registrationId) |
void |
destroyDistributedObject(String objectName)
Destroys a distributed object.
|
protected void |
destroySegments(String name) |
void |
dispatchEvent(Object event,
CacheEventListener listener) |
CacheSimpleConfig |
findCacheConfig(String simpleName) |
CacheConfig |
getCacheConfig(String name) |
Collection<CacheConfig> |
getCacheConfigs() |
CacheContext |
getCacheContext(String name) |
CacheOperationProvider |
getCacheOperationProvider(String nameWithPrefix,
InMemoryFormat inMemoryFormat)
Creates cache operations according to the storage-type of the cache
|
NodeEngine |
getNodeEngine() |
CacheContext |
getOrCreateCacheContext(String name) |
ICacheRecordStore |
getOrCreateRecordStore(String name,
int partitionId) |
Operation |
getPostJoinOperation()
Post join operations must be lock free, meaning no locks at all:
no partition locks, no key-based locks, no service level locks,
no database interaction!
|
String |
getQuorumName(String cacheName)
Gets the name of the quorum associated with specified cache
|
ICacheRecordStore |
getRecordStore(String name,
int partitionId) |
CachePartitionSegment |
getSegment(int partitionId) |
CacheStatisticsImpl |
getStatistics(String name) |
void |
init(NodeEngine nodeEngine,
Properties properties)
Initializes this ManagedService
|
protected boolean |
isNativeInMemoryFormatSupported() |
protected abstract CachePartitionSegment |
newPartitionSegment(int partitionId) |
void |
onPartitionLost(IPartitionLostEvent partitionLostEvent)
Invoked when a partition lost is detected
|
protected void |
postInit(NodeEngine nodeEngine,
Properties properties) |
Runnable |
prepareMergeRunnable()
When the 2 separate clusters merge (resolve a split brain), this method is called to return
a Runnable that will merge the clusters.
|
protected void |
publishCachePartitionLostEvent(String cacheName,
int partitionId) |
void |
publishEvent(CacheEventContext cacheEventContext) |
void |
publishEvent(String cacheName,
CacheEventSet eventSet,
int orderKey) |
CacheConfig |
putCacheConfigIfAbsent(CacheConfig config) |
String |
registerListener(String name,
CacheEventListener listener,
boolean isLocal) |
String |
registerListener(String name,
CacheEventListener listener,
EventFilter eventFilter,
boolean isLocal) |
protected String |
registerListenerInternal(String name,
CacheEventListener listener,
EventFilter eventFilter,
boolean isLocal) |
void |
reset()
reset this ManagedService back to initial state.
|
void |
rollbackMigration(PartitionMigrationEvent event)
Rollback the migration process for this service, on both source and destination members.
|
void |
sendInvalidationEvent(String name,
Data key,
String sourceUuid)
Sends an invalidation event for given
cacheName with specified key
from mentioned source with sourceUuid. |
void |
setManagementEnabled(CacheConfig cacheConfig,
String cacheNameWithPrefix,
boolean enabled) |
void |
setStatisticsEnabled(CacheConfig cacheConfig,
String cacheNameWithPrefix,
boolean enabled) |
void |
shutdown(boolean terminate)
Shuts down this ManagedService.
|
Data |
toData(Object object) |
Object |
toObject(Object data) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCacheWanEventPublisher, isWanReplicationEnabledprepareReplicationOperationprotected final ConcurrentMap<String,CacheConfig> configs
protected final ConcurrentMap<String,CacheContext> cacheContexts
protected final ConcurrentMap<String,CacheStatisticsImpl> statistics
protected final ConcurrentMap<String,Set<Closeable>> resources
protected final ConcurrentMap<String,Closeable> closeableListeners
protected final ConcurrentMap<String,CacheOperationProvider> operationProviderCache
protected final ConstructorFunction<String,CacheContext> cacheContexesConstructorFunction
protected final ConstructorFunction<String,CacheStatisticsImpl> cacheStatisticsConstructorFunction
protected NodeEngine nodeEngine
protected CachePartitionSegment[] segments
protected com.hazelcast.cache.impl.CacheEventHandler cacheEventHandler
protected com.hazelcast.cache.impl.CacheSplitBrainHandler cacheSplitBrainHandler
protected ILogger logger
public final void init(NodeEngine nodeEngine, Properties properties)
ManagedServiceinit in interface ManagedServicenodeEngine - the NodeEngine that this ManagedService belongs to.properties - the Properties. Can be used to pass settings to the service.protected void postInit(NodeEngine nodeEngine, Properties properties)
protected abstract CachePartitionSegment newPartitionSegment(int partitionId)
protected abstract ICacheRecordStore createNewRecordStore(String name, int partitionId)
public void reset()
ManagedServicereset in interface ManagedServicepublic void shutdown(boolean terminate)
ManagedServiceshutdown in interface ManagedServiceterminate - true to shut down the ManagedServicepublic DistributedObject createDistributedObject(String fullCacheName)
RemoteServicecreateDistributedObject in interface RemoteServicefullCacheName - the name for the created distributed objectprotected boolean isNativeInMemoryFormatSupported()
protected void checkCacheSimpleConfig(String cacheName, CacheSimpleConfig cacheSimpleConfig)
protected void checkCacheConfig(String cacheName, CacheConfig cacheConfig)
public void destroyDistributedObject(String objectName)
RemoteServicedestroyDistributedObject in interface RemoteServiceobjectName - the name of the distributed object to destroypublic void beforeMigration(PartitionMigrationEvent event)
MigrationAwareServiceService can take actions required before migration. Migration process will block until this method returns. If this method fails by throwing an exception, migration process for specific partition will fail and will be rolled back.
beforeMigration in interface MigrationAwareServiceevent - migration eventpublic void commitMigration(PartitionMigrationEvent event)
MigrationAwareServiceCommit is not expected to fail at this point, all exceptions will be suppressed and logged.
commitMigration in interface MigrationAwareServiceevent - migration eventpublic void rollbackMigration(PartitionMigrationEvent event)
MigrationAwareServiceRollback is not expected to fail at this point, all exceptions will be suppressed and logged.
rollbackMigration in interface MigrationAwareServiceevent - migration eventpublic ICacheRecordStore getOrCreateRecordStore(String name, int partitionId)
getOrCreateRecordStore in interface ICacheServicepublic ICacheRecordStore getRecordStore(String name, int partitionId)
getRecordStore in interface ICacheServicepublic CachePartitionSegment getSegment(int partitionId)
getSegment in interface ICacheServiceprotected void destroySegments(String name)
protected void closeSegments(String name)
public void deleteCache(String name, String callerUuid, boolean destroy)
deleteCache in interface ICacheServicepublic CacheConfig putCacheConfigIfAbsent(CacheConfig config)
putCacheConfigIfAbsent in interface ICacheServicepublic CacheConfig deleteCacheConfig(String name)
deleteCacheConfig in interface ICacheServicepublic CacheStatisticsImpl createCacheStatIfAbsent(String name)
createCacheStatIfAbsent in interface ICacheServicepublic CacheContext getCacheContext(String name)
public CacheContext getOrCreateCacheContext(String name)
getOrCreateCacheContext in interface ICacheServicepublic void deleteCacheStat(String name)
deleteCacheStat in interface ICacheServicepublic void setStatisticsEnabled(CacheConfig cacheConfig, String cacheNameWithPrefix, boolean enabled)
setStatisticsEnabled in interface ICacheServicepublic void setManagementEnabled(CacheConfig cacheConfig, String cacheNameWithPrefix, boolean enabled)
setManagementEnabled in interface ICacheServicepublic CacheConfig getCacheConfig(String name)
getCacheConfig in interface ICacheServicepublic CacheSimpleConfig findCacheConfig(String simpleName)
findCacheConfig in interface ICacheServicepublic Collection<CacheConfig> getCacheConfigs()
getCacheConfigs in interface ICacheServicepublic void publishEvent(CacheEventContext cacheEventContext)
publishEvent in interface ICacheServicepublic void publishEvent(String cacheName, CacheEventSet eventSet, int orderKey)
publishEvent in interface ICacheServicepublic NodeEngine getNodeEngine()
getNodeEngine in interface ICacheServicepublic void dispatchEvent(Object event, CacheEventListener listener)
dispatchEvent in interface EventPublishingService<Object,CacheEventListener>public String registerListener(String name, CacheEventListener listener, boolean isLocal)
registerListener in interface ICacheServicepublic String registerListener(String name, CacheEventListener listener, EventFilter eventFilter, boolean isLocal)
registerListener in interface ICacheServiceprotected String registerListenerInternal(String name, CacheEventListener listener, EventFilter eventFilter, boolean isLocal)
public boolean deregisterListener(String name, String registrationId)
deregisterListener in interface ICacheServicepublic void deregisterAllListener(String name)
deregisterAllListener in interface ICacheServicepublic CacheStatisticsImpl getStatistics(String name)
getStatistics in interface ICacheServicepublic CacheOperationProvider getCacheOperationProvider(String nameWithPrefix, InMemoryFormat inMemoryFormat)
ICacheServicegetCacheOperationProvider in interface ICacheServiceprotected abstract CacheOperationProvider createOperationProvider(String nameWithPrefix, InMemoryFormat inMemoryFormat)
public Operation getPostJoinOperation()
PostJoinAwareServicePost join operations should return response, at least a null response.
getPostJoinOperation in interface PostJoinAwareServiceprotected void publishCachePartitionLostEvent(String cacheName, int partitionId)
public void onPartitionLost(IPartitionLostEvent partitionLostEvent)
PartitionAwareServiceonPartitionLost in interface PartitionAwareServicepartitionLostEvent - The event object that contains the partition id and the number of replicas that is lostpublic void cacheEntryListenerRegistered(String name, javax.cache.configuration.CacheEntryListenerConfiguration cacheEntryListenerConfiguration)
public void cacheEntryListenerDeregistered(String name, javax.cache.configuration.CacheEntryListenerConfiguration cacheEntryListenerConfiguration)
public String getQuorumName(String cacheName)
getQuorumName in interface QuorumAwareServicecacheName - name of the cachepublic String addInvalidationListener(String name, CacheEventListener listener, boolean localOnly)
CacheEventListener for specified cacheName.addInvalidationListener in interface ICacheServicename - the name of the cache that CacheEventListener will be registered forlistener - the CacheEventListener to be registered for specified cachelocalOnly - true if only events originated from this member wants be listened, false if all invalidation events in the
cluster wants to be listenedpublic void sendInvalidationEvent(String name, Data key, String sourceUuid)
cacheName with specified key
from mentioned source with sourceUuid.sendInvalidationEvent in interface ICacheServicename - the name of the cache that invalidation event is sent forkey - the Data represents the invalidation eventsourceUuid - an id that represents the source for invalidation eventpublic Runnable prepareMergeRunnable()
SplitBrainHandlerServiceprepareMergeRunnable in interface SplitBrainHandlerServiceCopyright © 2017 Hazelcast, Inc.. All Rights Reserved.