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

ASF GitHub Bot updated HDDS-14470:
----------------------------------
    Labels: pull-request-available  (was: )

> Improve the data structures in OMFailoverProxyProviderBase
> ----------------------------------------------------------
>
>                 Key: HDDS-14470
>                 URL: https://issues.apache.org/jira/browse/HDDS-14470
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: common
>            Reporter: Tsz-wo Sze
>            Assignee: Tsz-wo Sze
>            Priority: Major
>              Labels: pull-request-available
>
> {code}
> //OMFailoverProxyProviderBase
>   private Map<String, OMProxyInfo<T>> omProxies;
>   private List<String> omNodesInOrder;
> {code}
> OMFailoverProxyProviderBase currently has
> - omProxies: nodeId -> OMProxyInfo (Note that OMProxyInfo has a getNodeId() 
> method.)
> - omNodesInOrder: int -> nodeId (Note that the ints specify the ordering of 
> the proxies)
> When getting an OMProxyInfo from an int, it needs to get the nodeId and then 
> lookup the omProxies map for OMProxyInfo.  The map lookup is unnecessary.
> In this JIRA, we improve the data structures by replacing them with the 
> following:
> {code}
>     /** A list of proxies in a particular order. */
>     private final List<OMProxyInfo<P>> proxies;
>     /**
>      * The ordering of the nodes.
>      * <p>
>      * Invariant 1: Given a nodeId, let Integer i = ordering.get(nodeId);
>      *              If i != null, then nodeId.equals(info.getNodeId()) == 
> true, where info = proxies.get(i).
>      *              Otherwise, i == null, then 
> nodeId.equals(info.getNodeId()) == false for any info in proxies.
>      * <p>
>      * Invariant 2: Given 0 <= i < proxies.size(), let nodeId = 
> proxies.get(i).getNodeId().
>      *              Then, ordering.get(nodeId) == i.
>      */
>     private final SortedMap<String, Integer> ordering;
> {code}



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

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

Reply via email to