[
https://issues.apache.org/jira/browse/STORM-634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14357183#comment-14357183
]
ASF GitHub Bot commented on STORM-634:
--------------------------------------
Github user revans2 commented on a diff in the pull request:
https://github.com/apache/storm/pull/414#discussion_r26231202
--- 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'd rather that this is not called ZKWorkerHeartbeat. ZK is a storage
solution that could change in the future, I'd rather call it a
ClusterWorkerHeartbeat or something that describes the abstraction rather than
the storage location.
> 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)