hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hsieh (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7199) hbck should check lingering reference hfile and have option to sideline them automatically
Date Tue, 18 Dec 2012 19:06:14 GMT

    [ https://issues.apache.org/jira/browse/HBASE-7199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13535165#comment-13535165
] 

Jonathan Hsieh commented on HBASE-7199:
---------------------------------------

style nit:

I believe it is generally better to exit early instead of nesting ifs deeper and deeper. 
currently it look like this: 
{code}
+      if (isReference) {
..
+        if (!fs.exists(referredToFile)) {
..
+          if (shouldFixReferenceFiles()) {
..
+            if (index > 0) {
{code}

would be nicer if it was like this:
{code}
+      if (!isReference) reutrn xxx;
..
+      if (fs.exists(referredToFile)) return xxx;
..
+      if (!shouldFixReferenceFiles()) return xxx;
..
+      if (index <= 0) return xxx;
...
...    normal case
{code}

----

sp: sildeline
+              LOG.info("Trying to sildeline reference file"
+                + path + " to " + dst);

----

can this 
{code}
+            String pathStr = path.toString();
+            int index = pathStr.lastIndexOf(Path.SEPARATOR_CHAR);
+            for (int i = 0; index > 0 && i < 3; i++) {
+              index = pathStr.lastIndexOf(Path.SEPARATOR_CHAR, index);
+            }
+            if (index > 0) {
+              Path rootDir = getSidelineDir();
+              Path dst = new Path(rootDir, pathStr.substring(index));
+              fs.mkdirs(dst.getParent());
+              LOG.info("Trying to sildeline reference file"
+                + path + " to " + dst);
+              setShouldRerun();
+
+              success = fs.rename(path, dst);
+            }
{code}

be something cleaner using path.getParent() and path.getName()?

Alternatively, I think we could get away with an example because some the string manip is
a little intricate.


                
> hbck should check lingering reference hfile and have option to sideline them automatically
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-7199
>                 URL: https://issues.apache.org/jira/browse/HBASE-7199
>             Project: HBase
>          Issue Type: Improvement
>          Components: hbck
>            Reporter: Jimmy Xiang
>            Assignee: Jimmy Xiang
>         Attachments: trunk-7199.patch
>
>
> Sometimes, some lingering reference hfile points to some region doesn't exist any more.
 This will prevent the region to open.  Hbck should be able to find these files and sideline
them automatically if requested.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message