[
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