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

Íñigo Goiri commented on HDFS-13443:
------------------------------------

[^HDFS-13443-014.patch] looks prety much it.

* {{RouterAdminServer}} we could extract 
{{this.router.getSubclusterResolver()}} into a variable.
* {{RouterAdminServer#refreshMountTableEntries}} the big comment shouldn't be a 
javadoc but a regular comment.
* The javadoc in {{MountTableRefresherService#routerClientsCache}} will 
probably give issues with javadoc using {{>}}.
* {{MountTableRefresherService#getClientCacheCleaner}} shouldn't have a javadoc 
but a regular comment inside. This would actually be a place to use a lambda 
for runnable instead of a function.
* {{MountTableRefresherService#refresh}} could use {{else if}} instead of the 
continue all the time. You could also put the variable and the add inside the 
try and not having to do a continue in the catch.
* Not sure if {{MountTableRefresherService#invokeRefresh}} needs 
{{allReqCompleted}} as inside of logResult you go through all the results. That 
would also cleanup the code a little by keeping the try isolated.
* {{MountTableRefresherThread#adminAddress}} comment should be a javadoc {{/** 
Admin server on which refreshed to be invoked. */}}.
* In {{Router}}, the log line for starting the service should start in capitals.
* Avoid the import change for VisibleForTesting in {{RouterHeartbeatService}}; 
avoid churn basically.
* {{testRouterClientConnectionExpiration}} after the waitFor, there is no need 
to assert as the waitFor would already fail. We should use a lambda too.
* You could make {{clientCacheTime}} an integer an save the int cast.

> RBF: Update mount table cache immediately after changing (add/update/remove) 
> mount table entries.
> -------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-13443
>                 URL: https://issues.apache.org/jira/browse/HDFS-13443
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: fs
>            Reporter: Mohammad Arshad
>            Assignee: Mohammad Arshad
>            Priority: Major
>              Labels: RBF
>         Attachments: HDFS-13443-012.patch, HDFS-13443-013.patch, 
> HDFS-13443-014.patch, HDFS-13443-branch-2.001.patch, 
> HDFS-13443-branch-2.002.patch, HDFS-13443.001.patch, HDFS-13443.002.patch, 
> HDFS-13443.003.patch, HDFS-13443.004.patch, HDFS-13443.005.patch, 
> HDFS-13443.006.patch, HDFS-13443.007.patch, HDFS-13443.008.patch, 
> HDFS-13443.009.patch, HDFS-13443.010.patch, HDFS-13443.011.patch
>
>
> Currently mount table cache is updated periodically, by default cache is 
> updated every minute. After change in mount table, user operations may still 
> use old mount table. This is bit wrong.
> To update mount table cache, maybe we can do following
>  * *Add refresh API in MountTableManager which will update mount table cache.*
>  * *When there is a change in mount table entries, router admin server can 
> update its cache and ask other routers to update their cache*. For example if 
> there are three routers R1,R2,R3 in a cluster then add mount table entry API, 
> at admin server side, will perform following sequence of action
>  ## user submit add mount table entry request on R1
>  ## R1 adds the mount table entry in state store
>  ## R1 call refresh API on R2
>  ## R1 calls refresh API on R3
>  ## R1 directly freshest its cache
>  ## Add mount table entry response send back to user.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to