public final class LockServiceImpl extends Object implements LockService, ManagedService, RemoteService, MembershipAwareService, FragmentedMigrationAwareService, ClientAwareService, QuorumAwareService
SERVICE_NAME| Constructor and Description |
|---|
LockServiceImpl(NodeEngine nodeEngine) |
| Modifier and Type | Method and Description |
|---|---|
void |
beforeMigration(PartitionMigrationEvent partitionMigrationEvent)
Called before migration process starts, on both source and destination members.
|
void |
clearLockStore(int partitionId,
ObjectNamespace namespace) |
void |
clientDisconnected(String clientUuid)
Invoked when a client disconnects from a member.
|
void |
commitMigration(PartitionMigrationEvent event)
Commits the migration process for this service, on both source and destination members.
|
DistributedObject |
createDistributedObject(String objectId)
Creates a distributed object.
|
LockStore |
createLockStore(int partitionId,
ObjectNamespace namespace) |
void |
destroyDistributedObject(String objectId)
Destroys a distributed object.
|
Collection<LockResource> |
getAllLocks() |
Collection<ServiceNamespace> |
getAllServiceNamespaces(PartitionReplicationEvent event)
Returns all known namespaces for given replication event.
|
LockStoreContainer |
getLockContainer(int partitionId) |
LockStoreImpl |
getLockStore(int partitionId,
ObjectNamespace namespace) |
long |
getMaxLeaseTimeInMillis() |
static long |
getMaxLeaseTimeInMillis(HazelcastProperties hazelcastProperties) |
String |
getQuorumName(String name)
Gets the name of the quorum associated with specified operation name.
|
void |
init(NodeEngine nodeEngine,
Properties properties)
Initializes this service.
|
boolean |
isKnownServiceNamespace(ServiceNamespace namespace)
Returns true if namespace is known by this service, false otherwise
|
void |
memberAdded(MembershipServiceEvent event)
Invoked when a new member is added to the cluster.
|
void |
memberAttributeChanged(MemberAttributeServiceEvent event)
Invoked when a member attribute is changed.
|
void |
memberRemoved(MembershipServiceEvent event)
Invoked when an existing member leaves the cluster.
|
Operation |
prepareReplicationOperation(PartitionReplicationEvent event)
Returns an operation to replicate service data and/or state for a specific partition replica
on another cluster member.
|
Operation |
prepareReplicationOperation(PartitionReplicationEvent event,
Collection<ServiceNamespace> namespaces)
Returns an operation to replicate service data and/or state for a specific partition replica and namespaces
on another cluster member.
|
void |
registerLockStoreConstructor(String serviceName,
ConstructorFunction<ObjectNamespace,LockStoreInfo> constructorFunction) |
void |
reset()
Resets this service back to its initial state.
|
void |
rollbackMigration(PartitionMigrationEvent event)
Rollback the migration process for this service, on both source and destination members.
|
void |
shutdown(boolean terminate)
Shuts down this service.
|
public LockServiceImpl(NodeEngine nodeEngine)
public void init(NodeEngine nodeEngine, Properties properties)
ManagedServiceinit in interface ManagedServicenodeEngine - the NodeEngine that this service belongs toproperties - the Properties (can be used to pass settings to the service)public void reset()
ManagedServiceTODO: what is the purpose of reset
reset in interface ManagedServicepublic void shutdown(boolean terminate)
ManagedServiceTODO: what is the purpose of the terminate variable
shutdown in interface ManagedServiceterminate - true to shut down this servicepublic long getMaxLeaseTimeInMillis()
getMaxLeaseTimeInMillis in interface LockServicepublic void registerLockStoreConstructor(String serviceName, ConstructorFunction<ObjectNamespace,LockStoreInfo> constructorFunction)
registerLockStoreConstructor in interface LockServicepublic LockStore createLockStore(int partitionId, ObjectNamespace namespace)
createLockStore in interface LockServicepublic void clearLockStore(int partitionId,
ObjectNamespace namespace)
clearLockStore in interface LockServicepublic LockStoreContainer getLockContainer(int partitionId)
public LockStoreImpl getLockStore(int partitionId, ObjectNamespace namespace)
public void memberAdded(MembershipServiceEvent event)
MembershipAwareServicememberAdded in interface MembershipAwareServiceevent - the event for a new member added to the clusterpublic void memberRemoved(MembershipServiceEvent event)
MembershipAwareServicememberRemoved in interface MembershipAwareServiceevent - the event for an existing member leaving the clusterpublic void memberAttributeChanged(MemberAttributeServiceEvent event)
MembershipAwareServicememberAttributeChanged in interface MembershipAwareServiceevent - the event for a member attribute being changedpublic Collection<LockResource> getAllLocks()
getAllLocks in interface LockServicepublic Collection<ServiceNamespace> getAllServiceNamespaces(PartitionReplicationEvent event)
FragmentedMigrationAwareServicegetAllServiceNamespaces in interface FragmentedMigrationAwareServiceevent - replication eventpublic boolean isKnownServiceNamespace(ServiceNamespace namespace)
FragmentedMigrationAwareServiceisKnownServiceNamespace in interface FragmentedMigrationAwareServicenamespace - namespacepublic void beforeMigration(PartitionMigrationEvent partitionMigrationEvent)
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 MigrationAwareServicepartitionMigrationEvent - migration eventpublic Operation prepareReplicationOperation(PartitionReplicationEvent event)
MigrationAwareServiceThis method will be called on source member whenever partitioning system requires to copy/replicate a partition replica. Returned operation will be executed on destination member. If operation fails by throwing exception, migration process will fail and will be rolled back.
Returning null is allowed and means service does not have anything to replicate.
prepareReplicationOperation in interface MigrationAwareServiceevent - replicationpublic Operation prepareReplicationOperation(PartitionReplicationEvent event, Collection<ServiceNamespace> namespaces)
FragmentedMigrationAwareServiceMigrationAwareService.prepareReplicationOperation(PartitionReplicationEvent),
instead of copying whole partition replica, allows copying only some portion of replica,
specified by given namespaces.
This method will be called on source member whenever partitioning system requires to copy/replicate a partition replica. Returned operation will be executed on destination member. If operation fails by throwing exception, migration process will fail and will be rolled back.
Returning null is allowed and means service does not have anything to replicate.
prepareReplicationOperation in interface FragmentedMigrationAwareServiceevent - replication eventnamespaces - replica fragment namespaces to replicateMigrationAwareService.prepareReplicationOperation(PartitionReplicationEvent)public void commitMigration(PartitionMigrationEvent event)
MigrationAwareServiceCommit is not expected to fail at this point, all exceptions will be suppressed and logged. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
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. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
rollbackMigration in interface MigrationAwareServiceevent - migration eventpublic DistributedObject createDistributedObject(String objectId)
RemoteServicecreateDistributedObject in interface RemoteServiceobjectId - the name for the created distributed objectpublic void destroyDistributedObject(String objectId)
RemoteServicedestroyDistributedObject in interface RemoteServiceobjectId - the name of the distributed object to destroypublic void clientDisconnected(String clientUuid)
ClientAwareServiceclientDisconnected in interface ClientAwareServiceclientUuid - the UUID of the client that disconnected from a memberpublic static long getMaxLeaseTimeInMillis(HazelcastProperties hazelcastProperties)
public String getQuorumName(String name)
QuorumAwareServicegetQuorumName in interface QuorumAwareServicename - the operation name for which the quorum name is returedCopyright © 2018 Hazelcast, Inc.. All Rights Reserved.