Github user HeartSaVioR commented on the issue:

    https://github.com/apache/storm/pull/2433
  
    @danny0405 
    We have SUPERVISOR_WORKER_VERSION_CLASSPATH_MAP in Config, which is a map 
representing supported versions in supervisor. Assuming all the nodes have 
consistent configuration, Nimbus could check the value of map while initiating 
and determine whether the cluster supports Storm versions under 2.0.0.
    
    
https://github.com/apache/storm/blob/466a7ad74da27c1250eedf412a487db409e42c19/storm-client/src/jvm/org/apache/storm/Config.java#L1529-L1551
    
    And updated topology structure has Storm version information:
    
    
https://github.com/apache/storm/blob/466a7ad74da27c1250eedf412a487db409e42c19/storm-client/src/storm.thrift#L265-L283
    
    we could treat `no value` as same as cluster's version.
    
    So if Nimbus could determine topology's Storm version and apply its 
heartbeat behavior based on the version, we could read heartbeat from ZK for 
topology version under Storm 2.0.0, and we could treat heartbeats only from RPC 
for topology version same or higher than Storm 2.0.0. Not sure how much the 
work would be needed, but with this approach we don't even need to concern with 
SUPERVISOR_WORKER_VERSION_CLASSPATH_MAP.
    



---

Reply via email to