[ https://issues.apache.org/jira/browse/HDFS-13443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448477#comment-16448477 ]
Íñigo Goiri commented on HDFS-13443: ------------------------------------ Thanks [~arshad.mohammad] for [^HDFS-13443.003.patch]. A couple comments: * Most of my confusion with what's local and remote comes form the fact that the methods for local and remote have the same name; for readability, I would make one of them different. Not sure if the local or the remote though. * The new times in RBFConfigKeys should be defined as TimeUnit and we should use millis or seconds. * 30 minutes for the connection seems a little high, 5 minutes (even 1) should be more than enough. * I think I've seen something like getHostPortString in other places, is there a library we can use? Not sure StateStoreUtils is the place either as this is not the state store at all. * Use {{new ArrayList<>()}} instead of {{new ArrayList<MountTableRefreshThread>()}}. * For routerClientsCache, you can add a creator of connections so you don't need to do the check yourself. * It looks like we can have cases where we cannot get the client to the Router (MountTableRefreshService#168), we should return which Routers we have updated succesfully and which ones are failed. * Typo {{logRestult}} * Why do we need to specifically use ZK in the unit test? I would leave it to whatever the default one is. We could potentially reuse some of the other unit tests that have a full subcluster with admin. Ideally some of the mount table related ones. * Use Time.monotonicNow() instead of System.currentTimeMillis(). > 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-branch-2.001.patch, > HDFS-13443-branch-2.002.patch, HDFS-13443.001.patch, HDFS-13443.002.patch, > HDFS-13443.003.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: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org