You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by sr...@apache.org on 2015/09/21 19:41:03 UTC

[18/24] storm git commit: merging from upstream

merging from upstream


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/0151b441
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/0151b441
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/0151b441

Branch: refs/heads/master
Commit: 0151b441b0a68d490074d415d408caa522e47ffb
Parents: e5265d8 154e9ec
Author: Arun Mahadevan <ai...@hortonworks.com>
Authored: Thu Sep 3 11:39:02 2015 -0700
Committer: Arun Mahadevan <ai...@hortonworks.com>
Committed: Thu Sep 3 11:39:02 2015 -0700

----------------------------------------------------------------------
 .gitignore                                      |   2 +-
 CHANGELOG.md                                    |  30 +
 README.markdown                                 |  13 +
 SECURITY.md                                     |   2 +-
 STORM-UI-REST-API.md                            |  41 +-
 TODO                                            | 178 ----
 bin/storm-config.cmd                            |  18 +-
 bin/storm.py                                    |  22 +-
 conf/defaults.yaml                              |  10 +-
 dev-tools/travis/travis-script.sh               |   2 +-
 docs/documentation/FAQ.md                       |   7 +-
 .../nimbus_ha_leader_election_and_failover.png  | Bin 0 -> 154316 bytes
 .../images/nimbus_ha_topology_submission.png    | Bin 0 -> 134180 bytes
 docs/documentation/nimbus-ha-design.md          | 217 +++++
 examples/storm-starter/pom.xml                  |  29 +
 .../starter/trident/TridentKafkaWordCount.java  | 230 +++++
 .../flux-core/src/test/resources/log4j2.xml     |  34 +
 .../flux-core/src/test/resources/logback.xml    |  30 -
 external/storm-elasticsearch/README.md          |  91 +-
 external/storm-elasticsearch/pom.xml            |  16 +-
 .../elasticsearch/ElasticsearchGetRequest.java  |  36 +
 .../elasticsearch/EsLookupResultOutput.java     |  43 +
 .../elasticsearch/bolt/AbstractEsBolt.java      |  56 +-
 .../storm/elasticsearch/bolt/EsIndexBolt.java   |  25 +-
 .../storm/elasticsearch/bolt/EsLookupBolt.java  |  81 ++
 .../elasticsearch/bolt/EsPercolateBolt.java     |  26 +-
 .../common/DefaultEsTupleMapper.java            |  42 +
 .../storm/elasticsearch/common/EsConfig.java    |  64 +-
 .../elasticsearch/common/EsTupleMapper.java     |  55 ++
 .../common/StormElasticSearchClient.java        |  48 +
 .../common/TransportAddresses.java              |  72 ++
 .../storm/elasticsearch/trident/EsState.java    |  54 +-
 .../elasticsearch/trident/EsStateFactory.java   |  27 +-
 .../storm/elasticsearch/trident/EsUpdater.java  |   6 +-
 .../bolt/AbstractEsBoltIntegrationTest.java     |  91 ++
 .../elasticsearch/bolt/AbstractEsBoltTest.java  |  80 +-
 .../elasticsearch/bolt/EsIndexBoltTest.java     |  43 +-
 .../elasticsearch/bolt/EsIndexTopology.java     |   8 +-
 .../bolt/EsLookupBoltIntegrationTest.java       | 137 +++
 .../elasticsearch/bolt/EsLookupBoltTest.java    | 125 +++
 .../elasticsearch/bolt/EsPercolateBoltTest.java |  35 +-
 .../elasticsearch/common/EsConfigTest.java      |  71 ++
 .../storm/elasticsearch/common/EsTestUtil.java  |   5 +
 .../common/TransportAddressesTest.java          |  81 ++
 .../trident/EsStateFactoryTest.java             |  32 +
 .../trident/TridentEsTopology.java              |   8 +-
 external/storm-hbase/pom.xml                    |   2 +-
 external/storm-hdfs/README.md                   |   9 +
 external/storm-hdfs/pom.xml                     |  15 +-
 .../ha/codedistributor/HDFSCodeDistributor.java | 101 +++
 .../apache/storm/hdfs/trident/HdfsState.java    | 392 ++++++--
 .../trident/rotation/FileRotationPolicy.java    |  14 +
 .../rotation/FileSizeRotationPolicy.java        |  13 +
 .../hdfs/trident/rotation/NoRotationPolicy.java |  10 +
 .../trident/rotation/TimedRotationPolicy.java   |  31 +-
 .../storm/hdfs/trident/HdfsStateTest.java       | 206 +++++
 external/storm-hive/README.md                   |  17 +-
 external/storm-hive/pom.xml                     |  24 +
 .../org/apache/storm/hive/bolt/HiveBolt.java    |  39 +-
 .../apache/storm/hive/common/HiveOptions.java   |  11 +
 .../apache/storm/hive/bolt/TestHiveBolt.java    |  12 +-
 external/storm-jdbc/README.md                   |   6 +-
 .../storm/jdbc/trident/state/JdbcState.java     |   2 +-
 .../UserPersistanceTridentTopology.java         |   2 +-
 external/storm-kafka/CHANGELOG.md               |  13 -
 external/storm-kafka/README.md                  |   3 +
 .../ExponentialBackoffMsgRetryManager.java      |   4 +-
 .../src/jvm/storm/kafka/KafkaSpout.java         |   6 +-
 .../src/jvm/storm/kafka/PartitionManager.java   |  10 +-
 .../src/jvm/storm/kafka/SpoutConfig.java        |   3 +
 .../src/jvm/storm/kafka/bolt/KafkaBolt.java     |  17 +-
 .../test/storm/kafka/bolt/KafkaBoltTest.java    |  32 +
 external/storm-solr/README.md                   | 201 +++++
 external/storm-solr/pom.xml                     |  98 ++
 .../apache/storm/solr/bolt/SolrUpdateBolt.java  | 136 +++
 .../storm/solr/config/CountBasedCommit.java     |  59 ++
 .../storm/solr/config/SolrCommitStrategy.java   |  30 +
 .../apache/storm/solr/config/SolrConfig.java    |  42 +
 .../storm/solr/mapper/SolrFieldsMapper.java     | 182 ++++
 .../storm/solr/mapper/SolrJsonMapper.java       | 160 ++++
 .../apache/storm/solr/mapper/SolrMapper.java    |  32 +
 .../storm/solr/mapper/SolrMapperException.java  |  24 +
 .../org/apache/storm/solr/schema/CopyField.java |  50 ++
 .../org/apache/storm/solr/schema/Field.java     |  50 ++
 .../org/apache/storm/solr/schema/FieldType.java |  63 ++
 .../org/apache/storm/solr/schema/Schema.java    | 116 +++
 .../storm/solr/schema/SolrFieldTypeFinder.java  | 182 ++++
 .../schema/builder/RestJsonSchemaBuilder.java   |  69 ++
 .../solr/schema/builder/SchemaBuilder.java      |  27 +
 .../apache/storm/solr/trident/SolrState.java    |  67 ++
 .../storm/solr/trident/SolrStateFactory.java    |  44 +
 .../apache/storm/solr/trident/SolrUpdater.java  |  33 +
 .../storm/solr/spout/SolrFieldsSpout.java       |  76 ++
 .../apache/storm/solr/spout/SolrJsonSpout.java  | 120 +++
 .../storm/solr/topology/SolrFieldsTopology.java |  56 ++
 .../storm/solr/topology/SolrJsonTopology.java   |  48 +
 .../storm/solr/topology/SolrTopology.java       |  82 ++
 .../solr/trident/SolrFieldsTridentTopology.java |  45 +
 .../solr/trident/SolrJsonTridentTopology.java   |  45 +
 .../org/apache/storm/solr/util/TestUtil.java    |  30 +
 pom.xml                                         |  19 +-
 storm-core/pom.xml                              |  89 +-
 storm-core/src/clj/backtype/storm/cluster.clj   | 100 ++-
 .../backtype/storm/command/shell_submission.clj |   9 +-
 storm-core/src/clj/backtype/storm/config.clj    |  15 +-
 .../src/clj/backtype/storm/daemon/logviewer.clj |   2 +-
 .../src/clj/backtype/storm/daemon/nimbus.clj    | 252 ++++--
 .../clj/backtype/storm/daemon/supervisor.clj    |  66 +-
 storm-core/src/clj/backtype/storm/thrift.clj    |  23 +-
 storm-core/src/clj/backtype/storm/timer.clj     |   7 +-
 storm-core/src/clj/backtype/storm/ui/core.clj   |  93 +-
 storm-core/src/clj/backtype/storm/util.clj      |   2 +-
 storm-core/src/clj/backtype/storm/zookeeper.clj | 108 ++-
 storm-core/src/jvm/backtype/storm/Config.java   |  69 +-
 .../jvm/backtype/storm/ConfigValidation.java    |  13 +-
 .../storm/codedistributor/ICodeDistributor.java |  56 ++
 .../LocalFileSystemCodeDistributor.java         | 106 +++
 .../coordination/BatchSubtopologyBuilder.java   |   2 +-
 .../storm/drpc/LinearDRPCTopologyBuilder.java   |   2 +-
 .../backtype/storm/generated/Assignment.java    | 194 ++--
 .../jvm/backtype/storm/generated/BoltStats.java | 342 +++----
 .../storm/generated/ClusterSummary.java         | 292 +++---
 .../storm/generated/ClusterWorkerHeartbeat.java |  54 +-
 .../backtype/storm/generated/Credentials.java   |  46 +-
 .../backtype/storm/generated/ExecutorStats.java | 162 ++--
 .../storm/generated/LSApprovedWorkers.java      |  46 +-
 .../generated/LSSupervisorAssignments.java      |  50 +-
 .../storm/generated/LSWorkerHeartbeat.java      |  38 +-
 .../storm/generated/LocalAssignment.java        |  38 +-
 .../storm/generated/LocalStateData.java         |  50 +-
 .../backtype/storm/generated/NimbusSummary.java | 796 +++++++++++++++++
 .../jvm/backtype/storm/generated/NodeInfo.java  |  34 +-
 .../storm/generated/RebalanceOptions.java       |  46 +-
 .../backtype/storm/generated/SpoutStats.java    | 226 ++---
 .../jvm/backtype/storm/generated/StormBase.java |  94 +-
 .../storm/generated/SupervisorInfo.java         | 110 +--
 .../backtype/storm/generated/TopologyInfo.java  | 269 ++++--
 .../storm/generated/TopologySummary.java        | 107 ++-
 .../backtype/storm/nimbus/ILeaderElector.java   |  60 ++
 .../jvm/backtype/storm/nimbus/NimbusInfo.java   |  93 ++
 .../security/auth/SaslTransportPlugin.java      |   8 +-
 .../authorizer/DRPCSimpleACLAuthorizer.java     |   2 +-
 .../authorizer/ImpersonationAuthorizer.java     |   2 +-
 .../kerberos/KerberosSaslTransportPlugin.java   |   5 +-
 .../security/auth/kerberos/NoOpTTrasport.java   |  40 +
 .../src/jvm/backtype/storm/task/ShellBolt.java  |   8 +-
 .../testing/OpaqueMemoryTransactionalSpout.java |   2 +-
 .../TransactionalTopologyBuilder.java           |   2 +-
 .../backtype/storm/utils/DisruptorQueue.java    | 127 ++-
 .../jvm/backtype/storm/utils/NimbusClient.java  |  78 +-
 .../jvm/backtype/storm/utils/RotatingMap.java   |  12 +-
 .../jvm/backtype/storm/utils/TimeCacheMap.java  |  60 +-
 .../src/jvm/backtype/storm/utils/Utils.java     |  32 +-
 .../storm/trident/planner/SubtopologyBolt.java  |   2 +-
 .../jvm/storm/trident/spout/ITridentSpout.java  |   4 +-
 .../OpaquePartitionedTridentSpoutExecutor.java  |  20 +-
 .../spout/PartitionedTridentSpoutExecutor.java  |  26 +-
 .../trident/spout/RichSpoutBatchExecutor.java   |   6 +-
 .../trident/spout/RichSpoutBatchTriggerer.java  |  14 +-
 .../trident/spout/TridentSpoutCoordinator.java  |   6 +-
 .../trident/spout/TridentSpoutExecutor.java     |  10 +-
 .../storm/trident/testing/FeederBatchSpout.java |   2 +-
 .../trident/topology/TridentBoltExecutor.java   |  17 +-
 .../topology/TridentTopologyBuilder.java        |   4 +-
 storm-core/src/py/storm/ttypes.py               | 891 +++++++++++--------
 storm-core/src/storm.thrift                     |  12 +-
 storm-core/src/ui/public/index.html             |  21 +
 .../public/templates/index-page-template.html   |  59 +-
 .../templates/topology-page-template.html       |  18 +-
 storm-core/src/ui/public/topology.html          |  35 +-
 .../test/clj/backtype/storm/cluster_test.clj    |  23 +-
 .../test/clj/backtype/storm/config_test.clj     |   4 +-
 .../storm/messaging/netty_unit_test.clj         |   2 +-
 .../test/clj/backtype/storm/nimbus_test.clj     | 210 +++--
 .../backtype/storm/security/auth/auth_test.clj  |   4 +-
 .../storm/security/auth/nimbus_auth_test.clj    |  14 +-
 .../test/clj/backtype/storm/supervisor_test.clj |   1 +
 .../test/clj/backtype/storm/utils_test.clj      |  12 -
 storm-dist/binary/src/main/assembly/binary.xml  |  16 +
 179 files changed, 9028 insertions(+), 2447 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/conf/defaults.yaml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/clj/backtype/storm/cluster.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/clj/backtype/storm/daemon/logviewer.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
