Github user revans2 commented on the pull request:

    https://github.com/apache/storm/pull/753#issuecomment-148382991
  
    @wangli1426 
    
    Thrift classes have two options for member variables.  required and 
optional.  If you mark a member as required it must be there or thrift will 
throw an exception before serializing/deserializing it.  This becomes a problem 
if we want to do a rolling upgrade (upgrade the cluster with no downtime).  In 
that case we upgrade one daemon at a time, and there will be a period of time 
when old clients are talking to new servers and/or new clients are talking to 
old servers.  If we add new required fields to thrift classes then the code 
will break during the upgrade.  However, if we mark them all as optional and 
write the code in the client so it does not break if it gets a null for this 
value, then we will be OK.
    
    I don't want to break a rolling upgrade just so we can have a rate in the 
UI.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to