hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8156) Support for Namenode HA for non-idempotent operations
Date Thu, 21 Mar 2013 19:51:15 GMT

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

stack commented on HBASE-8156:
------------------------------

You do not check the return here:

+    createDir(storeDir);
     return storeDir;

Is it because it will either return true or throw an exception?  Never false?

Stuff will run slower now we are doing more trips to NN I suppose:

+    if (!fs.exists(familyDir)) return;
+    if(!deleteDir(familyDir))

e.g. the addition of the exists check above (Not the fault of this patch... just saying).

Again we do not check the return.  Should we?

-    fs.mkdirs(storeDir);
+    createDir(storeDir);

Here the model is a little different in that we check the return and if not what we want,
then we throw exception:

-    if (!fs.rename(buildPath, dstPath)) {
+    
+    if (!rename(buildPath, dstPath)) {

I suppose the createDir just throws an exception if it fails?  That is probably ok but different
shape on these methods.

Yeah, do you need doc on this method saying how it works?

+   boolean createDir(Path dir) throws IOException {

You ahve this:

+   * @return

I'd think this'd generate a javadoc warning but doesn't look like it does.  Want to fill in
what it means on rename, etc?

rename has doc. Others don't.  Be consistent I'd say.

I don't think you need these kinda banners:

+  // ===========================================================================
+  //  Non-Idempotent calls to DFS, helpers for static calls
+  // ===========================================================================

They tend to get ignored and methods that don't belong get inserted w/o updating the banner
scope....

You have two sleepBeforeRetry ?  Shouldn't one call the other?  Why have two at all?

Patch is looking good.  Lets get it in.
                
> Support for Namenode HA for non-idempotent operations
> -----------------------------------------------------
>
>                 Key: HBASE-8156
>                 URL: https://issues.apache.org/jira/browse/HBASE-8156
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Filesystem Integration
>    Affects Versions: 0.95.0
>            Reporter: Himanshu Vashishtha
>            Assignee: Himanshu Vashishtha
>             Fix For: 0.98.0
>
>         Attachments: HBase-8156-trunk-v1.patch, HBase-8156-trunk-v2.patch
>
>
> In hadoop 2 HA, non-idempotent operations are not retried at the hdfs side. This is by
design as retrying a non-idempotent operation might not be a good design choice for some use
case. 
> HBase needs to handle the retries for such operations at its end. 
> With HBase-7806, there is already some work going on for file system abstractions. There,
HReginFileSystem sits as an abstraction between region and FS. This jira is a move in the
same direction, where it adds retry functionality for non-idempotent calls such as create,
rename and delete in HRegionFileSystem class.

--
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