----------------------------------------------------------------------
diff --cc storm-core/src/clj/backtype/storm/daemon/nimbus.clj
index e20f31b,3ee4cdc..d815439
--- a/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
+++ b/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
@@@ -34,8 -37,8 +37,8 @@@
              KillOptions RebalanceOptions ClusterSummary SupervisorSummary TopologySummary TopologyInfo
              ExecutorSummary AuthorizationException GetInfoOptions NumErrorsChoice])
    (:import [backtype.storm.daemon Shutdownable])
-   (:use [backtype.storm util config log timer])
+   (:use [backtype.storm util config log timer zookeeper])
 -  (:require [backtype.storm [cluster :as cluster] [stats :as stats]])
 +  (:require [backtype.storm [cluster :as cluster] [stats :as stats] [converter :as converter]])
    (:require [clojure.set :as set])
    (:import [backtype.storm.daemon.common StormBase Assignment])
    (:use [backtype.storm.daemon common])
@@@ -1362,8 -1436,7 +1457,9 @@@
                             )]
              (when-let [owner (:owner base)] (.set_owner topo-info owner))
              (when-let [sched-status (.get @(:id->sched-status nimbus) storm-id)] (.set_sched_status topo-info sched-status))
 +            (when-let [component->debug (:component->debug base)]
 +              (.set_component_debug topo-info (map-val converter/thriftify-debugoptions component->debug)))
+             (.set_replication_count topo-info (.getReplicationCount (:code-distributor nimbus) storm-id))
              topo-info
            ))
  

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------
diff --cc storm-core/src/clj/backtype/storm/ui/core.clj
index 8f66147,4766736..7b44619
--- a/storm-core/src/clj/backtype/storm/ui/core.clj
+++ b/storm-core/src/clj/backtype/storm/ui/core.clj
@@@ -21,17 -21,18 +21,18 @@@
          ring.middleware.multipart-params)
    (:use [ring.middleware.json :only [wrap-json-params]])
    (:use [hiccup core page-helpers])
-   (:use [backtype.storm config util log tuple])
 -  (:use [backtype.storm config util log zookeeper])
++  (:use [backtype.storm config util log tuple zookeeper])
    (:use [backtype.storm.ui helpers])
    (:use [backtype.storm.daemon [common :only [ACKER-COMPONENT-ID ACKER-INIT-STREAM-ID ACKER-ACK-STREAM-ID
                                                ACKER-FAIL-STREAM-ID system-id? mk-authorization-handler]]])
    (:use [clojure.string :only [blank? lower-case trim]])
-   (:import [backtype.storm.utils Utils])
+   (:import [backtype.storm.utils Utils]
+            [backtype.storm.generated NimbusSummary])
    (:import [backtype.storm.generated ExecutorSpecificStats
 -            ExecutorStats ExecutorSummary TopologyInfo SpoutStats BoltStats
 +            ExecutorStats ExecutorSummary ExecutorInfo TopologyInfo SpoutStats BoltStats
              ErrorInfo ClusterSummary SupervisorSummary TopologySummary
              Nimbus$Client StormTopology GlobalStreamId RebalanceOptions
 -            KillOptions GetInfoOptions NumErrorsChoice])
 +            KillOptions GetInfoOptions NumErrorsChoice DebugOptions])
    (:import [backtype.storm.security.auth AuthUtils ReqContext])
    (:import [backtype.storm.generated AuthorizationException])
    (:import [backtype.storm.security.auth AuthUtils])
