[ 
https://issues.apache.org/jira/browse/HDDS-1106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16770931#comment-16770931
 ] 

Lokesh Jain commented on HDDS-1106:
-----------------------------------

[~linyiqun] Thanks for reviewing the patch!

| Why not also make {{State}} as one condition in {{PipelineQuery}}?

Currently we do not need to maintain list of pipelines in ALLOCATED and CLOSED 
state. We are maintaining a separate list for OPEN pipelines because these 
pipelines will frequently be queried in allocateBlock call.

Further the patch uses CopyOnWriteArrayList which is a concurrent list. 
Maintaining concurrent list for all the states will give too much computation 
overhead when we update pipeline state.

> Introduce queryMap in PipelineManager
> -------------------------------------
>
>                 Key: HDDS-1106
>                 URL: https://issues.apache.org/jira/browse/HDDS-1106
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>            Reporter: Lokesh Jain
>            Assignee: Lokesh Jain
>            Priority: Major
>             Fix For: 0.4.0
>
>         Attachments: HDDS-1106.001.patch, HDDS-1106.002.patch
>
>
> In Genesis benchmark for block allocation it was found that 
> BlockManager#allocateBlock call was very slow for higher number of pipelines. 
> This happens because allocateBlock call gets list of pipelines with a 
> particular replication type, replication factor and state. This list is 
> calculated by traversing the entries of a map. This Jira aims to optimize the 
> call by introducing query map in Pipeline Manager.
> The pipeline manager would keep a maintain a list of pipelines for every 
> query type i.e. for every replication type, replication factor.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to