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

ASF GitHub Bot commented on STORM-634:
--------------------------------------

Github user Parth-Brahmbhatt commented on a diff in the pull request:

    https://github.com/apache/storm/pull/414#discussion_r26250794
  
    --- Diff: storm-core/src/storm.thrift ---
    @@ -243,6 +244,55 @@ struct SubmitOptions {
       2: optional Credentials creds;
     }
     
    +struct SupervisorInfo {
    +    1: required i64 time_secs;
    +    2: required string hostname;
    +    3: optional string assignment_id;
    +    4: optional list<i64> used_ports;
    +    5: optional list<i64> meta;
    +    6: optional map<string, string> scheduler_meta;
    +    7: optional i64 uptime_secs;
    +}
    +struct NodeInfo {
    +    1: required string node;
    +    2: required set<i64> port;
    +}
    +
    +struct Assignment {
    +    1: required string master_code_dir;
    +    2: optional map<string, string> node_host = {};
    +    3: optional map<list<i64>, NodeInfo> executor_node_port = {};
    +    4: optional map<list<i64>, i64> executor_start_time_secs = {};
    +}
    +
    +enum TopologyStatus {
    +    ACTIVE = 1,
    +    INACTIVE = 2,
    +    REBALANCING = 3,
    +    KILLED = 4
    +}
    +
    +union TopologyActionOptions {
    +    1: optional KillOptions kill_options;
    +    2: optional RebalanceOptions rebalance_options;
    +}
    +
    +struct StormBase {
    +    1: required string name;
    +    2: required TopologyStatus status;
    +    3: required i32 num_workers;
    +    4: optional map<string, i32> component_executors;
    +    5: optional i32 launch_time_secs;
    +    6: optional string owner;
    +    7: optional TopologyActionOptions topology_action_options;
    +    8: optional TopologyStatus prev_status;//currently only used during 
rebalance action.
    +}
    +
    +struct ZKWorkerHeartbeat {
    --- End diff --
    
    I agree this is a bad naming choice. Updated to ClusterWorkerHeartbeat.


> Storm should support rolling upgrade/downgrade of storm cluster.
> ----------------------------------------------------------------
>
>                 Key: STORM-634
>                 URL: https://issues.apache.org/jira/browse/STORM-634
>             Project: Apache Storm
>          Issue Type: Improvement
>            Reporter: Parth Brahmbhatt
>            Assignee: Parth Brahmbhatt
>
> Currently when a new version of storm is released in order to upgrade 
> existing storm clusters users need to backup their existing topologies , kill 
> all the topologies , perform the upgrade and resubmit all the topologies. 
> This is painful and results in downtime which may not be acceptable for 
> "Always alive"  production systems.
> Storm should support a rolling  upgrade/downgrade deployment process to avoid 
> these downtimes and to make the transition to a different version effortless. 
> Based on my initial attempt the primary issue seem to be the java 
> serialization used to serialize java classes like StormBase, Assignment, 
> WorkerHeartbeat which is then stored in zookeeper. When deserializing if the 
> serial versions do not match the deserialization fails resulting in processes 
> just getting killed indefinitely. We need to change the Utils/serialize and 
> Utils/deserialize so it can support non java serialization mechanism like 
> json. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to