@@@ -293,53 -286,21 +286,56 @@@
                (bolt-comp-summs id))]
      (sort-by #(-> ^ExecutorSummary % .get_executor_info .get_task_start) ret)))
  
 +(defn logviewer-link [host fname secure?]
 +  (if (and secure? (*STORM-CONF* LOGVIEWER-HTTPS-PORT))
 +    (url-format "https://%s:%s/log?file=%s"
 +      host
 +      (*STORM-CONF* LOGVIEWER-HTTPS-PORT)
 +      fname)
 +    (url-format "http://%s:%s/log?file=%s"
 +      host
 +      (*STORM-CONF* LOGVIEWER-PORT)
 +      fname))
 +  )
 +
 +(defn executor-has-task-id? [task-id executor-info]
 +  (between? task-id (.get_task_start executor-info) (.get_task_end executor-info)))
 +
 +(defn get-host-port [task-id executor-summs]
 +  (let [ex-sum (some #(if (executor-has-task-id? task-id (.get_executor_info %)) %) executor-summs)]
 +    {:host (.get_host ex-sum) :port (.get_port ex-sum)}))
 +
 +(defn get-sorted-eventlogger-task-ids [executor-summs]
 +  (let [executor-infos (map #(.get_executor_info %) executor-summs)]
 +  (sort (flatten (map #(range (.get_task_start %) (inc (.get_task_end %))) executor-infos)))))
 +
 +(defn get-eventlogger-executor-summs [^TopologyInfo topology-info topology]
 +  (let [bolt-summs (filter (partial bolt-summary? topology) (.get_executors topology-info))]
 +        ((group-by-comp bolt-summs) "__eventlogger")))
 +
 +;
 +; The eventlogger uses fields grouping on the component-id so that events from same component
 +; always goes to the same event logger task. Here we use the same fields grouping
 +; to find the correct eventlogger task.
 +(defn get-mapped-task-id [sorted-task-ids ^String component-id]
 +  (nth sorted-task-ids (mod (list-hash-code [component-id]) (count sorted-task-ids))))
 +
 +(defn event-log-link
 +  [topology-id ^TopologyInfo topology-info topology component-id secure?]
 +  (let [executor-summs (get-eventlogger-executor-summs topology-info topology)
 +        sorted-task-ids (get-sorted-eventlogger-task-ids executor-summs)
 +        mapped-task-id (get-mapped-task-id sorted-task-ids component-id)
 +        host-port (get-host-port mapped-task-id executor-summs)
 +        fname (event-logs-filename topology-id (host-port :port))]
 +    (logviewer-link (host-port :host) fname secure?)))
 +
  (defn worker-log-link [host port topology-id secure?]
    (let [fname (logs-filename topology-id port)]
 -    (if (and secure? (*STORM-CONF* LOGVIEWER-HTTPS-PORT))
 -      (url-format "https://%s:%s/log?file=%s"
 -                  host
 -                  (*STORM-CONF* LOGVIEWER-HTTPS-PORT)
 -                  fname)
 -      (url-format "http://%s:%s/log?file=%s"
 -                  host
 -                  (*STORM-CONF* LOGVIEWER-PORT)
 -                  fname))))
 +    (logviewer-link host fname secure?)))
  
+ (defn nimbus-log-link [host port]
+   (url-format "http://%s:%s/log?file=nimbus.log" host (*STORM-CONF* LOGVIEWER-PORT) port))
+ 
  (defn compute-executor-capacity
    [^ExecutorSummary e]
    (let [stats (.get_stats e)
@@@ -727,8 -720,7 +757,9 @@@
         "workersTotal" (count workers)
         "executorsTotal" (count executors)
         "schedulerInfo" (.get_sched_status summ)
 +       "debug" (if (not-nil? debug-options) (.is_enable debug-options) false)
 +       "samplingPct" (if (not-nil? debug-options) (.get_samplingpct debug-options) 100)}))
+        "replicationCount" (.get_replication_count summ)}))
  
  (defn spout-summary-json [topology-id id stats window]
    (let [times (stats-times (:emitted stats))
@@@ -1045,33 -1029,9 +1081,33 @@@
          (.deactivate nimbus name)
          (log-message "Deactivating topology '" name "'")))
      (json-response (topology-op-response id "deactivate") (m "callback")))
 +  (POST "/api/v1/topology/:id/debug/:action/:spct" [:as {:keys [cookies servlet-request]} id action spct & m]
 +    (assert-authorized-user servlet-request "debug" (topology-config id))
 +    (with-nimbus nimbus
 +      (let [tplg (->> (doto
 +                        (GetInfoOptions.)
 +                        (.set_num_err_choice NumErrorsChoice/NONE))
 +                   (.getTopologyInfoWithOpts ^Nimbus$Client nimbus id))
 +            name (.get_name tplg)
 +            enable? (= "enable" action)]
 +        (.debug nimbus name "" enable? (Integer/parseInt spct))
 +        (log-message "Debug topology [" name "] action [" action "] sampling pct [" spct "]")))
 +    (json-response (topology-op-response id (str "debug/" action)) (m "callback")))
 +  (POST "/api/v1/topology/:id/component/:component/debug/:action/:spct" [:as {:keys [cookies servlet-request]} id component action spct & m]
 +    (assert-authorized-user servlet-request "debug" (topology-config id))
 +    (with-nimbus nimbus
 +      (let [tplg (->> (doto
 +                        (GetInfoOptions.)
 +                        (.set_num_err_choice NumErrorsChoice/NONE))
 +                   (.getTopologyInfoWithOpts ^Nimbus$Client nimbus id))
 +            name (.get_name tplg)
 +            enable? (= "enable" action)]
 +        (.debug nimbus name component enable? (Integer/parseInt spct))
 +        (log-message "Debug topology [" name "] component [" component "] action [" action "] sampling pct [" spct "]")))
 +    (json-response (component-op-response id component (str "/debug/" action)) (m "callback")))
    (POST "/api/v1/topology/:id/rebalance/:wait-time" [:as {:keys [cookies servlet-request]} id wait-time & m]
+     (thrift/with-configured-nimbus-connection nimbus
      (assert-authorized-user servlet-request "rebalance" (topology-config id))
-     (with-nimbus nimbus
        (let [tplg (->> (doto
                          (GetInfoOptions.)
                          (.set_num_err_choice NumErrorsChoice/NONE))

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/clj/backtype/storm/util.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/jvm/backtype/storm/generated/Assignment.java
----------------------------------------------------------------------
diff --cc storm-core/src/jvm/backtype/storm/generated/Assignment.java
index 933bbe1,2e6e8a3..f576c84
--- a/storm-core/src/jvm/backtype/storm/generated/Assignment.java
+++ b/storm-core/src/jvm/backtype/storm/generated/Assignment.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
- @Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-8-7")
 -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-3-5")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-3")
  public class Assignment implements org.apache.thrift.TBase<Assignment, Assignment._Fields>, java.io.Serializable, Cloneable, Comparable<Assignment> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Assignment");
  
@@@ -678,15 -678,15 +678,15 @@@
            case 2: // NODE_HOST
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
-                 org.apache.thrift.protocol.TMap _map380 = iprot.readMapBegin();
-                 struct.node_host = new HashMap<String,String>(2*_map380.size);
-                 String _key381;
-                 String _val382;
-                 for (int _i383 = 0; _i383 < _map380.size; ++_i383)
 -                org.apache.thrift.protocol.TMap _map370 = iprot.readMapBegin();
 -                struct.node_host = new HashMap<String,String>(2*_map370.size);
 -                String _key371;
 -                String _val372;
 -                for (int _i373 = 0; _i373 < _map370.size; ++_i373)
++                org.apache.thrift.protocol.TMap _map388 = iprot.readMapBegin();
++                struct.node_host = new HashMap<String,String>(2*_map388.size);
++                String _key389;
++                String _val390;
++                for (int _i391 = 0; _i391 < _map388.size; ++_i391)
                  {
-                   _key381 = iprot.readString();
-                   _val382 = iprot.readString();
-                   struct.node_host.put(_key381, _val382);
 -                  _key371 = iprot.readString();
 -                  _val372 = iprot.readString();
 -                  struct.node_host.put(_key371, _val372);
++                  _key389 = iprot.readString();
++                  _val390 = iprot.readString();
++                  struct.node_host.put(_key389, _val390);
                  }
                  iprot.readMapEnd();
                }
@@@ -698,26 -698,26 +698,26 @@@
            case 3: // EXECUTOR_NODE_PORT
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
-                 org.apache.thrift.protocol.TMap _map384 = iprot.readMapBegin();
-                 struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map384.size);
-                 List<Long> _key385;
-                 NodeInfo _val386;
-                 for (int _i387 = 0; _i387 < _map384.size; ++_i387)
 -                org.apache.thrift.protocol.TMap _map374 = iprot.readMapBegin();
 -                struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map374.size);
 -                List<Long> _key375;
 -                NodeInfo _val376;
 -                for (int _i377 = 0; _i377 < _map374.size; ++_i377)
++                org.apache.thrift.protocol.TMap _map392 = iprot.readMapBegin();
++                struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map392.size);
++                List<Long> _key393;
++                NodeInfo _val394;
++                for (int _i395 = 0; _i395 < _map392.size; ++_i395)
                  {
                    {
-                     org.apache.thrift.protocol.TList _list388 = iprot.readListBegin();
-                     _key385 = new ArrayList<Long>(_list388.size);
-                     long _elem389;
-                     for (int _i390 = 0; _i390 < _list388.size; ++_i390)
 -                    org.apache.thrift.protocol.TList _list378 = iprot.readListBegin();
 -                    _key375 = new ArrayList<Long>(_list378.size);
 -                    long _elem379;
 -                    for (int _i380 = 0; _i380 < _list378.size; ++_i380)
++                    org.apache.thrift.protocol.TList _list396 = iprot.readListBegin();
++                    _key393 = new ArrayList<Long>(_list396.size);
++                    long _elem397;
++                    for (int _i398 = 0; _i398 < _list396.size; ++_i398)
                      {
-                       _elem389 = iprot.readI64();
-                       _key385.add(_elem389);
 -                      _elem379 = iprot.readI64();
 -                      _key375.add(_elem379);
++                      _elem397 = iprot.readI64();
++                      _key393.add(_elem397);
                      }
                      iprot.readListEnd();
                    }
-                   _val386 = new NodeInfo();
-                   _val386.read(iprot);
-                   struct.executor_node_port.put(_key385, _val386);
 -                  _val376 = new NodeInfo();
 -                  _val376.read(iprot);
 -                  struct.executor_node_port.put(_key375, _val376);
++                  _val394 = new NodeInfo();
++                  _val394.read(iprot);
++                  struct.executor_node_port.put(_key393, _val394);
                  }
                  iprot.readMapEnd();
                }
@@@ -729,25 -729,25 +729,25 @@@
            case 4: // EXECUTOR_START_TIME_SECS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
-                 org.apache.thrift.protocol.TMap _map391 = iprot.readMapBegin();
-                 struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map391.size);
-                 List<Long> _key392;
-                 long _val393;
-                 for (int _i394 = 0; _i394 < _map391.size; ++_i394)
 -                org.apache.thrift.protocol.TMap _map381 = iprot.readMapBegin();
 -                struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map381.size);
 -                List<Long> _key382;
 -                long _val383;
 -                for (int _i384 = 0; _i384 < _map381.size; ++_i384)
++                org.apache.thrift.protocol.TMap _map399 = iprot.readMapBegin();
++                struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map399.size);
++                List<Long> _key400;
++                long _val401;
++                for (int _i402 = 0; _i402 < _map399.size; ++_i402)
                  {
                    {
-                     org.apache.thrift.protocol.TList _list395 = iprot.readListBegin();
-                     _key392 = new ArrayList<Long>(_list395.size);
-                     long _elem396;
-                     for (int _i397 = 0; _i397 < _list395.size; ++_i397)
 -                    org.apache.thrift.protocol.TList _list385 = iprot.readListBegin();
 -                    _key382 = new ArrayList<Long>(_list385.size);
 -                    long _elem386;
 -                    for (int _i387 = 0; _i387 < _list385.size; ++_i387)
++                    org.apache.thrift.protocol.TList _list403 = iprot.readListBegin();
++                    _key400 = new ArrayList<Long>(_list403.size);
++                    long _elem404;
++                    for (int _i405 = 0; _i405 < _list403.size; ++_i405)
                      {
-                       _elem396 = iprot.readI64();
-                       _key392.add(_elem396);
 -                      _elem386 = iprot.readI64();
 -                      _key382.add(_elem386);
++                      _elem404 = iprot.readI64();
++                      _key400.add(_elem404);
                      }
                      iprot.readListEnd();
                    }
-                   _val393 = iprot.readI64();
-                   struct.executor_start_time_secs.put(_key392, _val393);
 -                  _val383 = iprot.readI64();
 -                  struct.executor_start_time_secs.put(_key382, _val383);
++                  _val401 = iprot.readI64();
++                  struct.executor_start_time_secs.put(_key400, _val401);
                  }
                  iprot.readMapEnd();
                }
@@@ -779,10 -779,10 +779,10 @@@
            oprot.writeFieldBegin(NODE_HOST_FIELD_DESC);
            {
              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.node_host.size()));
