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

Simbarashe Dzinamarira updated HDFS-16876:
------------------------------------------
    Description: 
An element in RouterStateIdContext#namespaceIdMap is deleted when there is no 
connectionPool referencing the namespace. This is done by a thread in 
ConnectionManager that cleans up stale connectionPools as well.

I propose a less aggressive approach, that is, cleaning up an entry when the 
router cannot resolve a namenode belonging to the namespace.

Some benefits of this approach are:
 * Even when there are no active connections, the router still tracks a recent 
state of the namenode. This will be beneficial for debugging.
 * Simpler lifecycle for the map entries. The entries are long-lived.
 * Few operations under the writeLock in ConnectionManager.

  was:
An element in RouterStateIdContext#namespaceIdMap is deleted when there is no 
connectionPool referencing the namespace. This is done by a thread in 
ConnectionManager that cleans up stale connectionPools as well.

I propose a less aggressive approach, that is, cleaning up an entry when the 
router cannot resolve a namenode belonging to the namespace.

Some benefits of this approach are:
 * Even when there are no active connections, the router still tracks a recent 
state of the namenode. This will be beneficial for debugging.


> Garbage collect map entries in shared RouterStateIdContext using information 
> from namenodeResolver instead of the map of active connectionPools.
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-16876
>                 URL: https://issues.apache.org/jira/browse/HDFS-16876
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: rbf
>            Reporter: Simbarashe Dzinamarira
>            Assignee: Simbarashe Dzinamarira
>            Priority: Critical
>              Labels: pull-request-available
>
> An element in RouterStateIdContext#namespaceIdMap is deleted when there is no 
> connectionPool referencing the namespace. This is done by a thread in 
> ConnectionManager that cleans up stale connectionPools as well.
> I propose a less aggressive approach, that is, cleaning up an entry when the 
> router cannot resolve a namenode belonging to the namespace.
> Some benefits of this approach are:
>  * Even when there are no active connections, the router still tracks a 
> recent state of the namenode. This will be beneficial for debugging.
>  * Simpler lifecycle for the map entries. The entries are long-lived.
>  * Few operations under the writeLock in ConnectionManager.



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

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

Reply via email to