You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2013/08/07 19:12:49 UTC
svn commit: r1511408 -
/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
Author: jdcryans
Date: Wed Aug 7 17:12:48 2013
New Revision: 1511408
URL: http://svn.apache.org/r1511408
Log:
HBASE-7183 print WARN message if hbase.replication.sizeOfLogQueue is too big (Michael Webster via JD)
Modified:
hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
Modified: hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java?rev=1511408&r1=1511407&r2=1511408&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java (original)
+++ hbase/branches/0.95/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java Wed Aug 7 17:12:48 2013
@@ -131,6 +131,8 @@ public class ReplicationSource extends T
private ReplicationHLogReaderManager repLogReader;
// Handles connecting to peer region servers
private ReplicationSinkManager replicationSinkMgr;
+ //WARN threshold for the number of queued logs, defaults to 2
+ private int logQueueWarnThreshold;
/**
* Instantiation method used by region servers
@@ -182,13 +184,20 @@ public class ReplicationSource extends T
// ReplicationQueueInfo parses the peerId out of the znode for us
this.peerId = this.replicationQueueInfo.getPeerId();
this.replicationSinkMgr = new ReplicationSinkManager(conn, peerId, replicationPeers, conf);
+ this.logQueueWarnThreshold = this.conf.getInt("replication.source.log.queue.warn", 2);
}
@Override
public void enqueueLog(Path log) {
this.queue.put(log);
- this.metrics.setSizeOfLogQueue(queue.size());
+ int queueSize = queue.size();
+ this.metrics.setSizeOfLogQueue(queueSize);
+ // This will log a warning for each new log that gets created above the warn threshold
+ if (queueSize > this.logQueueWarnThreshold) {
+ LOG.warn("Queue size: " + queueSize +
+ " exceeds value of replication.source.log.queue.warn: " + logQueueWarnThreshold);
+ }
}
@Override