You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/09/14 09:52:24 UTC
svn commit: r1384672 - in
/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase:
regionserver/SplitLogWorker.java zookeeper/ZKSplitLog.java
Author: mbautin
Date: Fri Sep 14 07:52:24 2012
New Revision: 1384672
URL: http://svn.apache.org/viewvc?rev=1384672&view=rev
Log:
[0.89-fb] [HBASE-6680] Fix split log worker names
Author: aaiyer
Summary:
SplitLogWorker is using a human readable worker name that contains
space to identify itself to SplitLogManager.
eg:
<machine name> Worker #X.
SplitLogWorker uses <machine name>-worker-#number as its temporary directory.
While this is guaranteed to be unique, it appears that SplitLogManager tries
to discover the same directory using the "worker name" given by
SplitLogWorker. This is required to move the split recovered edits files to
the appropriate place.
Making both the names same, so that SplitLogManager can discover the
directory correctly.
Test Plan:
deploy to test cluster.
kill a rs.
ensure that the split log manager discovers the destination correctly, and
moves the split files.
Reviewers: pkhemani, kannan
Reviewed By: kannan
CC: hbase-eng@, michalgr
Differential Revision: https://phabricator.fb.com/D569555
Task ID: 1452354
Modified:
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKSplitLog.java
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java?rev=1384672&r1=1384671&r2=1384672&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/SplitLogWorker.java Fri Sep 14 07:52:24 2012
@@ -92,9 +92,9 @@ public class SplitLogWorker implements R
private static int numWorkers = 0;
public SplitLogWorker(ZooKeeperWrapper watcher, Configuration conf,
- String serverName, TaskExecutor executor) {
+ String workerName, TaskExecutor executor) {
this.watcher = watcher;
- this.workerName = serverName + " Worker-" + numWorkers++;
+ this.workerName = workerName;
this.executor = executor;
this.zkretries = conf.getLong("hbase.splitlog.zk.retries", 3);
}
@@ -102,7 +102,15 @@ public class SplitLogWorker implements R
public SplitLogWorker(ZooKeeperWrapper watcher, final Configuration conf,
final String serverName, final ExecutorService logCloseThreadPool,
final AtomicReference<HMasterRegionInterface> masterRef) {
- this(watcher, conf, serverName, new TaskExecutor () {
+ this(watcher, conf, serverName, serverName + "-worker-" + numWorkers++,
+ logCloseThreadPool, masterRef);
+ }
+
+ private SplitLogWorker(ZooKeeperWrapper watcher, final Configuration conf,
+ final String serverName, final String workerName,
+ final ExecutorService logCloseThreadPool,
+ final AtomicReference<HMasterRegionInterface> masterRef) {
+ this(watcher, conf, workerName, new TaskExecutor () {
@Override
public Status exec(String filename, CancelableProgressable p) {
Path rootdir;
@@ -130,7 +138,7 @@ public class SplitLogWorker implements R
return Status.ERR;
}
String tmpname = ZKSplitLog.getSplitLogDirTmpComponent(
- serverName + "-worker-" + numWorkers, filename);
+ workerName, filename);
if (HLogSplitter.splitLogFileToTemp(rootdir, tmpname,
st, fs, conf, p, logCloseThreadPool, masterRef.get()) == false) {
return Status.PREEMPTED;
Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKSplitLog.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKSplitLog.java?rev=1384672&r1=1384671&r2=1384672&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKSplitLog.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/zookeeper/ZKSplitLog.java Fri Sep 14 07:52:24 2012
@@ -125,9 +125,9 @@ public class ZKSplitLog {
}
public String getServerName(byte[] data) {
- String str = Bytes.toString(data);
- String [] parts = str.split(" ");
- return parts[1];
+ String writer = getWriterName(data);
+ String [] parts = writer.split("-worker");
+ return parts[0];
}