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

Andrew Wang commented on HDFS-5326:
-----------------------------------

Hey Colin, thanks for another mondo patch. I like the overall idea here, and I 
like the new PB code and user-facing API. All of the comments here are minor, 
I'll do another pass on an updated patch but expect to quickly be +1:

Nitty:
* IdNotFoundException: Can we say what this is used for than just EINVAL?
* Update hdfs-default.xml too with changed config name
* ClientProtocol still revers to "cache descriptor" in 
removePathBasedCacheDescriptor
* Reusing PBCD for the {{filterInfo}} in {{DFS#listPBCD}} is a little too 
loosey goosey for me. Normally a PBCD always has a path and pool set, with just 
the repl and id being optional. This is a third form of usage, and we'll 
probably never want to filter on more than path and pool. How about keeping the 
old method signature? We can still use PBCD after DFS for simplicity if you 
like. It should probably also be named just {{filter}} too, since the type 
isn't named {{PBCDInfo}}.
* Maybe we should rename CachePoolInfo to CachePool so the public APIs and 
classes line up, e.g. you {{addPathBasedCacheDirective}} a {{PBCD}}, and 
{{addCachePool}} a {{CachePool}}. Or we could have a PBCDi class at the risk of 
shaming on Hacker News ;) If we went with PBCDi, listPBCD would of still take a 
{{filterInfo}}.
* DFS#listPBCD, DFS#addPathBasedCacheDirective javadoc needs to be updated with 
new params/return values
* DFS#removePBCD: can just say "id of" instead of "id id of"
* PBCD#getId: javadoc says it gets the path, not the id
* PBCD.Builder#setId: javadoc param descriptions are off
* Organizationally, do you mind moving the new modify stuff in the FSEditLog, 
Loader, Op, etc, so it goes add/modify/remove for directives, add/modify/remove 
for pools? Compat isn't a concern yet.
* CacheManager has some lines beyond 80 chars due to the new indent

Other:
* FSN#modifyPBCD, need to move the FSPermissionChecker get and the 
checkOperation above the retry cache check. We can't throw any exceptions after 
the retry cache check that don't also set the retry cache state. It's also I 
think normally first checkOperation then the pc get for consistency.
* We should add the new modify directive to DFSTestUtil so it gets tested too
* Seems like a lot of these checks in CacheManager are now very similar. Since 
there's now a try/catch wrapping everything, we no longer need to have the 
method name in the exception text, and it should also be in the stack trace. 
So, can we consolidate some of these into shared validation methods that throw 
generic exceptions?

> add modifyDirective to cacheAdmin
> ---------------------------------
>
>                 Key: HDFS-5326
>                 URL: https://issues.apache.org/jira/browse/HDFS-5326
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: datanode, namenode
>    Affects Versions: 3.0.0
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: HDFS-5326.003.patch, HDFS-5326.004.patch
>
>
> We should add a way of modifying cache directives on the command-line, 
> similar to how modifyCachePool works.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to