Class NoopReplicationQueueStorage
java.lang.Object
org.apache.hadoop.hbase.replication.regionserver.NoopReplicationQueueStorage
- All Implemented Interfaces:
ReplicationQueueStorage
Noop queue storage -- does nothing.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addHFileRefs
(String peerId, List<Pair<org.apache.hadoop.fs.Path, org.apache.hadoop.fs.Path>> pairs) Add new hfile references to the queue.void
addPeerToHFileRefs
(String peerId) Add a peer to hfile reference queue if peer does not exist.void
addWAL
(ServerName serverName, String queueId, String fileName) Add a new WAL file to the given queue for a given regionserver.claimQueue
(ServerName sourceServerName, String queueId, ServerName destServerName) Change ownership for the queue identified by queueId and belongs to a dead region server.Load all hfile references in all replication queues.Get list of all peers from hfile reference queue.getAllQueues
(ServerName serverName) Get a list of all queues for the specified region server.Load all wals in all replication queues.long
getLastSequenceId
(String encodedRegionName, String peerId) Read the max sequence id of the specific region for a given peer.Get a list of all region servers that have outstanding replication queues.getReplicableHFiles
(String peerId) Get a list of all hfile references in the given peer.getRsNode
(ServerName serverName) Get full znode name for given region serverlong
getWALPosition
(ServerName serverName, String queueId, String fileName) Get the current position for a specific WAL in a given queue for a given regionserver.getWALsInQueue
(ServerName serverName, String queueId) Get a list of all WALs in the given queue on the given region server.void
removeHFileRefs
(String peerId, List<String> files) Remove hfile references from the queue.void
removeLastSequenceIds
(String peerId) Remove all the max sequence id record for the given peer.void
removeLastSequenceIds
(String peerId, List<String> encodedRegionNames) Remove the max sequence id record for the given peer and regions.void
removePeerFromHFileRefs
(String peerId) Remove a peer from hfile reference queue.void
removeQueue
(ServerName serverName, String queueId) Remove a replication queue for a given regionserver.void
removeReplicatorIfQueueIsEmpty
(ServerName serverName) Remove the record of region server if the queue is empty.void
removeWAL
(ServerName serverName, String queueId, String fileName) Remove an WAL file from the given queue for a given regionserver.void
setLastSequenceIds
(String peerId, Map<String, Long> lastSeqIds) Set the max sequence id of a bunch of regions for a given peer.void
setWALPosition
(ServerName serverName, String queueId, String fileName, long position, Map<String, Long> lastSeqIds) Set the current position for a specific WAL in a given queue for a given regionserver.
-
Constructor Details
-
NoopReplicationQueueStorage
-
-
Method Details
-
removeQueue
Description copied from interface:ReplicationQueueStorage
Remove a replication queue for a given regionserver.- Specified by:
removeQueue
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the regionserverqueueId
- a String that identifies the queue.- Throws:
ReplicationException
-
addWAL
public void addWAL(ServerName serverName, String queueId, String fileName) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Add a new WAL file to the given queue for a given regionserver. If the queue does not exist it is created.- Specified by:
addWAL
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the regionserverqueueId
- a String that identifies the queue.fileName
- name of the WAL- Throws:
ReplicationException
-
removeWAL
public void removeWAL(ServerName serverName, String queueId, String fileName) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Remove an WAL file from the given queue for a given regionserver.- Specified by:
removeWAL
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the regionserverqueueId
- a String that identifies the queue.fileName
- name of the WAL- Throws:
ReplicationException
-
setWALPosition
public void setWALPosition(ServerName serverName, String queueId, String fileName, long position, Map<String, Long> lastSeqIds) throws ReplicationExceptionDescription copied from interface:ReplicationQueueStorage
Set the current position for a specific WAL in a given queue for a given regionserver.- Specified by:
setWALPosition
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the regionserverqueueId
- a String that identifies the queuefileName
- name of the WALposition
- the current position in the file. Will ignore if less than or equal to 0.lastSeqIds
- map with {encodedRegionName, sequenceId} pairs for serial replication.- Throws:
ReplicationException
-
getLastSequenceId
Description copied from interface:ReplicationQueueStorage
Read the max sequence id of the specific region for a given peer. For serial replication, we need the max sequenced id to decide whether we can push the next entries.- Specified by:
getLastSequenceId
in interfaceReplicationQueueStorage
- Parameters:
encodedRegionName
- the encoded region namepeerId
- peer id- Returns:
- the max sequence id of the specific region for a given peer.
- Throws:
ReplicationException
-
setLastSequenceIds
public void setLastSequenceIds(String peerId, Map<String, Long> lastSeqIds) throws ReplicationExceptionDescription copied from interface:ReplicationQueueStorage
Set the max sequence id of a bunch of regions for a given peer. Will be called when setting up a serial replication peer.- Specified by:
setLastSequenceIds
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer idlastSeqIds
- map with {encodedRegionName, sequenceId} pairs for serial replication.- Throws:
ReplicationException
-
removeLastSequenceIds
Description copied from interface:ReplicationQueueStorage
Remove all the max sequence id record for the given peer.- Specified by:
removeLastSequenceIds
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer id- Throws:
ReplicationException
-
removeLastSequenceIds
public void removeLastSequenceIds(String peerId, List<String> encodedRegionNames) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Remove the max sequence id record for the given peer and regions.- Specified by:
removeLastSequenceIds
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer idencodedRegionNames
- the encoded region names- Throws:
ReplicationException
-
getWALPosition
public long getWALPosition(ServerName serverName, String queueId, String fileName) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Get the current position for a specific WAL in a given queue for a given regionserver.- Specified by:
getWALPosition
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the regionserverqueueId
- a String that identifies the queuefileName
- name of the WAL- Returns:
- the current position in the file
- Throws:
ReplicationException
-
getWALsInQueue
public List<String> getWALsInQueue(ServerName serverName, String queueId) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Get a list of all WALs in the given queue on the given region server.- Specified by:
getWALsInQueue
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the server name of the region server that owns the queuequeueId
- a String that identifies the queue- Returns:
- a list of WALs
- Throws:
ReplicationException
-
getAllQueues
Description copied from interface:ReplicationQueueStorage
Get a list of all queues for the specified region server.- Specified by:
getAllQueues
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the server name of the region server that owns the set of queues- Returns:
- a list of queueIds
- Throws:
ReplicationException
-
claimQueue
public Pair<String,SortedSet<String>> claimQueue(ServerName sourceServerName, String queueId, ServerName destServerName) throws ReplicationException Description copied from interface:ReplicationQueueStorage
Change ownership for the queue identified by queueId and belongs to a dead region server.- Specified by:
claimQueue
in interfaceReplicationQueueStorage
- Parameters:
sourceServerName
- the name of the dead region serverqueueId
- the id of the queuedestServerName
- the name of the target region server- Returns:
- the new PeerId and A SortedSet of WALs in its queue
- Throws:
ReplicationException
-
removeReplicatorIfQueueIsEmpty
Description copied from interface:ReplicationQueueStorage
Remove the record of region server if the queue is empty.- Specified by:
removeReplicatorIfQueueIsEmpty
in interfaceReplicationQueueStorage
- Throws:
ReplicationException
-
getListOfReplicators
Description copied from interface:ReplicationQueueStorage
Get a list of all region servers that have outstanding replication queues. These servers could be alive, dead or from a previous run of the cluster.- Specified by:
getListOfReplicators
in interfaceReplicationQueueStorage
- Returns:
- a list of server names
- Throws:
ReplicationException
-
getAllWALs
Description copied from interface:ReplicationQueueStorage
Load all wals in all replication queues. This method guarantees to return a snapshot which contains all WALs at the start of this call even there is concurrent queue failover. However, some newly created WALs during the call may not be included.- Specified by:
getAllWALs
in interfaceReplicationQueueStorage
- Throws:
ReplicationException
-
addPeerToHFileRefs
Description copied from interface:ReplicationQueueStorage
Add a peer to hfile reference queue if peer does not exist.- Specified by:
addPeerToHFileRefs
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer cluster id to be added- Throws:
ReplicationException
- if fails to add a peer id to hfile reference queue
-
removePeerFromHFileRefs
Description copied from interface:ReplicationQueueStorage
Remove a peer from hfile reference queue.- Specified by:
removePeerFromHFileRefs
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer cluster id to be removed- Throws:
ReplicationException
-
addHFileRefs
public void addHFileRefs(String peerId, List<Pair<org.apache.hadoop.fs.Path, org.apache.hadoop.fs.Path>> pairs) throws ReplicationExceptionDescription copied from interface:ReplicationQueueStorage
Add new hfile references to the queue.- Specified by:
addHFileRefs
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer cluster id to which the hfiles need to be replicatedpairs
- list of pairs of { HFile location in staging dir, HFile path in region dir which will be added in the queue }- Throws:
ReplicationException
- if fails to add a hfile reference
-
removeHFileRefs
Description copied from interface:ReplicationQueueStorage
Remove hfile references from the queue.- Specified by:
removeHFileRefs
in interfaceReplicationQueueStorage
- Parameters:
peerId
- peer cluster id from which this hfile references needs to be removedfiles
- list of hfile references to be removed- Throws:
ReplicationException
-
getAllPeersFromHFileRefsQueue
Description copied from interface:ReplicationQueueStorage
Get list of all peers from hfile reference queue.- Specified by:
getAllPeersFromHFileRefsQueue
in interfaceReplicationQueueStorage
- Returns:
- a list of peer ids
- Throws:
ReplicationException
-
getReplicableHFiles
Description copied from interface:ReplicationQueueStorage
Get a list of all hfile references in the given peer.- Specified by:
getReplicableHFiles
in interfaceReplicationQueueStorage
- Parameters:
peerId
- a String that identifies the peer- Returns:
- a list of hfile references
- Throws:
ReplicationException
-
getAllHFileRefs
Description copied from interface:ReplicationQueueStorage
Load all hfile references in all replication queues. This method guarantees to return a snapshot which contains all hfile references at the start of this call. However, some newly created hfile references during the call may not be included.- Specified by:
getAllHFileRefs
in interfaceReplicationQueueStorage
- Throws:
ReplicationException
-
getRsNode
Description copied from interface:ReplicationQueueStorage
Get full znode name for given region server- Specified by:
getRsNode
in interfaceReplicationQueueStorage
- Parameters:
serverName
- the name of the region server- Returns:
- full znode name
-