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

Aravindan Vijayan updated HDDS-2241:
------------------------------------
    Description: 
Currently, while looking up a key, the Ozone Manager gets the pipeline location 
information from SCM through an RPC for every block in the key. For large files 
> 1GB, we may end up making ~4 RPC calls for this. This can be optimized in a 
couple of ways

* We can implement a batch getContainerWithPipeline API in SCM using which we 
can get the pipeline info locations for all the blocks for a file. To keep the 
number of containers passed in to SCM in a single call, we can have a fixed 
container batch size on the OM side. _Here, Number of calls = 1 (or k depending 
on batch size)_
* Instead, we can have a simple map (method local) for ContainerID -> Pipeline 
that we get from SCM so that we don't need to make calls to SCM again for the 
same pipeline for that key. _Here, Number of calls = Number of unique 
containerIDs_

  was:
Currently, while looking up a key, the Ozone Manager gets the pipeline location 
information from SCM through an RPC for every block in the key. For large files 
> 1GB, we may end up making ~4 RPC calls for this. This can be optimized in a 
couple of ways

* We can implement a batch getContainerWithPipeline API in SCM using which we 
can get the pipeline info locations for all the blocks for a file. To keep the 
number of containers passed in to SCM in a single call, we can have a fixed 
container batch size on the OM side. 
* Instead, we can have a simple map (inside the method) for ContainerID -> 
Pipeline that we got from SCM so that we don't need to make calls to SCM again 
for the same pipeline. Here number of calls = number of unique containerIDs.


> Optimize the refresh pipeline logic used by KeyManagerImpl to obtain the 
> pipeline for a key
> -------------------------------------------------------------------------------------------
>
>                 Key: HDDS-2241
>                 URL: https://issues.apache.org/jira/browse/HDDS-2241
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: Ozone Manager
>            Reporter: Aravindan Vijayan
>            Assignee: Aravindan Vijayan
>            Priority: Major
>
> Currently, while looking up a key, the Ozone Manager gets the pipeline 
> location information from SCM through an RPC for every block in the key. For 
> large files > 1GB, we may end up making ~4 RPC calls for this. This can be 
> optimized in a couple of ways
> * We can implement a batch getContainerWithPipeline API in SCM using which we 
> can get the pipeline info locations for all the blocks for a file. To keep 
> the number of containers passed in to SCM in a single call, we can have a 
> fixed container batch size on the OM side. _Here, Number of calls = 1 (or k 
> depending on batch size)_
> * Instead, we can have a simple map (method local) for ContainerID -> 
> Pipeline that we get from SCM so that we don't need to make calls to SCM 
> again for the same pipeline for that key. _Here, Number of calls = Number of 
> unique containerIDs_



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to