-             for (Map.Entry<String, String> _iter398 : struct.node_host.entrySet())
 -            for (Map.Entry<String, String> _iter388 : struct.node_host.entrySet())
++            for (Map.Entry<String, String> _iter406 : struct.node_host.entrySet())
              {
-               oprot.writeString(_iter398.getKey());
-               oprot.writeString(_iter398.getValue());
 -              oprot.writeString(_iter388.getKey());
 -              oprot.writeString(_iter388.getValue());
++              oprot.writeString(_iter406.getKey());
++              oprot.writeString(_iter406.getValue());
              }
              oprot.writeMapEnd();
            }
@@@ -794,17 -794,17 +794,17 @@@
            oprot.writeFieldBegin(EXECUTOR_NODE_PORT_FIELD_DESC);
            {
              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, struct.executor_node_port.size()));
-             for (Map.Entry<List<Long>, NodeInfo> _iter399 : struct.executor_node_port.entrySet())
 -            for (Map.Entry<List<Long>, NodeInfo> _iter389 : struct.executor_node_port.entrySet())
++            for (Map.Entry<List<Long>, NodeInfo> _iter407 : struct.executor_node_port.entrySet())
              {
                {
-                 oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter399.getKey().size()));
-                 for (long _iter400 : _iter399.getKey())
 -                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter389.getKey().size()));
 -                for (long _iter390 : _iter389.getKey())
++                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter407.getKey().size()));
++                for (long _iter408 : _iter407.getKey())
                  {
-                   oprot.writeI64(_iter400);
 -                  oprot.writeI64(_iter390);
++                  oprot.writeI64(_iter408);
                  }
                  oprot.writeListEnd();
                }
-               _iter399.getValue().write(oprot);
 -              _iter389.getValue().write(oprot);
++              _iter407.getValue().write(oprot);
              }
              oprot.writeMapEnd();
            }
@@@ -816,17 -816,17 +816,17 @@@
            oprot.writeFieldBegin(EXECUTOR_START_TIME_SECS_FIELD_DESC);
            {
              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, struct.executor_start_time_secs.size()));
-             for (Map.Entry<List<Long>, Long> _iter401 : struct.executor_start_time_secs.entrySet())
 -            for (Map.Entry<List<Long>, Long> _iter391 : struct.executor_start_time_secs.entrySet())
++            for (Map.Entry<List<Long>, Long> _iter409 : struct.executor_start_time_secs.entrySet())
              {
                {
-                 oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter401.getKey().size()));
-                 for (long _iter402 : _iter401.getKey())
 -                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter391.getKey().size()));
 -                for (long _iter392 : _iter391.getKey())
++                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter409.getKey().size()));
++                for (long _iter410 : _iter409.getKey())
                  {
-                   oprot.writeI64(_iter402);
 -                  oprot.writeI64(_iter392);
++                  oprot.writeI64(_iter410);
                  }
                  oprot.writeListEnd();
                }
-               oprot.writeI64(_iter401.getValue());
 -              oprot.writeI64(_iter391.getValue());
++              oprot.writeI64(_iter409.getValue());
              }
              oprot.writeMapEnd();
            }
@@@ -865,42 -865,42 +865,42 @@@
        if (struct.is_set_node_host()) {
          {
            oprot.writeI32(struct.node_host.size());
-           for (Map.Entry<String, String> _iter403 : struct.node_host.entrySet())
 -          for (Map.Entry<String, String> _iter393 : struct.node_host.entrySet())
++          for (Map.Entry<String, String> _iter411 : struct.node_host.entrySet())
            {
-             oprot.writeString(_iter403.getKey());
-             oprot.writeString(_iter403.getValue());
 -            oprot.writeString(_iter393.getKey());
 -            oprot.writeString(_iter393.getValue());
++            oprot.writeString(_iter411.getKey());
++            oprot.writeString(_iter411.getValue());
            }
          }
        }
        if (struct.is_set_executor_node_port()) {
          {
            oprot.writeI32(struct.executor_node_port.size());
-           for (Map.Entry<List<Long>, NodeInfo> _iter404 : struct.executor_node_port.entrySet())
 -          for (Map.Entry<List<Long>, NodeInfo> _iter394 : struct.executor_node_port.entrySet())
++          for (Map.Entry<List<Long>, NodeInfo> _iter412 : struct.executor_node_port.entrySet())
            {
              {
-               oprot.writeI32(_iter404.getKey().size());
-               for (long _iter405 : _iter404.getKey())
 -              oprot.writeI32(_iter394.getKey().size());
 -              for (long _iter395 : _iter394.getKey())
++              oprot.writeI32(_iter412.getKey().size());
++              for (long _iter413 : _iter412.getKey())
                {
-                 oprot.writeI64(_iter405);
 -                oprot.writeI64(_iter395);
++                oprot.writeI64(_iter413);
                }
              }
-             _iter404.getValue().write(oprot);
 -            _iter394.getValue().write(oprot);
++            _iter412.getValue().write(oprot);
            }
          }
        }
        if (struct.is_set_executor_start_time_secs()) {
          {
            oprot.writeI32(struct.executor_start_time_secs.size());
-           for (Map.Entry<List<Long>, Long> _iter406 : struct.executor_start_time_secs.entrySet())
 -          for (Map.Entry<List<Long>, Long> _iter396 : struct.executor_start_time_secs.entrySet())
++          for (Map.Entry<List<Long>, Long> _iter414 : struct.executor_start_time_secs.entrySet())
            {
              {
-               oprot.writeI32(_iter406.getKey().size());
-               for (long _iter407 : _iter406.getKey())
 -              oprot.writeI32(_iter396.getKey().size());
 -              for (long _iter397 : _iter396.getKey())
++              oprot.writeI32(_iter414.getKey().size());
++              for (long _iter415 : _iter414.getKey())
                {
-                 oprot.writeI64(_iter407);
 -                oprot.writeI64(_iter397);
++                oprot.writeI64(_iter415);
                }
              }
-             oprot.writeI64(_iter406.getValue());
 -            oprot.writeI64(_iter396.getValue());
++            oprot.writeI64(_iter414.getValue());
            }
          }
        }
