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

伊丹翔 commented on IOTDB-4630:
----------------------------

doc: https://apache-iotdb.feishu.cn/docx/Mi1ydlzjHoOswyxQCzucDcxHnve

> 【2】Implement observer pattern in LoadBalancing framework
> --------------------------------------------------------
>
>                 Key: IOTDB-4630
>                 URL: https://issues.apache.org/jira/browse/IOTDB-4630
>             Project: Apache IoTDB
>          Issue Type: Improvement
>            Reporter: Gaofei Cao
>            Assignee: 伊丹翔
>            Priority: Major
>
> Many of the services running on ConfigNode-leader have a requirement to make 
> decisions when the status of a DataNode changed. Currently, we've implemented 
> a `Unknown-DataNode-Detector` service at NodeManager to periodically check 
> the DataNodes' status and notify other services when some DataNodes' status 
> changed. However, the `Unknown-DataNode-Detector` only check `Running` and 
> `Unknown` status and the notification is serial, which is a inferior 
> implementation for cluster version.
>  
> Obviously, observer pattern is more suitable for soving this problem. And 
> there are some requirements that the observer pattern needs to satisfy:
>  
>  # The observed(nodeCache in NodeManager) should publish some information as 
> soon as some Nodes' status have changed.
>  # There observed may produce multiple information at the same time. i.e. 
> there are multiple Nodes changed their status within a heartbeat loop.
>  # The observers should receive the information and perform its own mission 
> asynchronously between each other.



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

Reply via email to