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

Elek, Marton commented on HDFS-13300:
-------------------------------------

Thanks the answers [~nandakumar131].
{quote}There is no race condition here. Plugins are loaded in the same order as 
they are specified in the property, so HdslDatanodeService will be loaded 
first; this will create DatanodeDetails instance. When ObjectStoreRestPlugin is 
loaded, it will get DatanodeDetails instance from HdslDatanodeService and 
update OzoneRestPort. SCMNodeManager.hadleHeartbeat doesn't have any idea about 
the ports used by datanode (HdslDatanodeService & ObjectStoreRestPlugin).
{quote}
ServiceDiscovery is based on the healthyNodes/staleNodes/deadNodes maps in 
SCMNodeManager. Let me know if I am wrong but I can imagine the following 
situation.
 # HdslDatanodeService.start() is called by the DataNode()
 ## DatanodeDescriptor is created
 ## DatanodeMachine is started (*Async! Separated threads*)
 # ObjectStoreRestPlugin.start() is called
 ## In the mean time the DatanodeMachine is started in a separated thread (see 
the previous point). RunningDatanodeState may send the first registration 
request to the SCM.
 ## Rest interface is started and restPort is updated in the 
DatanodeDescriptor. But the descriptor has already been sent to the SCM.
 # With the next heartbeats the latest datanodeDescriptor will be sent to the 
scm. But the maps (healthyNodes/staleNodes/deadNodes) are not updated with the 
new descriptor. Still the original descriptor will be used which (in some 
cases) doesn't contain the rest port.

 

> Ozone:  Remove DatanodeID dependency from HDSL and Ozone
> --------------------------------------------------------
>
>                 Key: HDFS-13300
>                 URL: https://issues.apache.org/jira/browse/HDFS-13300
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ozone
>            Reporter: Nanda kumar
>            Assignee: Nanda kumar
>            Priority: Major
>         Attachments: HDFS-13300-HDFS-7240.000.patch, 
> HDFS-13300-HDFS-7240.001.patch, HDFS-13300-HDFS-7240.002.patch
>
>
> DatanodeID has been modified to add HDSL/Ozone related information 
> previously. This jira is to remove DatanodeID dependency from HDSL/Ozone to 
> make it truly pluggable without having the need to modify DatanodeID.



--
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