@@@ -914,64 -914,64 +914,64 @@@
        BitSet incoming = iprot.readBitSet(3);
        if (incoming.get(0)) {
          {
-           org.apache.thrift.protocol.TMap _map408 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-           struct.node_host = new HashMap<String,String>(2*_map408.size);
-           String _key409;
-           String _val410;
-           for (int _i411 = 0; _i411 < _map408.size; ++_i411)
 -          org.apache.thrift.protocol.TMap _map398 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
 -          struct.node_host = new HashMap<String,String>(2*_map398.size);
 -          String _key399;
 -          String _val400;
 -          for (int _i401 = 0; _i401 < _map398.size; ++_i401)
++          org.apache.thrift.protocol.TMap _map416 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
++          struct.node_host = new HashMap<String,String>(2*_map416.size);
++          String _key417;
++          String _val418;
++          for (int _i419 = 0; _i419 < _map416.size; ++_i419)
            {
-             _key409 = iprot.readString();
-             _val410 = iprot.readString();
-             struct.node_host.put(_key409, _val410);
 -            _key399 = iprot.readString();
 -            _val400 = iprot.readString();
 -            struct.node_host.put(_key399, _val400);
++            _key417 = iprot.readString();
++            _val418 = iprot.readString();
++            struct.node_host.put(_key417, _val418);
            }
          }
          struct.set_node_host_isSet(true);
        }
        if (incoming.get(1)) {
          {
-           org.apache.thrift.protocol.TMap _map412 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-           struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map412.size);
-           List<Long> _key413;
-           NodeInfo _val414;
-           for (int _i415 = 0; _i415 < _map412.size; ++_i415)
 -          org.apache.thrift.protocol.TMap _map402 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
 -          struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map402.size);
 -          List<Long> _key403;
 -          NodeInfo _val404;
 -          for (int _i405 = 0; _i405 < _map402.size; ++_i405)
++          org.apache.thrift.protocol.TMap _map420 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
++          struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map420.size);
++          List<Long> _key421;
++          NodeInfo _val422;
++          for (int _i423 = 0; _i423 < _map420.size; ++_i423)
            {
              {
-               org.apache.thrift.protocol.TList _list416 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
-               _key413 = new ArrayList<Long>(_list416.size);
-               long _elem417;
-               for (int _i418 = 0; _i418 < _list416.size; ++_i418)
 -              org.apache.thrift.protocol.TList _list406 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
 -              _key403 = new ArrayList<Long>(_list406.size);
 -              long _elem407;
 -              for (int _i408 = 0; _i408 < _list406.size; ++_i408)
++              org.apache.thrift.protocol.TList _list424 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
++              _key421 = new ArrayList<Long>(_list424.size);
++              long _elem425;
++              for (int _i426 = 0; _i426 < _list424.size; ++_i426)
                {
-                 _elem417 = iprot.readI64();
-                 _key413.add(_elem417);
 -                _elem407 = iprot.readI64();
 -                _key403.add(_elem407);
++                _elem425 = iprot.readI64();
++                _key421.add(_elem425);
                }
              }
-             _val414 = new NodeInfo();
-             _val414.read(iprot);
-             struct.executor_node_port.put(_key413, _val414);
 -            _val404 = new NodeInfo();
 -            _val404.read(iprot);
 -            struct.executor_node_port.put(_key403, _val404);
++            _val422 = new NodeInfo();
++            _val422.read(iprot);
++            struct.executor_node_port.put(_key421, _val422);
            }
          }
          struct.set_executor_node_port_isSet(true);
        }
        if (incoming.get(2)) {
          {
-           org.apache.thrift.protocol.TMap _map419 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, iprot.readI32());
-           struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map419.size);
-           List<Long> _key420;
-           long _val421;
-           for (int _i422 = 0; _i422 < _map419.size; ++_i422)
 -          org.apache.thrift.protocol.TMap _map409 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, iprot.readI32());
 -          struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map409.size);
 -          List<Long> _key410;
 -          long _val411;
 -          for (int _i412 = 0; _i412 < _map409.size; ++_i412)
++          org.apache.thrift.protocol.TMap _map427 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, iprot.readI32());
++          struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map427.size);
++          List<Long> _key428;
++          long _val429;
++          for (int _i430 = 0; _i430 < _map427.size; ++_i430)
            {
              {
-               org.apache.thrift.protocol.TList _list423 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
-               _key420 = new ArrayList<Long>(_list423.size);
-               long _elem424;
-               for (int _i425 = 0; _i425 < _list423.size; ++_i425)
 -              org.apache.thrift.protocol.TList _list413 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
 -              _key410 = new ArrayList<Long>(_list413.size);
 -              long _elem414;
 -              for (int _i415 = 0; _i415 < _list413.size; ++_i415)
++              org.apache.thrift.protocol.TList _list431 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
++              _key428 = new ArrayList<Long>(_list431.size);
++              long _elem432;
++              for (int _i433 = 0; _i433 < _list431.size; ++_i433)
                {
-                 _elem424 = iprot.readI64();
-                 _key420.add(_elem424);
 -                _elem414 = iprot.readI64();
 -                _key410.add(_elem414);
++                _elem432 = iprot.readI64();
++                _key428.add(_elem432);
                }
              }
-             _val421 = iprot.readI64();
-             struct.executor_start_time_secs.put(_key420, _val421);
 -            _val411 = iprot.readI64();
 -            struct.executor_start_time_secs.put(_key410, _val411);
++            _val429 = iprot.readI64();
++            struct.executor_start_time_secs.put(_key428, _val429);
            }
          }
          struct.set_executor_start_time_secs_isSet(true);

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/jvm/backtype/storm/generated/BoltStats.java
----------------------------------------------------------------------
diff --cc storm-core/src/jvm/backtype/storm/generated/BoltStats.java
index 1f8a989,1f8a989..26ef5d8
--- a/storm-core/src/jvm/backtype/storm/generated/BoltStats.java
+++ b/storm-core/src/jvm/backtype/storm/generated/BoltStats.java
@@@ -51,7 -51,7 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
--@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-2-6")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-3")
  public class BoltStats implements org.apache.thrift.TBase<BoltStats, BoltStats._Fields>, java.io.Serializable, Cloneable, Comparable<BoltStats> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("BoltStats");
  
@@@ -881,41 -881,41 +881,8 @@@
            case 1: // ACKED
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
--                org.apache.thrift.protocol.TMap _map90 = iprot.readMapBegin();
--                struct.acked = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map90.size);
--                String _key91;
--                Map<GlobalStreamId,Long> _val92;
--                for (int _i93 = 0; _i93 < _map90.size; ++_i93)
--                {
--                  _key91 = iprot.readString();
--                  {
--                    org.apache.thrift.protocol.TMap _map94 = iprot.readMapBegin();
--                    _val92 = new HashMap<GlobalStreamId,Long>(2*_map94.size);
--                    GlobalStreamId _key95;
--                    long _val96;
--                    for (int _i97 = 0; _i97 < _map94.size; ++_i97)
--                    {
--                      _key95 = new GlobalStreamId();
--                      _key95.read(iprot);
--                      _val96 = iprot.readI64();
--                      _val92.put(_key95, _val96);
--                    }
--                    iprot.readMapEnd();
--                  }
--                  struct.acked.put(_key91, _val92);
--                }
--                iprot.readMapEnd();
--              }
--              struct.set_acked_isSet(true);
--            } else { 
--              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
--            }
--            break;
--          case 2: // FAILED
--            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
--              {
                  org.apache.thrift.protocol.TMap _map98 = iprot.readMapBegin();
--                struct.failed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map98.size);
++                struct.acked = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map98.size);
                  String _key99;
                  Map<GlobalStreamId,Long> _val100;
                  for (int _i101 = 0; _i101 < _map98.size; ++_i101)
@@@ -935,106 -935,106 +902,139 @@@
                      }
                      iprot.readMapEnd();
                    }
--                  struct.failed.put(_key99, _val100);
++                  struct.acked.put(_key99, _val100);
                  }
                  iprot.readMapEnd();
                }
--              struct.set_failed_isSet(true);
++              struct.set_acked_isSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
--          case 3: // PROCESS_MS_AVG
++          case 2: // FAILED
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map106 = iprot.readMapBegin();
--                struct.process_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map106.size);
++                struct.failed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map106.size);
                  String _key107;
