[ 
https://issues.apache.org/jira/browse/HDFS-16953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Íñigo Goiri resolved HDFS-16953.
--------------------------------
    Fix Version/s: 3.4.0
     Hadoop Flags: Reviewed
       Resolution: Fixed

> RBF: Mount table store APIs should update cache only if state store record is 
> successfully updated
> --------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-16953
>                 URL: https://issues.apache.org/jira/browse/HDFS-16953
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Viraj Jasani
>            Assignee: Viraj Jasani
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.4.0
>
>
> RBF Mount table state store APIs addMountTableEntry, updateMountTableEntry 
> and removeMountTableEntry performs cache refresh for all routers regardless 
> of the actual record update result. If the record fails to get updated on 
> zookeeper/file based store impl, reloading the cache for all routers would be 
> unnecessary.
>  
> For instance, simultaneously adding new mount point could lead to failure for 
> the second call if first call has not added new entry by the time second call 
> retrieves mount table entry from getMountTableEntries before attempting to 
> call addMountTableEntry.
> {code:java}
> DEBUG [{cluster}/{ip}:8111] ipc.Client - IPC Client (1826699684) connection 
> to nn-0-{ns}.{cluster}/{ip}:8111 from {user}IPC Client (1826699684) 
> connection to nn-0-{ns}.{cluster}/{ip}:8111 from {user} sending #1 
> org.apache.hadoop.hdfs.protocolPB.RouterAdminProtocol.addMountTableEntry
> DEBUG [{cluster}/{ip}:8111 from {user}] ipc.Client - IPC Client (1826699684) 
> connection to nn-0-{ns}.{cluster}/{ip}:8111 from {user} got value #1
> DEBUG [main] ipc.ProtobufRpcEngine2 - Call: addMountTableEntry took 24ms
> DEBUG [{cluster}/{ip}:8111 from {user}] ipc.Client - IPC Client (1826699684) 
> connection to nn-0-{ns}.{cluster}/{ip}:8111 from {user}: closed
> DEBUG [{cluster}/{ip}:8111 from {user}] ipc.Client - IPC Client (1826699684) 
> connection to nn-0-{ns}.{cluster}/{ip}:8111 from {user}: stopped, remaining 
> connections 0
> TRACE [main] ipc.ProtobufRpcEngine2 - 1: Response <- 
> nn-0-{ns}.{cluster}/{ip}:8111: addMountTableEntry {status: false}
> Cannot add mount point /data503 {code}
> The failure to write new record:
> {code:java}
> INFO  [IPC Server handler 0 on default port 8111] 
> impl.StateStoreZooKeeperImpl - Cannot write record 
> "/hdfs-federation/MountTable/0SLASH0data503", it already exists {code}
> Since the successful call has already refreshed cache for all routers, second 
> call that failed should not have refreshed cache for all routers again as 
> everyone already has updated records in cache.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to