--                Map<GlobalStreamId,Double> _val108;
++                Map<GlobalStreamId,Long> _val108;
                  for (int _i109 = 0; _i109 < _map106.size; ++_i109)
                  {
                    _key107 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TMap _map110 = iprot.readMapBegin();
--                    _val108 = new HashMap<GlobalStreamId,Double>(2*_map110.size);
++                    _val108 = new HashMap<GlobalStreamId,Long>(2*_map110.size);
                      GlobalStreamId _key111;
--                    double _val112;
++                    long _val112;
                      for (int _i113 = 0; _i113 < _map110.size; ++_i113)
                      {
                        _key111 = new GlobalStreamId();
                        _key111.read(iprot);
--                      _val112 = iprot.readDouble();
++                      _val112 = iprot.readI64();
                        _val108.put(_key111, _val112);
                      }
                      iprot.readMapEnd();
                    }
--                  struct.process_ms_avg.put(_key107, _val108);
++                  struct.failed.put(_key107, _val108);
                  }
                  iprot.readMapEnd();
                }
--              struct.set_process_ms_avg_isSet(true);
++              struct.set_failed_isSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
--          case 4: // EXECUTED
++          case 3: // PROCESS_MS_AVG
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map114 = iprot.readMapBegin();
--                struct.executed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map114.size);
++                struct.process_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map114.size);
                  String _key115;
--                Map<GlobalStreamId,Long> _val116;
++                Map<GlobalStreamId,Double> _val116;
                  for (int _i117 = 0; _i117 < _map114.size; ++_i117)
                  {
                    _key115 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TMap _map118 = iprot.readMapBegin();
--                    _val116 = new HashMap<GlobalStreamId,Long>(2*_map118.size);
++                    _val116 = new HashMap<GlobalStreamId,Double>(2*_map118.size);
                      GlobalStreamId _key119;
--                    long _val120;
++                    double _val120;
                      for (int _i121 = 0; _i121 < _map118.size; ++_i121)
                      {
                        _key119 = new GlobalStreamId();
                        _key119.read(iprot);
--                      _val120 = iprot.readI64();
++                      _val120 = iprot.readDouble();
                        _val116.put(_key119, _val120);
                      }
                      iprot.readMapEnd();
                    }
--                  struct.executed.put(_key115, _val116);
++                  struct.process_ms_avg.put(_key115, _val116);
                  }
                  iprot.readMapEnd();
                }
--              struct.set_executed_isSet(true);
++              struct.set_process_ms_avg_isSet(true);
              } else { 
                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
              }
              break;
--          case 5: // EXECUTE_MS_AVG
++          case 4: // EXECUTED
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
                  org.apache.thrift.protocol.TMap _map122 = iprot.readMapBegin();
--                struct.execute_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map122.size);
++                struct.executed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map122.size);
                  String _key123;
--                Map<GlobalStreamId,Double> _val124;
++                Map<GlobalStreamId,Long> _val124;
                  for (int _i125 = 0; _i125 < _map122.size; ++_i125)
                  {
                    _key123 = iprot.readString();
                    {
                      org.apache.thrift.protocol.TMap _map126 = iprot.readMapBegin();
--                    _val124 = new HashMap<GlobalStreamId,Double>(2*_map126.size);
++                    _val124 = new HashMap<GlobalStreamId,Long>(2*_map126.size);
                      GlobalStreamId _key127;
--                    double _val128;
++                    long _val128;
                      for (int _i129 = 0; _i129 < _map126.size; ++_i129)
                      {
                        _key127 = new GlobalStreamId();
                        _key127.read(iprot);
--                      _val128 = iprot.readDouble();
++                      _val128 = iprot.readI64();
                        _val124.put(_key127, _val128);
                      }
                      iprot.readMapEnd();
                    }
--                  struct.execute_ms_avg.put(_key123, _val124);
++                  struct.executed.put(_key123, _val124);
++                }
++                iprot.readMapEnd();
++              }
++              struct.set_executed_isSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
++          case 5: // EXECUTE_MS_AVG
++            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
++              {
++                org.apache.thrift.protocol.TMap _map130 = iprot.readMapBegin();
++                struct.execute_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map130.size);
++                String _key131;
++                Map<GlobalStreamId,Double> _val132;
++                for (int _i133 = 0; _i133 < _map130.size; ++_i133)
++                {
++                  _key131 = iprot.readString();
++                  {
++                    org.apache.thrift.protocol.TMap _map134 = iprot.readMapBegin();
++                    _val132 = new HashMap<GlobalStreamId,Double>(2*_map134.size);
++                    GlobalStreamId _key135;
++                    double _val136;
++                    for (int _i137 = 0; _i137 < _map134.size; ++_i137)
++                    {
++                      _key135 = new GlobalStreamId();
++                      _key135.read(iprot);
++                      _val136 = iprot.readDouble();
++                      _val132.put(_key135, _val136);
++                    }
++                    iprot.readMapEnd();
++                  }
++                  struct.execute_ms_avg.put(_key131, _val132);
                  }
                  iprot.readMapEnd();
                }
@@@ -1060,15 -1060,15 +1060,15 @@@
          oprot.writeFieldBegin(ACKED_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.acked.size()));
--          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter130 : struct.acked.entrySet())
++          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter138 : struct.acked.entrySet())
            {
--            oprot.writeString(_iter130.getKey());
++            oprot.writeString(_iter138.getKey());
              {
--              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter130.getValue().size()));
--              for (Map.Entry<GlobalStreamId, Long> _iter131 : _iter130.getValue().entrySet())
++              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter138.getValue().size()));
++              for (Map.Entry<GlobalStreamId, Long> _iter139 : _iter138.getValue().entrySet())
                {
--                _iter131.getKey().write(oprot);
--                oprot.writeI64(_iter131.getValue());
++                _iter139.getKey().write(oprot);
++                oprot.writeI64(_iter139.getValue());
                }
                oprot.writeMapEnd();
              }
@@@ -1081,15 -1081,15 +1081,15 @@@
          oprot.writeFieldBegin(FAILED_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.failed.size()));
--          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter132 : struct.failed.entrySet())
++          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter140 : struct.failed.entrySet())
            {
--            oprot.writeString(_iter132.getKey());
++            oprot.writeString(_iter140.getKey());
              {
--              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter132.getValue().size()));
--              for (Map.Entry<GlobalStreamId, Long> _iter133 : _iter132.getValue().entrySet())
++              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter140.getValue().size()));
++              for (Map.Entry<GlobalStreamId, Long> _iter141 : _iter140.getValue().entrySet())
                {
--                _iter133.getKey().write(oprot);
--                oprot.writeI64(_iter133.getValue());
++                _iter141.getKey().write(oprot);
++                oprot.writeI64(_iter141.getValue());
                }
                oprot.writeMapEnd();
              }
@@@ -1102,15 -1102,15 +1102,15 @@@
          oprot.writeFieldBegin(PROCESS_MS_AVG_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.process_ms_avg.size()));
--          for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter134 : struct.process_ms_avg.entrySet())
++          for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter142 : struct.process_ms_avg.entrySet())
            {
--            oprot.writeString(_iter134.getKey());
++            oprot.writeString(_iter142.getKey());
              {
--              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter134.getValue().size()));
--              for (Map.Entry<GlobalStreamId, Double> _iter135 : _iter134.getValue().entrySet())
++              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter142.getValue().size()));
++              for (Map.Entry<GlobalStreamId, Double> _iter143 : _iter142.getValue().entrySet())
                {
--                _iter135.getKey().write(oprot);
--                oprot.writeDouble(_iter135.getValue());
++                _iter143.getKey().write(oprot);
++                oprot.writeDouble(_iter143.getValue());
                }
                oprot.writeMapEnd();
              }
@@@ -1123,15 -1123,15 +1123,15 @@@
          oprot.writeFieldBegin(EXECUTED_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.executed.size()));
--          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter136 : struct.executed.entrySet())
++          for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter144 : struct.executed.entrySet())
            {
--            oprot.writeString(_iter136.getKey());
++            oprot.writeString(_iter144.getKey());
              {
--              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter136.getValue().size()));
--              for (Map.Entry<GlobalStreamId, Long> _iter137 : _iter136.getValue().entrySet())
++              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, _iter144.getValue().size()));
++              for (Map.Entry<GlobalStreamId, Long> _iter145 : _iter144.getValue().entrySet())
                {
--                _iter137.getKey().write(oprot);
--                oprot.writeI64(_iter137.getValue());
++                _iter145.getKey().write(oprot);
++                oprot.writeI64(_iter145.getValue());
                }
                oprot.writeMapEnd();
              }
@@@ -1144,15 -1144,15 +1144,15 @@@
          oprot.writeFieldBegin(EXECUTE_MS_AVG_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, struct.execute_ms_avg.size()));
--          for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter138 : struct.execute_ms_avg.entrySet())
++          for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter146 : struct.execute_ms_avg.entrySet())
            {
--            oprot.writeString(_iter138.getKey());
++            oprot.writeString(_iter146.getKey());
              {
--              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter138.getValue().size()));
--              for (Map.Entry<GlobalStreamId, Double> _iter139 : _iter138.getValue().entrySet())
++              oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, _iter146.getValue().size()));
++              for (Map.Entry<GlobalStreamId, Double> _iter147 : _iter146.getValue().entrySet())
                {
--                _iter139.getKey().write(oprot);
--                oprot.writeDouble(_iter139.getValue());
++                _iter147.getKey().write(oprot);
++                oprot.writeDouble(_iter147.getValue());
                }
                oprot.writeMapEnd();
              }
@@@ -1180,75 -1180,75 +1180,75 @@@
        TTupleProtocol oprot = (TTupleProtocol) prot;
        {
          oprot.writeI32(struct.acked.size());
--        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter140 : struct.acked.entrySet())
++        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter148 : struct.acked.entrySet())
          {
--          oprot.writeString(_iter140.getKey());
++          oprot.writeString(_iter148.getKey());
            {
--            oprot.writeI32(_iter140.getValue().size());
--            for (Map.Entry<GlobalStreamId, Long> _iter141 : _iter140.getValue().entrySet())
++            oprot.writeI32(_iter148.getValue().size());
++            for (Map.Entry<GlobalStreamId, Long> _iter149 : _iter148.getValue().entrySet())
              {
--              _iter141.getKey().write(oprot);
--              oprot.writeI64(_iter141.getValue());
++              _iter149.getKey().write(oprot);
++              oprot.writeI64(_iter149.getValue());
              }
            }
          }
        }
        {
          oprot.writeI32(struct.failed.size());
--        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter142 : struct.failed.entrySet())
++        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter150 : struct.failed.entrySet())
          {
--          oprot.writeString(_iter142.getKey());
++          oprot.writeString(_iter150.getKey());
            {
--            oprot.writeI32(_iter142.getValue().size());
--            for (Map.Entry<GlobalStreamId, Long> _iter143 : _iter142.getValue().entrySet())
++            oprot.writeI32(_iter150.getValue().size());
++            for (Map.Entry<GlobalStreamId, Long> _iter151 : _iter150.getValue().entrySet())
              {
--              _iter143.getKey().write(oprot);
--              oprot.writeI64(_iter143.getValue());
++              _iter151.getKey().write(oprot);
++              oprot.writeI64(_iter151.getValue());
              }
            }
          }
        }
        {
          oprot.writeI32(struct.process_ms_avg.size());
--        for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter144 : struct.process_ms_avg.entrySet())
++        for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter152 : struct.process_ms_avg.entrySet())
          {
--          oprot.writeString(_iter144.getKey());
++          oprot.writeString(_iter152.getKey());
            {
--            oprot.writeI32(_iter144.getValue().size());
--            for (Map.Entry<GlobalStreamId, Double> _iter145 : _iter144.getValue().entrySet())
++            oprot.writeI32(_iter152.getValue().size());
++            for (Map.Entry<GlobalStreamId, Double> _iter153 : _iter152.getValue().entrySet())
              {
--              _iter145.getKey().write(oprot);
--              oprot.writeDouble(_iter145.getValue());
++              _iter153.getKey().write(oprot);
++              oprot.writeDouble(_iter153.getValue());
              }
            }
          }
        }
        {
          oprot.writeI32(struct.executed.size());
--        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter146 : struct.executed.entrySet())
++        for (Map.Entry<String, Map<GlobalStreamId,Long>> _iter154 : struct.executed.entrySet())
          {
--          oprot.writeString(_iter146.getKey());
++          oprot.writeString(_iter154.getKey());
            {
--            oprot.writeI32(_iter146.getValue().size());
--            for (Map.Entry<GlobalStreamId, Long> _iter147 : _iter146.getValue().entrySet())
++            oprot.writeI32(_iter154.getValue().size());
++            for (Map.Entry<GlobalStreamId, Long> _iter155 : _iter154.getValue().entrySet())
              {
--              _iter147.getKey().write(oprot);
--              oprot.writeI64(_iter147.getValue());
++              _iter155.getKey().write(oprot);
++              oprot.writeI64(_iter155.getValue());
              }
            }
          }
        }
        {
          oprot.writeI32(struct.execute_ms_avg.size());
--        for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter148 : struct.execute_ms_avg.entrySet())
++        for (Map.Entry<String, Map<GlobalStreamId,Double>> _iter156 : struct.execute_ms_avg.entrySet())
          {
--          oprot.writeString(_iter148.getKey());
++          oprot.writeString(_iter156.getKey());
            {
--            oprot.writeI32(_iter148.getValue().size());
--            for (Map.Entry<GlobalStreamId, Double> _iter149 : _iter148.getValue().entrySet())
++            oprot.writeI32(_iter156.getValue().size());
++            for (Map.Entry<GlobalStreamId, Double> _iter157 : _iter156.getValue().entrySet())
              {
--              _iter149.getKey().write(oprot);
--              oprot.writeDouble(_iter149.getValue());
++              _iter157.getKey().write(oprot);
++              oprot.writeDouble(_iter157.getValue());
              }
            }
          }
@@@ -1259,33 -1259,33 +1259,8 @@@
      public void read(org.apache.thrift.protocol.TProtocol prot, BoltStats struct) throws org.apache.thrift.TException {
        TTupleProtocol iprot = (TTupleProtocol) prot;
        {
--        org.apache.thrift.protocol.TMap _map150 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
--        struct.acked = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map150.size);
--        String _key151;
--        Map<GlobalStreamId,Long> _val152;
--        for (int _i153 = 0; _i153 < _map150.size; ++_i153)
--        {
--          _key151 = iprot.readString();
--          {
--            org.apache.thrift.protocol.TMap _map154 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32());
--            _val152 = new HashMap<GlobalStreamId,Long>(2*_map154.size);
--            GlobalStreamId _key155;
--            long _val156;
--            for (int _i157 = 0; _i157 < _map154.size; ++_i157)
--            {
--              _key155 = new GlobalStreamId();
--              _key155.read(iprot);
--              _val156 = iprot.readI64();
--              _val152.put(_key155, _val156);
--            }
--          }
--          struct.acked.put(_key151, _val152);
--        }
--      }
--      struct.set_acked_isSet(true);
--      {
          org.apache.thrift.protocol.TMap _map158 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
--        struct.failed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map158.size);
++        struct.acked = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map158.size);
          String _key159;
          Map<GlobalStreamId,Long> _val160;
          for (int _i161 = 0; _i161 < _map158.size; ++_i161)
@@@ -1304,82 -1304,82 +1279,107 @@@
                _val160.put(_key163, _val164);
              }
            }
--          struct.failed.put(_key159, _val160);
++          struct.acked.put(_key159, _val160);
          }
        }
--      struct.set_failed_isSet(true);
++      struct.set_acked_isSet(true);
        {
          org.apache.thrift.protocol.TMap _map166 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
--        struct.process_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map166.size);
++        struct.failed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map166.size);
          String _key167;
--        Map<GlobalStreamId,Double> _val168;
++        Map<GlobalStreamId,Long> _val168;
          for (int _i169 = 0; _i169 < _map166.size; ++_i169)
          {
            _key167 = iprot.readString();
            {
--            org.apache.thrift.protocol.TMap _map170 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32());
--            _val168 = new HashMap<GlobalStreamId,Double>(2*_map170.size);
++            org.apache.thrift.protocol.TMap _map170 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32());
++            _val168 = new HashMap<GlobalStreamId,Long>(2*_map170.size);
              GlobalStreamId _key171;
--            double _val172;
++            long _val172;
              for (int _i173 = 0; _i173 < _map170.size; ++_i173)
              {
                _key171 = new GlobalStreamId();
                _key171.read(iprot);
--              _val172 = iprot.readDouble();
++              _val172 = iprot.readI64();
                _val168.put(_key171, _val172);
              }
            }
--          struct.process_ms_avg.put(_key167, _val168);
++          struct.failed.put(_key167, _val168);
          }
        }
--      struct.set_process_ms_avg_isSet(true);
++      struct.set_failed_isSet(true);
        {
          org.apache.thrift.protocol.TMap _map174 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
--        struct.executed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map174.size);
++        struct.process_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map174.size);
          String _key175;
--        Map<GlobalStreamId,Long> _val176;
++        Map<GlobalStreamId,Double> _val176;
          for (int _i177 = 0; _i177 < _map174.size; ++_i177)
          {
            _key175 = iprot.readString();
            {
--            org.apache.thrift.protocol.TMap _map178 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32());
--            _val176 = new HashMap<GlobalStreamId,Long>(2*_map178.size);
++            org.apache.thrift.protocol.TMap _map178 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32());
++            _val176 = new HashMap<GlobalStreamId,Double>(2*_map178.size);
              GlobalStreamId _key179;
--            long _val180;
++            double _val180;
              for (int _i181 = 0; _i181 < _map178.size; ++_i181)
              {
                _key179 = new GlobalStreamId();
                _key179.read(iprot);
--              _val180 = iprot.readI64();
++              _val180 = iprot.readDouble();
                _val176.put(_key179, _val180);
              }
            }
--          struct.executed.put(_key175, _val176);
++          struct.process_ms_avg.put(_key175, _val176);
          }
        }
--      struct.set_executed_isSet(true);
++      struct.set_process_ms_avg_isSet(true);
        {
          org.apache.thrift.protocol.TMap _map182 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
--        struct.execute_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map182.size);
++        struct.executed = new HashMap<String,Map<GlobalStreamId,Long>>(2*_map182.size);
          String _key183;
--        Map<GlobalStreamId,Double> _val184;
++        Map<GlobalStreamId,Long> _val184;
          for (int _i185 = 0; _i185 < _map182.size; ++_i185)
          {
            _key183 = iprot.readString();
            {
--            org.apache.thrift.protocol.TMap _map186 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32());
--            _val184 = new HashMap<GlobalStreamId,Double>(2*_map186.size);
++            org.apache.thrift.protocol.TMap _map186 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.I64, iprot.readI32());
++            _val184 = new HashMap<GlobalStreamId,Long>(2*_map186.size);
              GlobalStreamId _key187;
--            double _val188;
++            long _val188;
              for (int _i189 = 0; _i189 < _map186.size; ++_i189)
              {
                _key187 = new GlobalStreamId();
                _key187.read(iprot);
--              _val188 = iprot.readDouble();
++              _val188 = iprot.readI64();
                _val184.put(_key187, _val188);
              }
            }
--          struct.execute_ms_avg.put(_key183, _val184);
++          struct.executed.put(_key183, _val184);
++        }
++      }
++      struct.set_executed_isSet(true);
++      {
++        org.apache.thrift.protocol.TMap _map190 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.MAP, iprot.readI32());
++        struct.execute_ms_avg = new HashMap<String,Map<GlobalStreamId,Double>>(2*_map190.size);
++        String _key191;
++        Map<GlobalStreamId,Double> _val192;
++        for (int _i193 = 0; _i193 < _map190.size; ++_i193)
++        {
++          _key191 = iprot.readString();
++          {
++            org.apache.thrift.protocol.TMap _map194 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.DOUBLE, iprot.readI32());
++            _val192 = new HashMap<GlobalStreamId,Double>(2*_map194.size);
++            GlobalStreamId _key195;
++            double _val196;
++            for (int _i197 = 0; _i197 < _map194.size; ++_i197)
++            {
++              _key195 = new GlobalStreamId();
++              _key195.read(iprot);
++              _val196 = iprot.readDouble();
++              _val192.put(_key195, _val196);
++            }
++          }
++          struct.execute_ms_avg.put(_key191, _val192);
          }
        }
        struct.set_execute_ms_avg_isSet(true);

http://git-wip-us.apache.org/repos/asf/storm/blob/0151b441/storm-core/src/jvm/backtype/storm/generated/ClusterWorkerHeartbeat.java
----------------------------------------------------------------------
diff --cc storm-core/src/jvm/backtype/storm/generated/ClusterWorkerHeartbeat.java
index 424ff41,f60540b..ce2f5f4
--- a/storm-core/src/jvm/backtype/storm/generated/ClusterWorkerHeartbeat.java
+++ b/storm-core/src/jvm/backtype/storm/generated/ClusterWorkerHeartbeat.java
@@@ -51,7 -51,8 +51,7 @@@ import org.slf4j.Logger
  import org.slf4j.LoggerFactory;
  
  @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
- @Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-8-7")
 -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-4-8")
 -
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-9-3")
  public class ClusterWorkerHeartbeat implements org.apache.thrift.TBase<ClusterWorkerHeartbeat, ClusterWorkerHeartbeat._Fields>, java.io.Serializable, Cloneable, Comparable<ClusterWorkerHeartbeat> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ClusterWorkerHeartbeat");
  
@@@ -635,17 -636,17 +635,17 @@@
            case 2: // EXECUTOR_STATS
              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                {
-                 org.apache.thrift.protocol.TMap _map446 = iprot.readMapBegin();
-                 struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map446.size);
-                 ExecutorInfo _key447;
-                 ExecutorStats _val448;
-                 for (int _i449 = 0; _i449 < _map446.size; ++_i449)
 -                org.apache.thrift.protocol.TMap _map426 = iprot.readMapBegin();
 -                struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map426.size);
 -                ExecutorInfo _key427;
 -                ExecutorStats _val428;
 -                for (int _i429 = 0; _i429 < _map426.size; ++_i429)
++                org.apache.thrift.protocol.TMap _map454 = iprot.readMapBegin();
++                struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map454.size);
++                ExecutorInfo _key455;
++                ExecutorStats _val456;
++                for (int _i457 = 0; _i457 < _map454.size; ++_i457)
                  {
-                   _key447 = new ExecutorInfo();
-                   _key447.read(iprot);
-                   _val448 = new ExecutorStats();
-                   _val448.read(iprot);
-                   struct.executor_stats.put(_key447, _val448);
 -                  _key427 = new ExecutorInfo();
 -                  _key427.read(iprot);
 -                  _val428 = new ExecutorStats();
 -                  _val428.read(iprot);
 -                  struct.executor_stats.put(_key427, _val428);
++                  _key455 = new ExecutorInfo();
++                  _key455.read(iprot);
++                  _val456 = new ExecutorStats();
++                  _val456.read(iprot);
++                  struct.executor_stats.put(_key455, _val456);
                  }
                  iprot.readMapEnd();
                }
@@@ -692,10 -693,10 +692,10 @@@
          oprot.writeFieldBegin(EXECUTOR_STATS_FIELD_DESC);
          {
            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, struct.executor_stats.size()));
-           for (Map.Entry<ExecutorInfo, ExecutorStats> _iter450 : struct.executor_stats.entrySet())
 -          for (Map.Entry<ExecutorInfo, ExecutorStats> _iter430 : struct.executor_stats.entrySet())
++          for (Map.Entry<ExecutorInfo, ExecutorStats> _iter458 : struct.executor_stats.entrySet())
            {
-             _iter450.getKey().write(oprot);
-             _iter450.getValue().write(oprot);
 -            _iter430.getKey().write(oprot);
 -            _iter430.getValue().write(oprot);
++            _iter458.getKey().write(oprot);
++            _iter458.getValue().write(oprot);
            }
            oprot.writeMapEnd();
          }
@@@ -727,10 -728,10 +727,10 @@@
        oprot.writeString(struct.storm_id);
        {
          oprot.writeI32(struct.executor_stats.size());
-         for (Map.Entry<ExecutorInfo, ExecutorStats> _iter451 : struct.executor_stats.entrySet())
 -        for (Map.Entry<ExecutorInfo, ExecutorStats> _iter431 : struct.executor_stats.entrySet())
++        for (Map.Entry<ExecutorInfo, ExecutorStats> _iter459 : struct.executor_stats.entrySet())
          {
-           _iter451.getKey().write(oprot);
-           _iter451.getValue().write(oprot);
 -          _iter431.getKey().write(oprot);
 -          _iter431.getValue().write(oprot);
++          _iter459.getKey().write(oprot);
++          _iter459.getValue().write(oprot);
          }
        }
        oprot.writeI32(struct.time_secs);
@@@ -743,17 -744,17 +743,17 @@@
        struct.storm_id = iprot.readString();
        struct.set_storm_id_isSet(true);
        {
-         org.apache.thrift.protocol.TMap _map452 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-         struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map452.size);
-         ExecutorInfo _key453;
-         ExecutorStats _val454;
-         for (int _i455 = 0; _i455 < _map452.size; ++_i455)
 -        org.apache.thrift.protocol.TMap _map432 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
 -        struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map432.size);
 -        ExecutorInfo _key433;
 -        ExecutorStats _val434;
 -        for (int _i435 = 0; _i435 < _map432.size; ++_i435)
++        org.apache.thrift.protocol.TMap _map460 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
++        struct.executor_stats = new HashMap<ExecutorInfo,ExecutorStats>(2*_map460.size);
++        ExecutorInfo _key461;
++        ExecutorStats _val462;
++        for (int _i463 = 0; _i463 < _map460.size; ++_i463)
          {
-           _key453 = new ExecutorInfo();
-           _key453.read(iprot);
-           _val454 = new ExecutorStats();
-           _val454.read(iprot);
-           struct.executor_stats.put(_key453, _val454);
 -          _key433 = new ExecutorInfo();
 -          _key433.read(iprot);
 -          _val434 = new ExecutorStats();
 -          _val434.read(iprot);
 -          struct.executor_stats.put(_key433, _val434);
++          _key461 = new ExecutorInfo();
++          _key461.read(iprot);
++          _val462 = new ExecutorStats();
++          _val462.read(iprot);
++          struct.executor_stats.put(_key461, _val462);
          }
        }
        struct.set_executor_stats_isSet(true);