You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by pt...@apache.org on 2015/12/01 23:05:29 UTC

[51/51] [partial] storm git commit: Update JStorm to latest release 2.1.0

Update JStorm to latest release 2.1.0


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

Branch: refs/heads/jstorm-import
Commit: 7eaf06513183228d8c0a8ac032733f0ec47ba9a7
Parents: 27fb31c
Author: basti.lj <ba...@alibaba-inc.com>
Authored: Wed Nov 25 20:04:48 2015 +0800
Committer: basti.lj <ba...@alibaba-inc.com>
Committed: Wed Nov 25 20:04:48 2015 +0800

----------------------------------------------------------------------
 bin/jstorm.py                                   |    37 +-
 bin/start.sh                                    |    16 +-
 conf/client_logback.xml                         |     7 +-
 conf/jstorm.log4j.properties                    |     4 +-
 conf/jstorm.logback.xml                         |   130 +-
 conf/storm.yaml                                 |    44 +-
 history.md                                      |   142 +-
 history_cn.md                                   |   148 +-
 jstorm-core/pom.xml                             |    34 +-
 .../src/main/java/backtype/storm/Config.java    |   569 +-
 .../java/backtype/storm/ConfigValidation.java   |   107 +-
 .../src/main/java/backtype/storm/Constants.java |     5 +-
 .../backtype/storm/GenericOptionsParser.java    |    76 +-
 .../backtype/storm/ICredentialsListener.java    |     3 +-
 .../main/java/backtype/storm/ILocalCluster.java |    17 +-
 .../main/java/backtype/storm/ILocalDRPC.java    |     3 +-
 .../main/java/backtype/storm/LocalCluster.java  |    77 +-
 .../java/backtype/storm/LocalClusterMap.java    |    50 +-
 .../src/main/java/backtype/storm/LocalDRPC.java |    26 +-
 .../main/java/backtype/storm/LocalUtils.java    |    24 +-
 .../java/backtype/storm/StormSubmitter.java     |   160 +-
 .../src/main/java/backtype/storm/Tool.java      |     6 +-
 .../main/java/backtype/storm/ToolRunner.java    |    11 +-
 .../backtype/storm/clojure/ClojureBolt.java     |    45 +-
 .../backtype/storm/clojure/ClojureSpout.java    |    59 +-
 .../backtype/storm/clojure/RichShellBolt.java   |    12 +-
 .../backtype/storm/clojure/RichShellSpout.java  |     4 +-
 .../java/backtype/storm/command/activate.java   |    14 +-
 .../backtype/storm/command/config_value.java    |    10 +-
 .../java/backtype/storm/command/deactivate.java |    14 +-
 .../backtype/storm/command/kill_topology.java   |    28 +-
 .../main/java/backtype/storm/command/list.java  |    16 +-
 .../backtype/storm/command/metrics_monitor.java |    24 +-
 .../java/backtype/storm/command/rebalance.java  |    33 +-
 .../java/backtype/storm/command/restart.java    |    14 +-
 .../backtype/storm/command/update_config.java   |    69 -
 .../backtype/storm/command/update_topology.java |   164 +
 .../storm/coordination/BatchBoltExecutor.java   |    27 +-
 .../coordination/BatchOutputCollector.java      |    13 +-
 .../coordination/BatchOutputCollectorImpl.java  |     8 +-
 .../coordination/BatchSubtopologyBuilder.java   |   153 +-
 .../storm/coordination/CoordinatedBolt.java     |   155 +-
 .../backtype/storm/coordination/IBatchBolt.java |     2 +
 .../storm/drpc/DRPCInvocationsClient.java       |    35 +-
 .../java/backtype/storm/drpc/DRPCSpout.java     |    86 +-
 .../java/backtype/storm/drpc/JoinResult.java    |    11 +-
 .../java/backtype/storm/drpc/KeyedFairBolt.java |    12 +-
 .../storm/drpc/LinearDRPCInputDeclarer.java     |    13 +-
 .../storm/drpc/LinearDRPCTopologyBuilder.java   |   139 +-
 .../backtype/storm/drpc/PrepareRequest.java     |     1 -
 .../java/backtype/storm/drpc/ReturnResults.java |    37 +-
 .../storm/generated/AlreadyAliveException.java  |    22 +-
 .../storm/generated/AuthorizationException.java |    22 +-
 .../java/backtype/storm/generated/Bolt.java     |    24 +-
 .../storm/generated/ClusterSummary.java         |    26 +-
 .../storm/generated/ComponentCommon.java        |    24 +-
 .../storm/generated/ComponentObject.java        |    12 +-
 .../storm/generated/ComponentSummary.java       |   204 +-
 .../backtype/storm/generated/Credentials.java   |    66 +-
 .../storm/generated/DRPCExecutionException.java |    22 +-
 .../backtype/storm/generated/DRPCRequest.java   |    24 +-
 .../storm/generated/DistributedRPC.java         |   186 +-
 .../generated/DistributedRPCInvocations.java    |   573 +-
 .../backtype/storm/generated/ErrorInfo.java     |   120 +-
 .../storm/generated/GlobalStreamId.java         |    24 +-
 .../java/backtype/storm/generated/Grouping.java |    12 +-
 .../generated/InvalidTopologyException.java     |    22 +-
 .../backtype/storm/generated/JavaObject.java    |    24 +-
 .../backtype/storm/generated/JavaObjectArg.java |    12 +-
 .../backtype/storm/generated/KillOptions.java   |    20 +-
 .../storm/generated/LocalStateData.java         |    70 +-
 .../backtype/storm/generated/MetricInfo.java    |   653 +-
 .../storm/generated/MetricSnapshot.java         |  2221 ++
 .../backtype/storm/generated/MetricWindow.java  |    22 +-
 .../storm/generated/MonitorOptions.java         |    20 +-
 .../backtype/storm/generated/NettyMetric.java   |   553 -
 .../java/backtype/storm/generated/Nimbus.java   | 25096 +++++++++++------
 .../backtype/storm/generated/NimbusStat.java    |   118 +-
 .../backtype/storm/generated/NimbusSummary.java |   644 +-
 .../storm/generated/NotAliveException.java      |    22 +-
 .../backtype/storm/generated/NullStruct.java    |    20 +-
 .../storm/generated/RebalanceOptions.java       |    20 +-
 .../storm/generated/ShellComponent.java         |    20 +-
 .../backtype/storm/generated/SpoutSpec.java     |    24 +-
 .../storm/generated/StateSpoutSpec.java         |    24 +-
 .../backtype/storm/generated/StormTopology.java |    26 +-
 .../backtype/storm/generated/StreamInfo.java    |    24 +-
 .../backtype/storm/generated/SubmitOptions.java |   139 +-
 .../storm/generated/SupervisorSummary.java      |   412 +-
 .../storm/generated/SupervisorWorkers.java      |   110 +-
 .../backtype/storm/generated/TaskComponent.java |    24 +-
 .../backtype/storm/generated/TaskHeartbeat.java |   482 +
 .../backtype/storm/generated/TaskSummary.java   |   162 +-
 .../storm/generated/ThriftSerializedObject.java |    24 +-
 .../generated/TopologyAssignException.java      |    22 +-
 .../backtype/storm/generated/TopologyInfo.java  |   100 +-
 .../storm/generated/TopologyInitialStatus.java  |     2 +-
 .../storm/generated/TopologyMetric.java         |   530 +-
 .../storm/generated/TopologySummary.java        |   416 +-
 .../storm/generated/TopologyTaskHbInfo.java     |   663 +
 .../backtype/storm/generated/WorkerSummary.java |    28 +-
 .../storm/generated/WorkerUploadMetrics.java    |   604 +-
 .../storm/grouping/CustomStreamGrouping.java    |    20 +-
 .../storm/grouping/PartialKeyGrouping.java      |    30 +-
 .../java/backtype/storm/hooks/BaseTaskHook.java |     2 +-
 .../java/backtype/storm/hooks/ITaskHook.java    |     7 +
 .../backtype/storm/hooks/info/BoltAckInfo.java  |     2 +-
 .../storm/hooks/info/BoltExecuteInfo.java       |     2 +-
 .../backtype/storm/hooks/info/BoltFailInfo.java |     2 +-
 .../backtype/storm/hooks/info/EmitInfo.java     |     2 +-
 .../backtype/storm/hooks/info/SpoutAckInfo.java |     2 +-
 .../storm/hooks/info/SpoutFailInfo.java         |     2 +-
 .../storm/messaging/ConnectionWithStatus.java   |    39 +-
 .../backtype/storm/messaging/IConnection.java   |     5 +-
 .../java/backtype/storm/messaging/IContext.java |     6 +-
 .../backtype/storm/messaging/TaskMessage.java   |    16 +-
 .../storm/messaging/TransportFactory.java       |     8 +-
 .../storm/metric/LoggingMetricsConsumer.java    |    18 +-
 .../storm/metric/MetricsConsumerBolt.java       |    14 +-
 .../java/backtype/storm/metric/SystemBolt.java  |    20 +-
 .../storm/metric/api/CombinedMetric.java        |     2 +-
 .../backtype/storm/metric/api/CountMetric.java  |     2 +-
 .../backtype/storm/metric/api/ICombiner.java    |     1 +
 .../storm/metric/api/IMetricsConsumer.java      |    28 +-
 .../backtype/storm/metric/api/IReducer.java     |     2 +
 .../backtype/storm/metric/api/MeanReducer.java  |    21 +-
 .../storm/metric/api/MultiCountMetric.java      |     6 +-
 .../storm/metric/api/MultiReducedMetric.java    |     8 +-
 .../storm/metric/api/rpc/CountShellMetric.java  |     7 +-
 .../storm/metric/api/rpc/IShellMetric.java      |     8 +-
 .../java/backtype/storm/multilang/BoltMsg.java  |    13 +-
 .../backtype/storm/multilang/ISerializer.java   |    23 +-
 .../storm/multilang/JsonSerializer.java         |    16 +-
 .../storm/multilang/NoOutputException.java      |     3 +-
 .../java/backtype/storm/multilang/ShellMsg.java |    49 +-
 .../java/backtype/storm/multilang/SpoutMsg.java |    13 +-
 .../storm/nimbus/DefaultTopologyValidator.java  |     7 +-
 .../storm/nimbus/ITopologyValidator.java        |     4 +-
 .../backtype/storm/planner/CompoundSpout.java   |     3 +-
 .../backtype/storm/planner/CompoundTask.java    |     3 +-
 .../java/backtype/storm/planner/TaskBundle.java |     5 +-
 .../java/backtype/storm/scheduler/Cluster.java  |    87 +-
 .../storm/scheduler/ExecutorDetails.java        |    12 +-
 .../java/backtype/storm/scheduler/INimbus.java  |    14 +-
 .../backtype/storm/scheduler/IScheduler.java    |    22 +-
 .../backtype/storm/scheduler/ISupervisor.java   |    15 +-
 .../storm/scheduler/SchedulerAssignment.java    |     8 +-
 .../scheduler/SchedulerAssignmentImpl.java      |    16 +-
 .../storm/scheduler/SupervisorDetails.java      |    14 +-
 .../backtype/storm/scheduler/Topologies.java    |    15 +-
 .../storm/scheduler/TopologyDetails.java        |    21 +-
 .../backtype/storm/scheduler/WorkerSlot.java    |    24 +-
 .../scheduler/multitenant/DefaultPool.java      |   333 +-
 .../storm/scheduler/multitenant/FreePool.java   |   158 +-
 .../scheduler/multitenant/IsolatedPool.java     |   538 +-
 .../multitenant/MultitenantScheduler.java       |   115 +-
 .../storm/scheduler/multitenant/Node.java       |   540 +-
 .../storm/scheduler/multitenant/NodePool.java   |   466 +-
 .../storm/security/INimbusCredentialPlugin.java |    12 +-
 .../backtype/storm/security/auth/AuthUtils.java |    83 +-
 .../auth/DefaultHttpCredentialsPlugin.java      |    20 +-
 .../security/auth/DefaultPrincipalToLocal.java  |    14 +-
 .../storm/security/auth/IAuthorizer.java        |    22 +-
 .../storm/security/auth/IAutoCredentials.java   |    15 +-
 .../security/auth/ICredentialsRenewer.java      |    14 +-
 .../auth/IGroupMappingServiceProvider.java      |     5 +-
 .../security/auth/IHttpCredentialsPlugin.java   |     6 +-
 .../storm/security/auth/IPrincipalToLocal.java  |     9 +-
 .../storm/security/auth/ITransportPlugin.java   |    13 +-
 .../security/auth/KerberosPrincipalToLocal.java |    15 +-
 .../storm/security/auth/ReqContext.java         |    29 +-
 .../security/auth/SaslTransportPlugin.java      |    43 +-
 .../security/auth/ShellBasedGroupsMapping.java  |    20 +-
 .../security/auth/SimpleTransportPlugin.java    |    66 +-
 .../security/auth/SingleUserPrincipal.java      |     2 +-
 .../storm/security/auth/TBackoffConnect.java    |    10 +-
 .../storm/security/auth/ThriftClient.java       |    75 +-
 .../security/auth/ThriftConnectionType.java     |    20 +-
 .../storm/security/auth/ThriftServer.java       |    27 +-
 .../auth/authorizer/DRPCAuthorizerBase.java     |    10 +-
 .../authorizer/DRPCSimpleACLAuthorizer.java     |    74 +-
 .../auth/authorizer/DenyAuthorizer.java         |    20 +-
 .../authorizer/ImpersonationAuthorizer.java     |    41 +-
 .../auth/authorizer/NoopAuthorizer.java         |    18 +-
 .../auth/authorizer/SimpleACLAuthorizer.java    |    38 +-
 .../authorizer/SimpleWhitelistAuthorizer.java   |    21 +-
 .../auth/digest/ClientCallbackHandler.java      |    21 +-
 .../auth/digest/DigestSaslTransportPlugin.java  |    15 +-
 .../auth/digest/ServerCallbackHandler.java      |    29 +-
 .../storm/security/auth/kerberos/AutoTGT.java   |    58 +-
 .../auth/kerberos/AutoTGTKrb5LoginModule.java   |     6 +-
 .../kerberos/AutoTGTKrb5LoginModuleTest.java    |     2 +-
 .../auth/kerberos/ClientCallbackHandler.java    |    37 +-
 .../kerberos/KerberosSaslTransportPlugin.java   |   107 +-
 .../auth/kerberos/ServerCallbackHandler.java    |    15 +-
 .../serialization/BlowfishTupleSerializer.java  |    18 +-
 .../storm/serialization/DefaultKryoFactory.java |    25 +-
 .../DefaultSerializationDelegate.java           |     6 +-
 .../GzipBridgeSerializationDelegate.java        |     9 +-
 .../GzipBridgeThriftSerializationDelegate.java  |     9 +-
 .../GzipSerializationDelegate.java              |     6 +-
 .../GzipThriftSerializationDelegate.java        |     2 +-
 .../storm/serialization/IKryoDecorator.java     |     1 +
 .../storm/serialization/IKryoFactory.java       |    16 +-
 .../storm/serialization/ITupleDeserializer.java |     2 +-
 .../storm/serialization/ITupleSerializer.java   |     3 +-
 .../serialization/KryoTupleDeserializer.java    |    51 +-
 .../serialization/KryoTupleSerializer.java      |    66 +-
 .../serialization/KryoValuesDeserializer.java   |    12 +-
 .../serialization/KryoValuesSerializer.java     |    12 +-
 .../serialization/SerializableSerializer.java   |     4 +-
 .../serialization/SerializationFactory.java     |    52 +-
 .../ThriftSerializationDelegate.java            |     4 +-
 .../types/ArrayListSerializer.java              |     3 +-
 .../serialization/types/HashMapSerializer.java  |     1 -
 .../serialization/types/HashSetSerializer.java  |     3 +-
 .../types/ListDelegateSerializer.java           |     3 +-
 .../storm/spout/IMultiSchemableSpout.java       |     5 +-
 .../backtype/storm/spout/ISchemableSpout.java   |     6 +-
 .../main/java/backtype/storm/spout/ISpout.java  |   104 +-
 .../storm/spout/ISpoutOutputCollector.java      |     7 +-
 .../storm/spout/ISpoutWaitStrategy.java         |     7 +-
 .../java/backtype/storm/spout/MultiScheme.java  |     5 +-
 .../storm/spout/NothingEmptyEmitStrategy.java   |     2 +-
 .../backtype/storm/spout/RawMultiScheme.java    |    17 +-
 .../main/java/backtype/storm/spout/Scheme.java  |     2 +-
 .../storm/spout/SchemeAsMultiScheme.java        |    28 +-
 .../java/backtype/storm/spout/ShellSpout.java   |    81 +-
 .../storm/spout/SleepSpoutWaitStrategy.java     |     3 +-
 .../storm/spout/SpoutOutputCollector.java       |    80 +-
 .../java/backtype/storm/state/IStateSpout.java  |     3 +
 .../backtype/storm/state/ISubscribedState.java  |     1 +
 .../state/ISynchronizeOutputCollector.java      |     2 +-
 .../storm/state/StateSpoutOutputCollector.java  |     1 -
 .../storm/state/SynchronizeOutputCollector.java |     1 -
 .../storm/task/GeneralTopologyContext.java      |    52 +-
 .../main/java/backtype/storm/task/IBolt.java    |    91 +-
 .../backtype/storm/task/IMetricsContext.java    |     5 +-
 .../backtype/storm/task/IOutputCollector.java   |     5 +-
 .../backtype/storm/task/OutputCollector.java    |   128 +-
 .../java/backtype/storm/task/ShellBolt.java     |   133 +-
 .../backtype/storm/task/TopologyContext.java    |   239 +-
 .../storm/task/WorkerTopologyContext.java       |    43 +-
 .../backtype/storm/testing/AckFailDelegate.java |     1 +
 .../storm/testing/AckFailMapTracker.java        |    18 +-
 .../java/backtype/storm/testing/AckTracker.java |    12 +-
 .../backtype/storm/testing/BatchNumberList.java |    13 +-
 .../storm/testing/BatchProcessWord.java         |     2 +-
 .../backtype/storm/testing/BatchRepeatA.java    |    13 +-
 .../backtype/storm/testing/BoltTracker.java     |     1 -
 .../storm/testing/CompleteTopologyParam.java    |   100 +-
 .../storm/testing/CountingBatchBolt.java        |     8 +-
 .../storm/testing/CountingCommitBolt.java       |     6 +-
 .../backtype/storm/testing/FeederSpout.java     |    17 +-
 .../backtype/storm/testing/FixedTupleSpout.java |    48 +-
 .../testing/ForwardingMetricsConsumer.java      |    37 +-
 .../backtype/storm/testing/IdentityBolt.java    |     4 +-
 .../storm/testing/KeyedCountingBatchBolt.java   |     8 +-
 .../storm/testing/KeyedSummingBatchBolt.java    |    10 +-
 .../storm/testing/MemoryTransactionalSpout.java |    76 +-
 .../testing/MemoryTransactionalSpoutMeta.java   |     8 +-
 .../backtype/storm/testing/MkClusterParam.java  |    67 +-
 .../backtype/storm/testing/MkTupleParam.java    |    57 +-
 .../backtype/storm/testing/MockedSources.java   |    14 +-
 .../java/backtype/storm/testing/NGrouping.java  |     8 +-
 .../storm/testing/NonRichBoltTracker.java       |     1 -
 .../testing/OpaqueMemoryTransactionalSpout.java |    64 +-
 .../storm/testing/PrepareBatchBolt.java         |     6 +-
 .../storm/testing/PythonShellMetricsBolt.java   |    38 +-
 .../storm/testing/PythonShellMetricsSpout.java  |    42 +-
 .../testing/SingleUserSimpleTransport.java      |    24 +-
 .../backtype/storm/testing/SpoutTracker.java    |    11 +-
 .../storm/testing/TestAggregatesCounter.java    |     5 +-
 .../backtype/storm/testing/TestConfBolt.java    |    11 +-
 .../storm/testing/TestEventLogSpout.java        |    66 +-
 .../storm/testing/TestEventOrderCheckBolt.java  |     7 +-
 .../backtype/storm/testing/TestGlobalCount.java |     1 -
 .../java/backtype/storm/testing/TestJob.java    |    16 +-
 .../backtype/storm/testing/TestPlannerBolt.java |     5 +-
 .../storm/testing/TestPlannerSpout.java         |    30 +-
 .../backtype/storm/testing/TestSerObject.java   |     8 +-
 .../backtype/storm/testing/TestWordCounter.java |    11 +-
 .../backtype/storm/testing/TestWordSpout.java   |    21 +-
 .../backtype/storm/testing/TrackedTopology.java |    16 +-
 .../storm/testing/TupleCaptureBolt.java         |     9 +-
 .../topology/BaseConfigurationDeclarer.java     |    11 +-
 .../storm/topology/BasicBoltExecutor.java       |    11 +-
 .../storm/topology/BasicOutputCollector.java    |     1 -
 .../backtype/storm/topology/BoltDeclarer.java   |     3 +-
 .../ComponentConfigurationDeclarer.java         |     5 +
 .../storm/topology/FailedException.java         |     4 +-
 .../backtype/storm/topology/IBasicBolt.java     |     2 +
 .../storm/topology/IBasicOutputCollector.java   |     2 +
 .../backtype/storm/topology/IComponent.java     |    12 +-
 .../java/backtype/storm/topology/IConfig.java   |    28 -
 .../storm/topology/IDynamicComponent.java       |    13 +
 .../java/backtype/storm/topology/IRichBolt.java |     5 +-
 .../backtype/storm/topology/IRichSpout.java     |     5 +-
 .../storm/topology/IRichStateSpout.java         |     1 -
 .../backtype/storm/topology/InputDeclarer.java  |    66 +-
 .../storm/topology/OutputFieldsDeclarer.java    |     5 +-
 .../storm/topology/OutputFieldsGetter.java      |     3 +-
 .../storm/topology/ReportedFailedException.java |     4 +-
 .../backtype/storm/topology/SpoutDeclarer.java  |     2 +-
 .../storm/topology/TopologyBuilder.java         |   181 +-
 .../storm/topology/base/BaseBasicBolt.java      |     2 +-
 .../storm/topology/base/BaseBatchBolt.java      |     2 +-
 .../storm/topology/base/BaseComponent.java      |     2 +-
 ...BaseOpaquePartitionedTransactionalSpout.java |     3 +-
 .../storm/topology/base/BaseRichBolt.java       |     2 +-
 .../storm/topology/base/BaseRichSpout.java      |     2 +-
 .../topology/base/BaseTransactionalBolt.java    |     2 +-
 .../storm/transactional/ICommitter.java         |     5 +-
 .../ICommitterTransactionalSpout.java           |     7 +-
 .../transactional/ITransactionalSpout.java      |    43 +-
 .../storm/transactional/TransactionAttempt.java |    16 +-
 .../TransactionalSpoutBatchExecutor.java        |    18 +-
 .../TransactionalSpoutCoordinator.java          |    80 +-
 .../TransactionalTopologyBuilder.java           |   179 +-
 .../IOpaquePartitionedTransactionalSpout.java   |    23 +-
 .../IPartitionedTransactionalSpout.java         |    33 +-
 ...uePartitionedTransactionalSpoutExecutor.java |    46 +-
 .../PartitionedTransactionalSpoutExecutor.java  |    47 +-
 .../state/RotatingTransactionalState.java       |    51 +-
 .../state/TestTransactionalState.java           |     9 +-
 .../transactional/state/TransactionalState.java |    71 +-
 .../java/backtype/storm/tuple/BatchTuple.java   |    26 +-
 .../main/java/backtype/storm/tuple/Fields.java  |    26 +-
 .../main/java/backtype/storm/tuple/ITuple.java  |    30 +-
 .../java/backtype/storm/tuple/ITupleExt.java    |    25 +
 .../java/backtype/storm/tuple/MessageId.java    |    20 +-
 .../main/java/backtype/storm/tuple/Tuple.java   |    23 +-
 .../java/backtype/storm/tuple/TupleExt.java     |     9 +-
 .../java/backtype/storm/tuple/TupleImpl.java    |   109 +-
 .../java/backtype/storm/tuple/TupleImplExt.java |    23 +-
 .../main/java/backtype/storm/tuple/Values.java  |    11 +-
 .../storm/utils/BufferFileInputStream.java      |     7 +-
 .../backtype/storm/utils/CRC32OutputStream.java |     6 +-
 .../backtype/storm/utils/ClojureTimerTask.java  |     6 +-
 .../java/backtype/storm/utils/Container.java    |     2 +-
 .../java/backtype/storm/utils/DRPCClient.java   |     6 +-
 .../backtype/storm/utils/DisruptorQueue.java    |    38 +-
 .../storm/utils/DisruptorQueueImpl.java         |    70 +-
 .../storm/utils/DisruptorWrapBlockingQueue.java |    58 +-
 .../storm/utils/ExtendedThreadPoolExecutor.java |    65 +-
 .../storm/utils/IndifferentAccessMap.java       |    30 +-
 .../backtype/storm/utils/InprocMessaging.java   |    20 +-
 .../storm/utils/KeyedRoundRobinQueue.java       |    10 +-
 .../java/backtype/storm/utils/ListDelegate.java |    10 +-
 .../java/backtype/storm/utils/LocalState.java   |    19 +-
 .../main/java/backtype/storm/utils/Monitor.java |    84 +-
 .../java/backtype/storm/utils/MutableInt.java   |    10 +-
 .../java/backtype/storm/utils/MutableLong.java  |    10 +-
 .../backtype/storm/utils/MutableObject.java     |     8 +-
 .../java/backtype/storm/utils/NimbusClient.java |    36 +-
 .../storm/utils/RegisteredGlobalState.java      |    30 +-
 .../java/backtype/storm/utils/RotatingMap.java  |    52 +-
 .../backtype/storm/utils/ServiceRegistry.java   |    16 +-
 .../java/backtype/storm/utils/ShellProcess.java |    32 +-
 .../java/backtype/storm/utils/ShellUtils.java   |   200 +-
 .../StormBoundedExponentialBackoffRetry.java    |    22 +-
 .../java/backtype/storm/utils/TestUtils.java    |     4 +-
 .../storm/utils/ThreadResourceManager.java      |     8 +-
 .../storm/utils/ThriftTopologyUtils.java        |    12 +-
 .../main/java/backtype/storm/utils/Time.java    |    65 +-
 .../java/backtype/storm/utils/TimeCacheMap.java |    32 +-
 .../backtype/storm/utils/TransferDrainer.java   |   160 +-
 .../java/backtype/storm/utils/TupleHelpers.java |     4 +-
 .../java/backtype/storm/utils/TupleUtils.java   |    15 +-
 .../main/java/backtype/storm/utils/Utils.java   |   404 +-
 .../java/backtype/storm/utils/VersionInfo.java  |   202 +-
 .../backtype/storm/utils/VersionedStore.java    |    53 +-
 .../storm/utils/WindowedTimeThrottler.java      |    14 +-
 .../backtype/storm/utils/WorkerClassLoader.java |    77 +-
 .../backtype/storm/utils/WritableUtils.java     |   584 +-
 .../backtype/storm/utils/ZookeeperAuthInfo.java |     9 +-
 .../storm/utils/ZookeeperServerCnxnFactory.java |   104 +-
 .../utils/disruptor/AbstractSequencerExt.java   |     8 +-
 .../utils/disruptor/MultiProducerSequencer.java |    74 +-
 .../storm/utils/disruptor/RingBuffer.java       |   192 +-
 .../disruptor/SingleProducerSequencer.java      |    54 +-
 .../java/com/alibaba/jstorm/batch/BatchId.java  |     3 +-
 .../jstorm/batch/BatchTopologyBuilder.java      |    28 +-
 .../com/alibaba/jstorm/batch/IBatchSpout.java   |     6 +-
 .../com/alibaba/jstorm/batch/ICommitter.java    |     6 +-
 .../alibaba/jstorm/batch/IPrepareCommit.java    |     3 +-
 .../jstorm/batch/impl/BatchSpoutMsgId.java      |     3 +-
 .../jstorm/batch/impl/BatchSpoutTrigger.java    |    33 +-
 .../jstorm/batch/impl/CoordinatedBolt.java      |    19 +-
 .../alibaba/jstorm/batch/util/BatchCommon.java  |    23 +-
 .../com/alibaba/jstorm/cache/JStormCache.java   |    21 +-
 .../com/alibaba/jstorm/cache/RocksDBCache.java  |   148 +-
 .../alibaba/jstorm/cache/RocksTTLDBCache.java   |   315 +-
 .../alibaba/jstorm/cache/TimeoutMemCache.java   |    84 +-
 .../jstorm/callback/AsyncLoopRunnable.java      |     3 +-
 .../jstorm/callback/AsyncLoopThread.java        |    18 +-
 .../jstorm/callback/DefaultWatcherCallBack.java |     6 +-
 .../impl/DelayStatusTransitionCallback.java     |    25 +-
 .../impl/DoRebalanceTransitionCallback.java     |   176 +-
 .../callback/impl/KillTransitionCallback.java   |    18 +-
 .../impl/ReassignTransitionCallback.java        |     9 +-
 .../impl/RebalanceTransitionCallback.java       |    12 +-
 .../callback/impl/RemoveTransitionCallback.java |     7 +-
 .../impl/UpdateConfTransitionCallback.java      |    79 -
 .../impl/UpdateTopologyTransitionCallback.java  |    74 +
 .../alibaba/jstorm/client/ConfigExtension.java  |   463 +-
 .../alibaba/jstorm/client/WorkerAssignment.java |    28 +-
 .../jstorm/client/spout/ConfigExtension.java    |   943 +
 .../jstorm/client/spout/IAckValueSpout.java     |     3 +-
 .../jstorm/client/spout/IFailValueSpout.java    |     3 +-
 .../com/alibaba/jstorm/cluster/Cluster.java     |   187 +-
 .../alibaba/jstorm/cluster/ClusterState.java    |     3 +-
 .../java/com/alibaba/jstorm/cluster/Common.java |   444 +-
 .../jstorm/cluster/DistributedClusterState.java |    29 +-
 .../com/alibaba/jstorm/cluster/StormBase.java   |    10 +-
 .../jstorm/cluster/StormClusterState.java       |    98 +-
 .../com/alibaba/jstorm/cluster/StormConfig.java |   220 +-
 .../alibaba/jstorm/cluster/StormMonitor.java    |     3 +-
 .../com/alibaba/jstorm/cluster/StormStatus.java |    17 +-
 .../jstorm/cluster/StormZkClusterState.java     |   299 +-
 .../jstorm/common/metric/AsmCounter.java        |    92 +
 .../alibaba/jstorm/common/metric/AsmGauge.java  |    72 +
 .../jstorm/common/metric/AsmHistogram.java      |   101 +
 .../alibaba/jstorm/common/metric/AsmMeter.java  |    74 +
 .../alibaba/jstorm/common/metric/AsmMetric.java |   267 +
 .../alibaba/jstorm/common/metric/AsmTimer.java  |   107 +
 .../alibaba/jstorm/common/metric/Counter.java   |    55 -
 .../jstorm/common/metric/CounterData.java       |    34 +
 .../com/alibaba/jstorm/common/metric/Gauge.java |    61 -
 .../alibaba/jstorm/common/metric/GaugeData.java |    34 +
 .../alibaba/jstorm/common/metric/Histogram.java |   104 -
 .../jstorm/common/metric/Histogram.java.bak     |    71 -
 .../jstorm/common/metric/HistogramData.java     |   135 +
 .../jstorm/common/metric/LongCounter.java       |    39 -
 .../com/alibaba/jstorm/common/metric/Meter.java |    50 -
 .../alibaba/jstorm/common/metric/MeterData.java |    71 +
 .../jstorm/common/metric/MetricBaseData.java    |    59 +
 .../jstorm/common/metric/MetricFilter.java      |    46 -
 .../jstorm/common/metric/MetricMeta.java        |   213 +
 .../jstorm/common/metric/MetricMetaParser.java  |    58 +
 .../jstorm/common/metric/MetricRegistry.java    |   316 -
 .../alibaba/jstorm/common/metric/MetricSet.java |    28 -
 .../jstorm/common/metric/QueueGauge.java        |     9 +-
 .../alibaba/jstorm/common/metric/TaskTrack.java |   180 +
 .../com/alibaba/jstorm/common/metric/Timer.java |   108 -
 .../alibaba/jstorm/common/metric/TimerData.java |   169 +
 .../jstorm/common/metric/TimerRatio.java        |     6 +-
 .../com/alibaba/jstorm/common/metric/Top.java   |   157 -
 .../jstorm/common/metric/TopologyHistory.java   |   153 +
 .../jstorm/common/metric/old/Counter.java       |    51 +
 .../alibaba/jstorm/common/metric/old/Gauge.java |    61 +
 .../jstorm/common/metric/old/Histogram.java     |   102 +
 .../jstorm/common/metric/old/LongCounter.java   |    39 +
 .../alibaba/jstorm/common/metric/old/Meter.java |    49 +
 .../jstorm/common/metric/old/MetricFilter.java  |    45 +
 .../jstorm/common/metric/old/MetricSet.java     |    28 +
 .../jstorm/common/metric/old/MetricThrift.java  |   106 +
 .../jstorm/common/metric/old/RegistryType.java  |     9 +
 .../jstorm/common/metric/old/StaticsType.java   |    22 +
 .../alibaba/jstorm/common/metric/old/Timer.java |   106 +
 .../alibaba/jstorm/common/metric/old/Top.java   |   154 +
 .../common/metric/old/operator/Sampling.java    |    38 +
 .../common/metric/old/operator/StartTime.java   |    22 +
 .../old/operator/convert/AtomicLongToLong.java  |    35 +
 .../metric/old/operator/convert/Convertor.java  |    25 +
 .../old/operator/convert/DefaultConvertor.java  |    29 +
 .../metric/old/operator/convert/SetToList.java  |    39 +
 .../metric/old/operator/merger/AvgMerger.java   |    49 +
 .../old/operator/merger/LongSumMerger.java      |    42 +
 .../metric/old/operator/merger/Merger.java      |    25 +
 .../metric/old/operator/merger/SumMerger.java   |    39 +
 .../metric/old/operator/merger/TpsMerger.java   |    64 +
 .../metric/old/operator/updater/AddUpdater.java |    38 +
 .../metric/old/operator/updater/AvgUpdater.java |    57 +
 .../old/operator/updater/DoubleAddUpdater.java  |    43 +
 .../old/operator/updater/LongAddUpdater.java    |    44 +
 .../metric/old/operator/updater/Updater.java    |    26 +
 .../common/metric/old/window/AllWindow.java     |    78 +
 .../jstorm/common/metric/old/window/Metric.java |   224 +
 .../common/metric/old/window/RollingWindow.java |   189 +
 .../common/metric/old/window/StatBuckets.java   |   176 +
 .../jstorm/common/metric/operator/Sampling.java |    38 -
 .../common/metric/operator/StartTime.java       |    22 -
 .../operator/convert/AtomicLongToLong.java      |    35 -
 .../metric/operator/convert/Convertor.java      |    25 -
 .../operator/convert/DefaultConvertor.java      |    29 -
 .../metric/operator/convert/SetToList.java      |    39 -
 .../metric/operator/merger/AvgMerger.java       |    52 -
 .../metric/operator/merger/AvgMerger.java.bak   |    53 -
 .../metric/operator/merger/LongSumMerger.java   |    43 -
 .../common/metric/operator/merger/Merger.java   |    25 -
 .../metric/operator/merger/SumMerger.java       |    39 -
 .../metric/operator/merger/TpsMerger.java       |    65 -
 .../metric/operator/updater/AddUpdater.java     |    38 -
 .../metric/operator/updater/AvgUpdater.java     |    62 -
 .../metric/operator/updater/AvgUpdater.java.bak |    73 -
 .../operator/updater/DoubleAddUpdater.java      |    45 -
 .../metric/operator/updater/LongAddUpdater.java |    45 -
 .../common/metric/operator/updater/Updater.java |    25 -
 .../metric/snapshot/AsmCounterSnapshot.java     |    20 +
 .../metric/snapshot/AsmGaugeSnapshot.java       |    20 +
 .../metric/snapshot/AsmHistogramSnapshot.java   |    22 +
 .../metric/snapshot/AsmMeterSnapshot.java       |    50 +
 .../common/metric/snapshot/AsmSnapshot.java     |    32 +
 .../metric/snapshot/AsmTimerSnapshot.java       |    32 +
 .../jstorm/common/metric/window/AllWindow.java  |    78 -
 .../jstorm/common/metric/window/Metric.java     |   231 -
 .../common/metric/window/RollingWindow.java     |   194 -
 .../common/metric/window/StatBuckets.java       |   153 -
 .../jstorm/common/stats/StaticsType.java        |    22 -
 .../alibaba/jstorm/container/CgroupCenter.java  |    11 +-
 .../alibaba/jstorm/container/CgroupUtils.java   |     9 +-
 .../com/alibaba/jstorm/container/SubSystem.java |     3 +-
 .../jstorm/container/cgroup/CgroupCommon.java   |    54 +-
 .../container/cgroup/CgroupCommonOperation.java |     3 +-
 .../container/cgroup/CgroupCoreFactory.java     |     6 +-
 .../jstorm/container/cgroup/core/BlkioCore.java |   130 +-
 .../jstorm/container/cgroup/core/CpuCore.java   |    37 +-
 .../container/cgroup/core/CpuacctCore.java      |    12 +-
 .../container/cgroup/core/CpusetCore.java       |   117 +-
 .../container/cgroup/core/DevicesCore.java      |    19 +-
 .../container/cgroup/core/FreezerCore.java      |     6 +-
 .../container/cgroup/core/MemoryCore.java       |    83 +-
 .../container/cgroup/core/NetClsCore.java       |     7 +-
 .../container/cgroup/core/NetPrioCore.java      |    10 +-
 .../jstorm/daemon/nimbus/DefaultInimbus.java    |    11 +-
 .../jstorm/daemon/nimbus/NimbusCache.java       |    93 +-
 .../jstorm/daemon/nimbus/NimbusData.java        |   176 +-
 .../jstorm/daemon/nimbus/NimbusServer.java      |   150 +-
 .../jstorm/daemon/nimbus/NimbusUtils.java       |   349 +-
 .../jstorm/daemon/nimbus/ServiceHandler.java    |  1095 +-
 .../jstorm/daemon/nimbus/StatusTransition.java  |   177 +-
 .../jstorm/daemon/nimbus/StatusType.java        |    29 +-
 .../jstorm/daemon/nimbus/TopologyAssign.java    |   379 +-
 .../daemon/nimbus/TopologyAssignEvent.java      |    10 +-
 .../daemon/nimbus/TopologyMetricsRunnable.java  |  1428 +-
 .../jstorm/daemon/nimbus/TopologyNettyMgr.java  |   163 +-
 .../metric/uploader/AlimonitorClient.java       |   226 +
 .../metric/uploader/DefaultMetricUploader.java  |    71 +
 .../nimbus/metric/uploader/MetricUploader.java  |    46 +
 .../jstorm/daemon/supervisor/CgroupManager.java |    43 +-
 .../jstorm/daemon/supervisor/Heartbeat.java     |    29 +-
 .../jstorm/daemon/supervisor/Httpserver.java    |    79 +-
 .../jstorm/daemon/supervisor/SandBoxMaker.java  |    37 +-
 .../jstorm/daemon/supervisor/ShutdownWork.java  |    40 +-
 .../daemon/supervisor/StateHeartbeat.java       |     3 +-
 .../jstorm/daemon/supervisor/Supervisor.java    |    79 +-
 .../daemon/supervisor/SupervisorInfo.java       |    37 +-
 .../daemon/supervisor/SupervisorManger.java     |    20 +-
 .../daemon/supervisor/SyncProcessEvent.java     |   377 +-
 .../daemon/supervisor/SyncSupervisorEvent.java  |   305 +-
 .../daemon/worker/BatchDrainerRunable.java      |     6 +-
 .../jstorm/daemon/worker/ContextMaker.java      |    57 +-
 .../jstorm/daemon/worker/DrainerRunable.java    |    13 +-
 .../jstorm/daemon/worker/LocalAssignment.java   |    15 +-
 .../jstorm/daemon/worker/ProcessSimulator.java  |     3 +-
 .../jstorm/daemon/worker/RefreshActive.java     |    13 +-
 .../daemon/worker/RefreshConnections.java       |   191 +-
 .../daemon/worker/ShutdownableDameon.java       |     3 +-
 .../daemon/worker/VirtualPortDispatch.java      |    13 +-
 .../alibaba/jstorm/daemon/worker/Worker.java    |   169 +-
 .../jstorm/daemon/worker/WorkerData.java        |   263 +-
 .../jstorm/daemon/worker/WorkerHeartbeat.java   |     9 +-
 .../jstorm/daemon/worker/WorkerReportError.java |    38 +
 .../jstorm/daemon/worker/WorkerShutdown.java    |     7 +-
 .../daemon/worker/hearbeat/SyncContainerHb.java |    49 +-
 .../worker/hearbeat/WorkerHeartbeatRunable.java |    12 +-
 .../worker/timer/BackpressureCheckTrigger.java  |    51 +
 .../daemon/worker/timer/RotatingMapTrigger.java |    12 +-
 .../worker/timer/TaskBatchCheckTrigger.java     |    32 +
 .../worker/timer/TaskBatchFlushTrigger.java     |     4 +-
 .../worker/timer/TaskHeartbeatTrigger.java      |   112 +-
 .../daemon/worker/timer/TickTupleTrigger.java   |    11 +-
 .../daemon/worker/timer/TimerTrigger.java       |    14 +-
 .../com/alibaba/jstorm/drpc/ClearThread.java    |    11 +-
 .../main/java/com/alibaba/jstorm/drpc/Drpc.java |    74 +-
 .../alibaba/jstorm/event/EventManagerImp.java   |     6 +-
 .../jstorm/event/EventManagerPusher.java        |     3 +-
 .../jstorm/message/netty/ControlMessage.java    |     7 +-
 .../jstorm/message/netty/MessageBatch.java      |    22 +-
 .../jstorm/message/netty/MessageDecoder.java    |   140 +-
 .../jstorm/message/netty/MessageEncoder.java    |     6 +-
 .../jstorm/message/netty/NettyClient.java       |   325 +-
 .../jstorm/message/netty/NettyClientAsync.java  |    86 +-
 .../jstorm/message/netty/NettyClientSync.java   |   141 +-
 .../jstorm/message/netty/NettyConnection.java   |    29 +-
 .../jstorm/message/netty/NettyContext.java      |    42 +-
 .../message/netty/NettyRenameThreadFactory.java |    10 +-
 .../jstorm/message/netty/NettyServer.java       |    52 +-
 .../jstorm/message/netty/ReconnectRunnable.java |     6 +-
 .../message/netty/StormClientHandler.java       |    44 +-
 .../netty/StormClientPipelineFactory.java       |     4 +-
 .../message/netty/StormServerHandler.java       |    21 +-
 .../netty/StormServerPipelineFactory.java       |     2 +-
 .../alibaba/jstorm/metric/AlimonitorClient.java |   267 -
 .../alibaba/jstorm/metric/AsmMetricFilter.java  |    49 +
 .../jstorm/metric/AsmMetricRegistry.java        |   205 +
 .../com/alibaba/jstorm/metric/AsmMetricSet.java |    31 +
 .../com/alibaba/jstorm/metric/AsmWindow.java    |    41 +
 .../java/com/alibaba/jstorm/metric/Bytes.java   |   842 +
 .../jstorm/metric/DefaultMetricIDGenerator.java |    15 +
 .../jstorm/metric/DefaultMetricQueryClient.java |    84 +
 .../jstorm/metric/JStormHealthCheck.java        |    21 +-
 .../jstorm/metric/JStormHealthReporter.java     |    59 +
 .../jstorm/metric/JStormMetricCache.java        |   351 +
 .../alibaba/jstorm/metric/JStormMetrics.java    |   534 +-
 .../jstorm/metric/JStormMetricsReporter.java    |   544 +-
 .../alibaba/jstorm/metric/KVSerializable.java   |    17 +
 .../com/alibaba/jstorm/metric/MetaFilter.java   |    11 +
 .../com/alibaba/jstorm/metric/MetaType.java     |    50 +
 .../com/alibaba/jstorm/metric/MetricClient.java |    92 +
 .../jstorm/metric/MetricDataConverter.java      |    87 +
 .../com/alibaba/jstorm/metric/MetricDef.java    |    55 +-
 .../jstorm/metric/MetricIDGenerator.java        |     9 +
 .../com/alibaba/jstorm/metric/MetricJstack.java |    51 +-
 .../jstorm/metric/MetricQueryClient.java        |   148 +
 .../alibaba/jstorm/metric/MetricSendClient.java |    18 -
 .../com/alibaba/jstorm/metric/MetricThrift.java |   129 -
 .../com/alibaba/jstorm/metric/MetricType.java   |    50 +
 .../com/alibaba/jstorm/metric/MetricUtils.java  |   600 +
 .../jstorm/metric/SimpleJStormMetric.java       |   147 +-
 .../com/alibaba/jstorm/metric/TimeTicker.java   |    52 +
 .../jstorm/metric/TopologyMetricContext.java    |   528 +
 .../jstorm/queue/disruptor/JstormEvent.java     |    11 +-
 .../queue/disruptor/JstormEventHandler.java     |     3 +-
 .../com/alibaba/jstorm/schedule/Assignment.java |    59 +-
 .../alibaba/jstorm/schedule/AssignmentBak.java  |     6 +-
 .../alibaba/jstorm/schedule/CleanRunnable.java  |     6 +-
 .../jstorm/schedule/DelayEventRunnable.java     |     3 +-
 .../jstorm/schedule/FollowerRunnable.java       |   235 +-
 .../jstorm/schedule/IToplogyScheduler.java      |     3 +-
 .../jstorm/schedule/MonitorRunnable.java        |   117 +-
 .../jstorm/schedule/TopologyAssignContext.java  |    38 +-
 .../DefaultTopologyAssignContext.java           |    66 +-
 .../DefaultTopologyScheduler.java               |    59 +-
 .../default_assign/ResourceWorkerSlot.java      |    15 +-
 .../Selector/AbstractSelector.java              |     6 +-
 .../Selector/ComponentNumSelector.java          |     8 +-
 .../Selector/InputComponentNumSelector.java     |     8 +-
 .../default_assign/Selector/Selector.java       |     3 +-
 .../Selector/WorkerComparator.java              |     3 +-
 .../default_assign/TaskAssignContext.java       |    35 +-
 .../schedule/default_assign/TaskScheduler.java  |   289 +-
 .../default_assign/WorkerScheduler.java         |   715 +-
 .../main/java/com/alibaba/jstorm/task/Task.java |   305 +-
 .../com/alibaba/jstorm/task/TaskBaseMetric.java |   150 +-
 .../alibaba/jstorm/task/TaskBatchReceiver.java  |    25 +-
 .../alibaba/jstorm/task/TaskBatchTransfer.java  |   141 +-
 .../java/com/alibaba/jstorm/task/TaskInfo.java  |    13 +-
 .../com/alibaba/jstorm/task/TaskReceiver.java   |    87 +-
 .../alibaba/jstorm/task/TaskShutdownDameon.java |    52 +-
 .../com/alibaba/jstorm/task/TaskTransfer.java   |   153 +-
 .../com/alibaba/jstorm/task/TkHbCacheTime.java  |    19 +-
 .../com/alibaba/jstorm/task/acker/Acker.java    |    42 +-
 .../jstorm/task/backpressure/Backpressure.java  |    88 +
 .../backpressure/BackpressureController.java    |   182 +
 .../backpressure/BackpressureCoordinator.java   |   415 +
 .../task/backpressure/BackpressureTrigger.java  |   216 +
 .../backpressure/SourceBackpressureInfo.java    |    97 +
 .../backpressure/TargetBackpressureInfo.java    |    84 +
 .../jstorm/task/comm/TaskSendTargets.java       |    37 +-
 .../com/alibaba/jstorm/task/comm/TupleInfo.java |     3 +-
 .../jstorm/task/comm/UnanchoredSend.java        |     9 +-
 .../jstorm/task/error/ITaskReportErr.java       |     2 +
 .../jstorm/task/error/TaskErrorRunable.java     |     3 +-
 .../jstorm/task/error/TaskReportError.java      |    20 +-
 .../task/error/TaskReportErrorAndDie.java       |     9 +-
 .../jstorm/task/execute/BaseExecutors.java      |   188 +-
 .../jstorm/task/execute/BoltCollector.java      |   145 +-
 .../jstorm/task/execute/BoltExecutors.java      |   195 +-
 .../jstorm/task/execute/spout/AckSpoutMsg.java  |    26 +-
 .../jstorm/task/execute/spout/FailSpoutMsg.java |     6 +-
 .../spout/MultipleThreadSpoutExecutors.java     |    64 +-
 .../spout/SingleThreadSpoutExecutors.java       |    47 +-
 .../task/execute/spout/SpoutCollector.java      |   103 +-
 .../task/execute/spout/SpoutExecutors.java      |   295 +-
 .../execute/spout/SpoutTimeoutCallBack.java     |    15 +-
 .../jstorm/task/group/MkCustomGrouper.java      |     4 +-
 .../jstorm/task/group/MkFieldsGrouper.java      |    10 +-
 .../alibaba/jstorm/task/group/MkGrouper.java    |    44 +-
 .../alibaba/jstorm/task/group/MkLocalFirst.java |    11 +-
 .../jstorm/task/group/MkLocalShuffer.java       |    60 +-
 .../com/alibaba/jstorm/task/group/Shuffer.java  |     3 +-
 .../jstorm/task/heartbeat/TaskHeartbeat.java    |    98 -
 .../task/heartbeat/TaskHeartbeatRunable.java    |   191 -
 .../task/heartbeat/TaskHeartbeatUpdater.java    |   156 +
 .../jstorm/task/master/TopoMasterCtrlEvent.java |    75 +
 .../jstorm/task/master/TopologyMaster.java      |   359 +
 .../alibaba/jstorm/utils/DisruptorQueue.java    |     2 +-
 .../alibaba/jstorm/utils/DisruptorRunable.java  |    56 +-
 .../com/alibaba/jstorm/utils/EPlatform.java     |    46 +-
 .../com/alibaba/jstorm/utils/FileAttribute.java |     6 +-
 .../alibaba/jstorm/utils/HttpserverUtils.java   |     6 +-
 .../com/alibaba/jstorm/utils/IntervalCheck.java |   157 +-
 .../alibaba/jstorm/utils/JStormServerUtils.java |    25 +-
 .../com/alibaba/jstorm/utils/JStormUtils.java   |   332 +-
 .../java/com/alibaba/jstorm/utils/LoadConf.java |   232 +-
 .../com/alibaba/jstorm/utils/NetWorkUtils.java  |    75 +-
 .../java/com/alibaba/jstorm/utils/OSInfo.java   |   277 +-
 .../alibaba/jstorm/utils/OlderFileFilter.java   |    21 +-
 .../java/com/alibaba/jstorm/utils/Pair.java     |     6 +-
 .../com/alibaba/jstorm/utils/PathUtils.java     |     2 +-
 .../com/alibaba/jstorm/utils/RandomRange.java   |     3 +-
 .../com/alibaba/jstorm/utils/RotatingMap.java   |    11 +-
 .../alibaba/jstorm/utils/SystemOperation.java   |    16 +-
 .../java/com/alibaba/jstorm/utils/Thrift.java   |    61 +-
 .../com/alibaba/jstorm/utils/TimeCacheMap.java  |     8 +-
 .../alibaba/jstorm/utils/TimeCacheQueue.java    |    20 +-
 .../com/alibaba/jstorm/utils/TimeFormat.java    |    25 +-
 .../com/alibaba/jstorm/utils/TimeUtils.java     |   105 +-
 .../com/alibaba/jstorm/zk/ZkEventTypes.java     |     3 +-
 .../main/java/com/alibaba/jstorm/zk/ZkTool.java |   164 +-
 .../java/com/alibaba/jstorm/zk/Zookeeper.java   |    89 +-
 .../src/main/java/storm/trident/JoinType.java   |     5 +-
 .../src/main/java/storm/trident/Stream.java     |   153 +-
 .../java/storm/trident/TridentTopology.java     |    36 +-
 .../trident/drpc/ReturnResultsReducer.java      |    31 +-
 .../fluent/ChainedAggregatorDeclarer.java       |    63 +-
 .../fluent/ChainedFullAggregatorDeclarer.java   |     5 +
 .../ChainedPartitionAggregatorDeclarer.java     |     7 +-
 .../trident/fluent/GlobalAggregationScheme.java |     2 +-
 .../storm/trident/fluent/GroupedStream.java     |    57 +-
 .../trident/fluent/IAggregatableStream.java     |     3 +
 .../java/storm/trident/fluent/UniqueIdGen.java  |     6 +-
 .../java/storm/trident/graph/GraphGrouper.java  |    65 +-
 .../main/java/storm/trident/graph/Group.java    |    23 +-
 .../storm/trident/operation/Aggregator.java     |     2 +
 .../java/storm/trident/operation/Assembly.java  |     1 -
 .../storm/trident/operation/BaseAggregator.java |     3 +-
 .../storm/trident/operation/BaseFilter.java     |     3 +-
 .../storm/trident/operation/BaseFunction.java   |     3 +-
 .../trident/operation/BaseMultiReducer.java     |     3 +-
 .../storm/trident/operation/BaseOperation.java  |     2 +-
 .../trident/operation/CombinerAggregator.java   |     2 +
 .../storm/trident/operation/EachOperation.java  |     2 +-
 .../java/storm/trident/operation/Filter.java    |     1 -
 .../trident/operation/GroupedMultiReducer.java  |     5 +-
 .../storm/trident/operation/MultiReducer.java   |     5 +-
 .../java/storm/trident/operation/Operation.java |     1 +
 .../trident/operation/ReducerAggregator.java    |     1 +
 .../trident/operation/TridentCollector.java     |     2 +-
 .../operation/TridentMultiReducerContext.java   |     9 +-
 .../operation/TridentOperationContext.java      |    16 +-
 .../storm/trident/operation/builtin/Count.java  |     3 +-
 .../storm/trident/operation/builtin/Equals.java |     9 +-
 .../trident/operation/builtin/FilterNull.java   |     5 +-
 .../storm/trident/operation/builtin/FirstN.java |    38 +-
 .../storm/trident/operation/builtin/MapGet.java |     7 +-
 .../storm/trident/operation/builtin/Negate.java |     6 +-
 .../trident/operation/builtin/SnapshotGet.java  |     2 +-
 .../storm/trident/operation/builtin/Sum.java    |     3 +-
 .../operation/builtin/TupleCollectionGet.java   |     6 +-
 .../operation/impl/CaptureCollector.java        |     6 +-
 .../operation/impl/ChainedAggregatorImpl.java   |    53 +-
 .../trident/operation/impl/ChainedResult.java   |    17 +-
 .../operation/impl/CombinerAggStateUpdater.java |     9 +-
 .../impl/CombinerAggregatorCombineImpl.java     |    20 +-
 .../impl/CombinerAggregatorInitImpl.java        |     6 +-
 .../trident/operation/impl/FilterExecutor.java  |     6 +-
 .../operation/impl/GlobalBatchToPartition.java  |     3 +-
 .../trident/operation/impl/GroupCollector.java  |     8 +-
 .../operation/impl/GroupedAggregator.java       |    16 +-
 .../impl/GroupedMultiReducerExecutor.java       |    19 +-
 .../operation/impl/IdentityMultiReducer.java    |     3 +-
 .../impl/IndexHashBatchToPartition.java         |     2 +-
 .../operation/impl/JoinerMultiReducer.java      |    77 +-
 .../operation/impl/ReducerAggStateUpdater.java  |     7 +-
 .../operation/impl/ReducerAggregatorImpl.java   |    18 +-
 .../storm/trident/operation/impl/Result.java    |     2 +-
 .../operation/impl/SingleEmitAggregator.java    |    23 +-
 .../trident/operation/impl/TrueFilter.java      |     2 +-
 .../storm/trident/partition/GlobalGrouping.java |     5 +-
 .../trident/partition/IdentityGrouping.java     |    11 +-
 .../trident/partition/IndexHashGrouping.java    |    12 +-
 .../storm/trident/planner/BridgeReceiver.java   |     7 +-
 .../main/java/storm/trident/planner/Node.java   |    10 +-
 .../storm/trident/planner/NodeStateInfo.java    |     2 +-
 .../storm/trident/planner/PartitionNode.java    |     7 +-
 .../storm/trident/planner/ProcessorContext.java |     3 +-
 .../storm/trident/planner/ProcessorNode.java    |     4 +-
 .../java/storm/trident/planner/SpoutNode.java   |    10 +-
 .../storm/trident/planner/SubtopologyBolt.java  |    90 +-
 .../storm/trident/planner/TridentProcessor.java |     9 +-
 .../storm/trident/planner/TupleReceiver.java    |     5 +-
 .../planner/processor/AggregateProcessor.java   |    11 +-
 .../planner/processor/AppendCollector.java      |    11 +-
 .../planner/processor/EachProcessor.java        |    11 +-
 .../planner/processor/FreshCollector.java       |    13 +-
 .../processor/MultiReducerProcessor.java        |    15 +-
 .../processor/PartitionPersistProcessor.java    |    19 +-
 .../planner/processor/ProjectedProcessor.java   |     9 +-
 .../planner/processor/StateQueryProcessor.java  |    21 +-
 .../planner/processor/TridentContext.java       |    26 +-
 .../storm/trident/spout/BatchSpoutExecutor.java |    16 +-
 .../main/java/storm/trident/spout/IBatchID.java |     2 +-
 .../java/storm/trident/spout/IBatchSpout.java   |     5 +
 .../trident/spout/ICommitterTridentSpout.java   |     6 +-
 .../spout/IOpaquePartitionedTridentSpout.java   |    32 +-
 .../trident/spout/IPartitionedTridentSpout.java |    40 +-
 .../java/storm/trident/spout/ITridentSpout.java |    48 +-
 .../OpaquePartitionedTridentSpoutExecutor.java  |    67 +-
 .../spout/PartitionedTridentSpoutExecutor.java  |    59 +-
 .../trident/spout/RichSpoutBatchExecutor.java   |    70 +-
 .../storm/trident/spout/RichSpoutBatchId.java   |     9 +-
 .../spout/RichSpoutBatchIdSerializer.java       |     3 +-
 .../trident/spout/RichSpoutBatchTriggerer.java  |    41 +-
 .../trident/spout/TridentSpoutCoordinator.java  |    10 +-
 .../trident/spout/TridentSpoutExecutor.java     |    31 +-
 .../storm/trident/state/BaseQueryFunction.java  |     3 +-
 .../storm/trident/state/BaseStateUpdater.java   |     3 +-
 .../trident/state/CombinerValueUpdater.java     |     8 +-
 .../state/JSONNonTransactionalSerializer.java   |     3 +-
 .../trident/state/JSONOpaqueSerializer.java     |     3 +-
 .../state/JSONTransactionalSerializer.java      |     3 +-
 .../java/storm/trident/state/OpaqueValue.java   |    20 +-
 .../java/storm/trident/state/QueryFunction.java |     1 +
 .../java/storm/trident/state/ReadOnlyState.java |     2 +-
 .../trident/state/ReducerValueUpdater.java      |     8 +-
 .../java/storm/trident/state/Serializer.java    |     2 +-
 .../main/java/storm/trident/state/State.java    |    15 +-
 .../java/storm/trident/state/StateSpec.java     |     3 +-
 .../java/storm/trident/state/StateType.java     |     5 +-
 .../java/storm/trident/state/StateUpdater.java  |     1 -
 .../storm/trident/state/TransactionalValue.java |     9 +-
 .../trident/state/map/CachedBatchReadsMap.java  |    17 +-
 .../java/storm/trident/state/map/CachedMap.java |    11 +-
 .../storm/trident/state/map/IBackingMap.java    |     6 +-
 .../state/map/MapCombinerAggStateUpdater.java   |    22 +-
 .../state/map/MapReducerAggStateUpdater.java    |    18 +-
 .../state/snapshot/ReadOnlySnapshottable.java   |     2 +-
 .../storm/trident/testing/FeederBatchSpout.java |    73 +-
 .../testing/FeederCommitterBatchSpout.java      |     2 +-
 .../trident/testing/LRUMemoryMapState.java      |     4 +-
 .../storm/trident/testing/MemoryMapState.java   |     4 +-
 .../topology/TridentTopologyBuilder.java        |    28 +-
 .../java/storm/trident/util/TridentUtils.java   |    12 +-
 jstorm-core/src/main/py/storm/DistributedRPC.py |    20 +-
 .../main/py/storm/DistributedRPCInvocations.py  |    77 +-
 jstorm-core/src/main/py/storm/Nimbus-remote     |    98 +-
 jstorm-core/src/main/py/storm/Nimbus.py         |  2064 +-
 jstorm-core/src/main/py/storm/ttypes.py         |  2798 +-
 jstorm-core/src/main/resources/defaults.yaml    |    37 +-
 jstorm-core/src/main/resources/logback-test.xml |    26 +-
 jstorm-core/src/main/resources/version          |     2 +-
 .../com/alibaba/jstorm/cache/RocksDBTest.java   |   270 +-
 .../jstorm/common/metric/AsmMetricTest.java     |    29 +
 .../metric/old/window/StatBucketsTest.java      |    27 +
 .../jstorm/message/context/ContextTest.java     |     3 +-
 .../jstorm/message/netty/NettyUnitTest.java     |    78 +-
 .../alibaba/jstorm/message/zmq/ZmqUnitTest.java |     6 +-
 .../com/alibaba/jstorm/metric/MetricTest.java   |   380 -
 .../superivosr/deamon/HttpserverTest.java       |     7 +-
 .../alibaba/jstorm/topology/SingleJoinBolt.java |    38 +-
 .../alibaba/jstorm/topology/SingleJoinTest.java |    10 +-
 .../jstorm/topology/TransactionalWordsTest.java |   119 +-
 .../jstorm/util/queue/DisruptorTest.java        |   170 +-
 .../alibaba/jstorm/utils/JStormUtilsTest.java   |    14 +-
 .../com/alibaba/jstorm/utils/TestThrift.java    |     5 -
 jstorm-ui/pom.xml                               |   235 +-
 .../alibaba/jstorm/ui/DescendComparator.java    |    42 -
 .../alibaba/jstorm/ui/NimbusClientManager.java  |   113 -
 .../main/java/com/alibaba/jstorm/ui/UIDef.java  |   114 -
 .../java/com/alibaba/jstorm/ui/UIMetrics.java   |    62 -
 .../java/com/alibaba/jstorm/ui/UIUtils.java     |   549 -
 .../jstorm/ui/api/ClusterAPIController.java     |    61 +
 .../jstorm/ui/api/ConfAPIController.java        |    56 +
 .../jstorm/ui/api/TopologyAPIController.java    |   107 +
 .../jstorm/ui/controller/ClusterController.java |   152 +
 .../ui/controller/ClustersController.java       |    60 +
 .../ui/controller/ComponentController.java      |   215 +
 .../jstorm/ui/controller/ConfController.java    |    69 +
 .../jstorm/ui/controller/FilesController.java   |   132 +
 .../jstorm/ui/controller/JStackController.java  |    73 +
 .../jstorm/ui/controller/LogController.java     |   260 +
 .../jstorm/ui/controller/NettyController.java   |   135 +
 .../ui/controller/SupervisorController.java     |   136 +
 .../jstorm/ui/controller/TaskController.java    |   191 +
 .../ui/controller/TopologyController.java       |   249 +
 .../alibaba/jstorm/ui/model/ClusterConfig.java  |   103 +
 .../alibaba/jstorm/ui/model/ClusterEntity.java  |   108 +
 .../com/alibaba/jstorm/ui/model/ColumnData.java |    59 -
 .../com/alibaba/jstorm/ui/model/LinkData.java   |    65 -
 .../alibaba/jstorm/ui/model/NimbusEntity.java   |   152 +
 .../alibaba/jstorm/ui/model/PageGenerator.java  |    32 -
 .../com/alibaba/jstorm/ui/model/PageIndex.java  |   151 -
 .../com/alibaba/jstorm/ui/model/Response.java   |    48 +
 .../com/alibaba/jstorm/ui/model/TableData.java  |    41 -
 .../com/alibaba/jstorm/ui/model/TaskEntity.java |   121 +
 .../alibaba/jstorm/ui/model/UIBasicMetric.java  |    57 +
 .../jstorm/ui/model/UIComponentMetric.java      |   173 +
 .../alibaba/jstorm/ui/model/UINettyMetric.java  |    66 +
 .../alibaba/jstorm/ui/model/UIStreamMetric.java |    44 +
 .../jstorm/ui/model/UISummaryMetric.java        |    43 +
 .../alibaba/jstorm/ui/model/UITaskMetric.java   |    72 +
 .../jstorm/ui/model/UIUserDefinedMetric.java    |    89 +
 .../alibaba/jstorm/ui/model/UIWorkerMetric.java |    73 +
 .../jstorm/ui/model/ZooKeeperEntity.java        |    58 +
 .../jstorm/ui/model/graph/ChartSeries.java      |    89 +
 .../jstorm/ui/model/graph/TopologyEdge.java     |   130 +
 .../jstorm/ui/model/graph/TopologyGraph.java    |    67 +
 .../jstorm/ui/model/graph/TopologyNode.java     |   118 +
 .../alibaba/jstorm/ui/model/graph/TreeNode.java |   135 +
 .../jstorm/ui/model/pages/ClusterPage.java      |   324 -
 .../jstorm/ui/model/pages/ComponentPage.java    |   473 -
 .../alibaba/jstorm/ui/model/pages/ConfPage.java |   167 -
 .../alibaba/jstorm/ui/model/pages/HomePage.java |   182 -
 .../jstorm/ui/model/pages/JStackPage.java       |   135 -
 .../jstorm/ui/model/pages/ListLogsPage.java     |   232 -
 .../alibaba/jstorm/ui/model/pages/LogPage.java  |   300 -
 .../jstorm/ui/model/pages/NettyPage.java        |   131 -
 .../jstorm/ui/model/pages/SupervisorPage.java   |   281 -
 .../jstorm/ui/model/pages/TablePage.java        |   154 -
 .../jstorm/ui/model/pages/TopologyPage.java     |   211 -
 .../jstorm/ui/model/pages/WindowTablePage.java  |   105 -
 .../java/com/alibaba/jstorm/ui/tags/CpuTag.java |    97 +
 .../com/alibaba/jstorm/ui/tags/ErrorTag.java    |   121 +
 .../com/alibaba/jstorm/ui/tags/HostTag.java     |    47 +
 .../alibaba/jstorm/ui/tags/PaginationTag.java   |   115 +
 .../com/alibaba/jstorm/ui/tags/PrettyTag.java   |    88 +
 .../com/alibaba/jstorm/ui/tags/StatusTag.java   |    69 +
 .../alibaba/jstorm/ui/tags/SubMetricTag.java    |    87 +
 .../jstorm/ui/utils/NimbusClientManager.java    |    86 +
 .../java/com/alibaba/jstorm/ui/utils/UIDef.java |    59 +
 .../alibaba/jstorm/ui/utils/UIMetricUtils.java  |   170 +
 .../com/alibaba/jstorm/ui/utils/UIUtils.java    |   818 +
 jstorm-ui/src/main/resources/log4j.properties   |     4 +-
 jstorm-ui/src/main/resources/logback-test.xml   |    65 -
 jstorm-ui/src/main/resources/logback.xml        |    59 +
 jstorm-ui/src/main/webapp/META-INF/context.xml  |     2 -
 .../src/main/webapp/WEB-INF/faces-config.xml    |    26 -
 .../webapp/WEB-INF/mvc-dispatcher-servlet.xml   |    39 +
 .../src/main/webapp/WEB-INF/pages/cluster.jsp   |   268 +
 .../src/main/webapp/WEB-INF/pages/clusters.jsp  |    65 +
 .../src/main/webapp/WEB-INF/pages/component.jsp |   249 +
 .../src/main/webapp/WEB-INF/pages/conf.jsp      |    48 +
 .../src/main/webapp/WEB-INF/pages/files.jsp     |   108 +
 .../src/main/webapp/WEB-INF/pages/jstack.jsp    |    54 +
 .../webapp/WEB-INF/pages/layout/_breadcrumb.jsp |    51 +
 .../webapp/WEB-INF/pages/layout/_footer.jsp     |    67 +
 .../main/webapp/WEB-INF/pages/layout/_head.jsp  |    32 +
 .../webapp/WEB-INF/pages/layout/_header.jsp     |    86 +
 jstorm-ui/src/main/webapp/WEB-INF/pages/log.jsp |    75 +
 .../src/main/webapp/WEB-INF/pages/netty.jsp     |   120 +
 .../main/webapp/WEB-INF/pages/supervisor.jsp    |   215 +
 .../src/main/webapp/WEB-INF/pages/task.jsp      |   187 +
 .../src/main/webapp/WEB-INF/pages/topology.jsp  |   535 +
 jstorm-ui/src/main/webapp/WEB-INF/tag.tld       |   136 +
 jstorm-ui/src/main/webapp/WEB-INF/web.xml       |    48 +-
 jstorm-ui/src/main/webapp/assets/css/aloha.css  |    42 -
 .../main/webapp/assets/css/bootstrap-theme.css  |   476 -
 .../webapp/assets/css/bootstrap-theme.css.map   |     1 -
 .../webapp/assets/css/bootstrap-theme.min.css   |     4 +-
 .../src/main/webapp/assets/css/bootstrap.css    |  6584 -----
 .../main/webapp/assets/css/bootstrap.css.map    |     1 -
 .../main/webapp/assets/css/bootstrap.min.css    |     4 +-
 .../webapp/assets/css/dataTables.bootstrap.css  |   176 +
 .../src/main/webapp/assets/css/json.human.css   |   117 +
 jstorm-ui/src/main/webapp/assets/css/storm.css  |   197 +
 .../src/main/webapp/assets/css/vis.min.css      |     1 +
 .../src/main/webapp/assets/imgs/favicon.png     |   Bin 0 -> 55144 bytes
 .../src/main/webapp/assets/imgs/jstorm.png      |   Bin 0 -> 6375 bytes
 .../src/main/webapp/assets/js/bootstrap.js      |  2317 --
 .../src/main/webapp/assets/js/bootstrap.min.js  |     8 +-
 .../assets/js/dataTables.bootstrap.min.js       |     8 +
 .../src/main/webapp/assets/js/highcharts.js     |   327 +
 jstorm-ui/src/main/webapp/assets/js/hilitor.js  |   104 +
 .../webapp/assets/js/jquery.dataTables.min.js   |   163 +
 .../src/main/webapp/assets/js/jquery.min.js     |     9 +-
 .../src/main/webapp/assets/js/json.human.js     |   378 +
 jstorm-ui/src/main/webapp/assets/js/npm.js      |    13 -
 jstorm-ui/src/main/webapp/assets/js/storm.js    |   371 +
 jstorm-ui/src/main/webapp/assets/js/vis.min.js  |    43 +
 jstorm-ui/src/main/webapp/assets/js/vue.min.js  |     8 +
 jstorm-ui/src/main/webapp/clusters.xhtml        |   122 -
 jstorm-ui/src/main/webapp/log.xhtml             |   102 -
 jstorm-ui/src/main/webapp/table.xhtml           |   105 -
 jstorm-ui/src/main/webapp/windowtable.xhtml     |   146 -
 jstorm-ui/src/test/java/UIUtilsTest.java        |    37 +
 other/storm.thrift                              |   203 +-
 pom.xml                                         |   416 +-
 release.xml                                     |   205 +-
 version                                         |     2 +-
 982 files changed, 63491 insertions(+), 48749 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/bin/jstorm.py
----------------------------------------------------------------------
diff --git a/bin/jstorm.py b/bin/jstorm.py
index c4b3fe7..b82d2ff 100755
--- a/bin/jstorm.py
+++ b/bin/jstorm.py
@@ -69,7 +69,9 @@ def get_client_childopts():
     return ret
 
 def get_server_childopts(log_name):
-    ret = (" -Dlogfile.name=%s -Dlogback.configurationFile=%s"  %(log_name, LOGBACK_CONF))
+    jstorm_log_dir = get_log_dir()
+    gc_log_path = jstorm_log_dir + "/" + log_name + ".gc"
+    ret = (" -Xloggc:%s -Dlogfile.name=%s -Dlogback.configurationFile=%s -Djstorm.log.dir=%s "  %(gc_log_path, log_name, LOGBACK_CONF, jstorm_log_dir))
     return ret
 
 if not os.path.exists(JSTORM_DIR + "/RELEASE"):
@@ -103,8 +105,8 @@ def get_classpath(extrajars):
     ret.extend(get_jars_full(JSTORM_DIR))
     ret.extend(get_jars_full(JSTORM_DIR + "/lib"))
     ret.extend(INCLUDE_JARS)
-    
     return normclasspath(":".join(ret))
+    
 
 def confvalue(name, extrapaths):
     command = [
@@ -130,6 +132,18 @@ def print_localconfvalue(name):
     """
     print name + ": " + confvalue(name, [JSTORM_CONF_DIR])
 
+def get_log_dir():
+    cppaths = [JSTORM_CONF_DIR]
+    jstorm_log_dir = confvalue("jstorm.log.dir", cppaths)
+    if not jstorm_log_dir == "null":
+       if not os.path.exists(jstorm_log_dir):
+          os.mkdir(jstorm_log_dir)
+    else:
+       jstorm_log_dir = JSTORM_DIR + "/logs"
+       if not os.path.exists(jstorm_log_dir):
+          os.mkdir(jstorm_log_dir)
+    return jstorm_log_dir
+
 def print_remoteconfvalue(name):
     """Syntax: [jstorm remoteconfvalue conf-name]
 
@@ -141,11 +155,17 @@ def print_remoteconfvalue(name):
     """
     print name + ": " + confvalue(name, [JSTORM_CONF_DIR])
 
+
 def exec_storm_class(klass, jvmtype="-server", childopts="", extrajars=[], args=[]):
     nativepath = confvalue("java.library.path", extrajars)
     args_str = " ".join(map(lambda s: "\"" + s + "\"", args))
-    command = "java " + jvmtype + " -Djstorm.home=" + JSTORM_DIR + " " + get_config_opts() + " -Djava.library.path=" + nativepath + " " + childopts + " -cp " + get_classpath(extrajars) + " " + klass + " " + args_str
-    print "Running: " + command    
+    print args_str
+    if "NimbusServer" in klass:
+        # fix cmd > 4096, use dir in cp, only for nimbus server
+        command = "java " + jvmtype + " -Djstorm.home=" + JSTORM_DIR + " " + get_config_opts() + " -Djava.library.path=" + nativepath + " " + childopts + " -cp " + get_classpath(extrajars) + ":" + JSTORM_DIR + "/lib/ext/* " + klass + " " + args_str
+    else:
+        command = "java " + jvmtype + " -Djstorm.home=" + JSTORM_DIR + " " + get_config_opts() + " -Djava.library.path=" + nativepath + " " + childopts + " -cp " + get_classpath(extrajars) + " " + klass + " " + args_str
+    print "Running: " + command
     global STATUS
     STATUS = os.system(command)
 
@@ -263,12 +283,12 @@ def restart(*args):
         extrajars=[JSTORM_CONF_DIR, JSTORM_DIR + "/bin", CLIENT_CONF_FILE],
         childopts=childopts)
 
-def update_config(*args):
-    """Syntax: [jstorm restart topology-name [conf]]
+def update_topology(*args):
+    """Syntax: [jstorm update_topology topology-name -jar [jarpath] -conf [confpath]]
     """
     childopts = get_client_childopts()
     exec_storm_class(
-        "backtype.storm.command.update_config",
+        "backtype.storm.command.update_topology",
         args=args,
         jvmtype="-client -Xms256m -Xmx256m",
         extrajars=[JSTORM_CONF_DIR, JSTORM_DIR + "/bin", CLIENT_CONF_FILE],
@@ -309,7 +329,6 @@ def supervisor():
         extrajars=cppaths, 
         childopts=childopts)
 
-
 def drpc():
     """Syntax: [jstorm drpc]
 
@@ -388,7 +407,7 @@ COMMANDS = {"jar": jar, "kill": kill, "nimbus": nimbus, "zktool": zktool,
             "drpc": drpc, "supervisor": supervisor, "localconfvalue": print_localconfvalue,
             "remoteconfvalue": print_remoteconfvalue, "classpath": print_classpath,
             "activate": activate, "deactivate": deactivate, "rebalance": rebalance, "help": print_usage,
-            "metricsMonitor": metrics_Monitor, "list": list, "restart": restart, "update_config": update_config}
+            "metricsMonitor": metrics_Monitor, "list": list, "restart": restart, "update_topology": update_topology}
 
 def parse_config(config_list):
     global CONFIG_OPTS

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/bin/start.sh
----------------------------------------------------------------------
diff --git a/bin/start.sh b/bin/start.sh
index 483a97b..c7a6e49 100644
--- a/bin/start.sh
+++ b/bin/start.sh
@@ -41,13 +41,13 @@ else
 fi
 echo "JSTORM_HOME =" $JSTORM_HOME
 
-if [ "x$JSTORM_CONF_DIR_PATH" != "x" ]
+if [ "x$JSTORM_CONF_DIR" != "x" ]
 then
-    echo "JSTORM_CONF_DIR_PATH has been set " 
+    echo "JSTORM_CONF_DIR has been set " 
 else
-    export JSTORM_CONF_DIR_PATH=$JSTORM_HOME/conf
+    export JSTORM_CONF_DIR=$JSTORM_HOME/conf
 fi
-echo "JSTORM_CONF_DIR_PATH =" $JSTORM_CONF_DIR_PATH
+echo "JSTORM_CONF_DIR =" $JSTORM_CONF_DIR
 
 
 
@@ -77,16 +77,18 @@ function startJStorm()
 
 
 HOSTNAME=`hostname -i`
-NIMBUS_HOST=`grep "nimbus.host:" $JSTORM_CONF_DIR_PATH/storm.yaml  | grep -w $HOSTNAME`
-SUPERVISOR_HOST_START=`grep "supervisor.host.start:" $JSTORM_CONF_DIR_PATH/storm.yaml  | grep -w "false"`
+NIMBUS_HOST=`grep "nimbus.host:" $JSTORM_CONF_DIR/storm.yaml |grep -v "#" | grep -w $HOSTNAME`
+NIMBUS_HOST_START_SUPERVISOR=`grep "nimbus.host.start.supervisor:" $JSTORM_CONF_DIR/storm.yaml |grep -v "#" | grep -wi "false"`
 
 if [ "X${NIMBUS_HOST}" != "X" ]
 then
 	startJStorm "nimbus" "NimbusServer"
 fi
 
-if [ "X${SUPERVISOR_HOST_START}" == "X" ]
+if [ "X${NIMBUS_HOST}" != "X" ] && [ "X${NIMBUS_HOST_START_SUPERVISOR}" != "X" ]
 then
+	echo "Skip start Supervisor on nimbus host"
+else
 	startJStorm "supervisor" "Supervisor"
 fi
 

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/conf/client_logback.xml
----------------------------------------------------------------------
diff --git a/conf/client_logback.xml b/conf/client_logback.xml
index 27799bf..2ed3445 100755
--- a/conf/client_logback.xml
+++ b/conf/client_logback.xml
@@ -23,10 +23,11 @@
 		</encoder>
 	</appender>
 	<logger name="org.apache.zookeeper" level="ERROR" />
+	<logger name="org.apache.curator" level="ERROR" />
 	<logger name="com.netflix.curator" level="ERROR" />
-	<logger name="com.alibaba.jstorm.common.metric" level="ERROR" />	
-	<logger name="com.alibaba.jstorm.daemon.nimbus.TopologyMetricsRunnable" level="ERROR" />
-	<logger name="com.alibaba.jstorm.metric" level="ERROR" />
+	<logger name="com.alibaba.jstorm.common.metric" level="INFO" />
+	<logger name="com.alibaba.jstorm.daemon.nimbus.TopologyMetricsRunnable" level="INFO" />
+	<logger name="com.alibaba.jstorm.metric" level="INFO" />
 
 	<root level="INFO">
 		<appender-ref ref="A1" />

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/conf/jstorm.log4j.properties
----------------------------------------------------------------------
diff --git a/conf/jstorm.log4j.properties b/conf/jstorm.log4j.properties
index 7a3700e..3d67db9 100755
--- a/conf/jstorm.log4j.properties
+++ b/conf/jstorm.log4j.properties
@@ -33,7 +33,7 @@ log4j.appender.stdout.layout.ConversionPattern =  [%p  %d{yyyy-MM-dd HH:mm:ss} %
 
 ### output to file ###
 log4j.appender.D = org.apache.log4j.RollingFileAppender
-log4j.appender.D.File = ${jstorm.home}/logs/${logfile.name}
+log4j.appender.D.File = ${jstorm.log.dir}/${logfile.name}
 log4j.appender.D.Append = true
 log4j.appender.D.Threshold = INFO
 log4j.appender.D.MaxFileSize=1GB
@@ -54,7 +54,7 @@ log4j.logger.com.alibaba.jstorm.metric= INFO, M
 log4j.additivity.com.alibaba.jstorm.metric=false
 
 log4j.appender.M = org.apache.log4j.RollingFileAppender
-log4j.appender.M.File = ${jstorm.home}/logs/${logfile.name}.metrics
+log4j.appender.M.File = ${jstorm.log.dir}/${logfile.name}.metrics
 log4j.appender.M.Append = true
 log4j.appender.M.Threshold = INFO 
 log4j.appender.M.MaxFileSize=100MB

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/conf/jstorm.logback.xml
----------------------------------------------------------------------
diff --git a/conf/jstorm.logback.xml b/conf/jstorm.logback.xml
index 0b85a00..419565a 100755
--- a/conf/jstorm.logback.xml
+++ b/conf/jstorm.logback.xml
@@ -17,84 +17,76 @@
 -->
 
 <configuration scan="true" scanPeriod="60 seconds">
-	<appender name="A1"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${jstorm.home}/logs/${logfile.name}</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${jstorm.home}/logs/${logfile.name}.%i</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>5</maxIndex>
-		</rollingPolicy>
+    <appender name="A1" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${jstorm.log.dir}/${topology.name:-.}/${logfile.name}</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${jstorm.log.dir}/${topology.name:-.}/${logfile.name}.%i</fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>5</maxIndex>
+        </rollingPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>1GB</maxFileSize>
-		</triggeringPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>1GB</maxFileSize>
+        </triggeringPolicy>
 
-		<encoder>
-			<pattern>[%p %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L %t] %m%n</pattern>
+        <encoder>
+            <pattern>[%p %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L %t] %m%n</pattern>
+        </encoder>
+    </appender>
 
-		</encoder>
-	</appender>
+    <appender name="METRICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${jstorm.log.dir}/${topology.name:-.}/${logfile.name}.metrics</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${jstorm.log.dir}/${topology.name:-.}/${logfile.name}.metrics.%i</fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>5</maxIndex>
+        </rollingPolicy>
 
-	<appender name="METRICS"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${jstorm.home}/logs/${logfile.name}.metrics</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-			<fileNamePattern>${jstorm.home}/logs/${logfile.name}.metrics.%i</fileNamePattern>
-			<minIndex>1</minIndex>
-			<maxIndex>5</maxIndex>
-		</rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>100MB</maxFileSize>
+        </triggeringPolicy>
 
-		<triggeringPolicy
-			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-			<maxFileSize>100MB</maxFileSize>
-		</triggeringPolicy>
+        <encoder>
+            <!--<pattern>[%p %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L %t] %m%n</pattern>-->
+            <pattern>[%d{yyyy-MM-dd HH:mm:ss} %t] %m%n</pattern>
+        </encoder>
+    </appender>
 
-		<encoder>
-			<pattern>[%p %d{yyyy-MM-dd HH:mm:ss} %c{1}:%L %t] %m%n</pattern>
-		</encoder>
-	</appender>
+    <root level="INFO">
+        <appender-ref ref="A1"/>
+    </root>
+    <logger name="org.apache.zookeeper" level="ERROR" />
+    <logger name="org.apache.curator" level="ERROR" />
+    <logger name="com.netflix.curator" level="ERROR" />
 
-	<root level="INFO">
-		<appender-ref ref="A1" />
-	</root>
+    <logger name="com.alibaba.jstorm" additivity="false">
+        <level value="INFO"/>
+        <appender-ref ref="A1"/>
+    </logger>
 
-	<logger name="com.alibaba.jstorm"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="A1" />
-	</logger>
+    <logger name="com.alibaba.jstorm.common.metric" additivity="false">
+        <level value="INFO"/>
+        <appender-ref ref="METRICS"/>
+    </logger>
 
-	<logger name="com.alibaba.jstorm.common.metric"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="METRICS" />
-	</logger>
-	
-	<logger name="com.alibaba.jstorm.task.heartbeat"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="METRICS" />
-	</logger>
-	
-	<logger name="com.alibaba.jstorm.daemon.worker.hearbeat"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="METRICS" />
-	</logger>
-	
-	<logger name="com.alibaba.jstorm.daemon.nimbus.TopologyMetricsRunnable"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="METRICS" />
-	</logger>
-	
-	<logger name="com.alibaba.jstorm.metric"
-		additivity="false">
-		<level value="INFO" />
-		<appender-ref ref="METRICS" />
-	</logger>
+    <logger name="com.alibaba.jstorm.task.heartbeat" additivity="false">
+        <level value="WARN"/>
+        <appender-ref ref="METRICS"/>
+    </logger>
 
+    <logger name="com.alibaba.jstorm.daemon.worker.hearbeat" additivity="false">
+        <level value="WARN"/>
+        <appender-ref ref="METRICS"/>
+    </logger>
+
+    <logger name="com.alibaba.jstorm.daemon.nimbus.metric" additivity="false">
+        <level value="INFO"/>
+        <appender-ref ref="METRICS"/>
+    </logger>
+
+    <logger name="com.alibaba.jstorm.metric" additivity="false">
+        <level value="INFO"/>
+        <appender-ref ref="METRICS"/>
+    </logger>
 </configuration>
  
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/conf/storm.yaml
----------------------------------------------------------------------
diff --git a/conf/storm.yaml b/conf/storm.yaml
index c45d850..2ec2303 100755
--- a/conf/storm.yaml
+++ b/conf/storm.yaml
@@ -20,30 +20,36 @@
      - "localhost"
 
  storm.zookeeper.root: "/jstorm"
- 
- #nimbus.host is being used by $JSTORM_HOME/bin/start.sh
+
+# cluster.name: "default"
+
+ #nimbus.host/nimbus.host.start.supervisor is being used by $JSTORM_HOME/bin/start.sh
  #it only support IP, please don't set hostname
- # For example 
+ # For example
  # nimbus.host: "10.132.168.10, 10.132.168.45"
  #nimbus.host: "localhost"
+ #nimbus.host.start.supervisor: false
  
 # %JSTORM_HOME% is the jstorm home directory
  storm.local.dir: "%JSTORM_HOME%/data"
+ # please set absolute path, default path is JSTORM_HOME/logs
+# jstorm.log.dir: "absolute path"
  
- java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"
+# java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib"
 
 
 
 # if supervisor.slots.ports is null, 
 # the port list will be generated by cpu cores and system memory size 
-# for example, if there are 24 cpu cores and supervisor.slots.port.cpu.weight is 1.2
-# then there are 24/1.2 ports for cpu, 
-# there are system_physical_memory_size/worker.memory.size ports for memory 
-# The final port number is min(cpu_ports, memory_port)
- supervisor.slots.ports.base: 6800
- supervisor.slots.port.cpu.weight: 1
- supervisor.slots.ports: null
-#supervisor.slots.ports:
+# for example, 
+# there are cpu_num = system_physical_cpu_num/supervisor.slots.port.cpu.weight
+# there are mem_num = system_physical_memory_size/(worker.memory.size * supervisor.slots.port.mem.weight) 
+# The final port number is min(cpu_num, mem_num)
+# supervisor.slots.ports.base: 6800
+# supervisor.slots.port.cpu.weight: 1.2
+# supervisor.slots.port.mem.weight: 0.7
+# supervisor.slots.ports: null
+# supervisor.slots.ports:
 #    - 6800
 #    - 6801
 #    - 6802
@@ -52,7 +58,7 @@
 # Default disable user-define classloader
 # If there are jar conflict between jstorm and application, 
 # please enable it 
- topology.enable.classloader: false
+# topology.enable.classloader: false
 
 # enable supervisor use cgroup to make resource isolation
 # Before enable it, you should make sure:
@@ -61,22 +67,22 @@
 #	3. You should start your supervisor on root
 # You can get more about cgroup:
 #   http://t.cn/8s7nexU
- supervisor.enable.cgroup: false
+# supervisor.enable.cgroup: false
 
 
 ### Netty will send multiple messages in one batch  
 ### Setting true will improve throughput, but more latency
- storm.messaging.netty.transfer.async.batch: true
+# storm.messaging.netty.transfer.async.batch: true
 
 ### if this setting  is true, it will use disruptor as internal queue, which size is limited
 ### otherwise, it will use LinkedBlockingDeque as internal queue , which size is unlimited
 ### generally when this setting is true, the topology will be more stable,
 ### but when there is a data loop flow, for example A -> B -> C -> A
 ### and the data flow occur blocking, please set this as false
- topology.buffer.size.limited: true
+# topology.buffer.size.limited: true
  
 ### default worker memory size, unit is byte
- worker.memory.size: 2147483648
+# worker.memory.size: 2147483648
 
 # Metrics Monitor
 # topology.performance.metrics: it is the switch flag for performance 
@@ -85,8 +91,8 @@
 # topology.alimonitor.metrics.post: If it is disable, metrics data
 # will only be printed to log. If it is enabled, the metrics data will be
 # posted to alimonitor besides printing to log.
- topology.performance.metrics: true
- topology.alimonitor.metrics.post: false
+# topology.performance.metrics: true
+# topology.alimonitor.metrics.post: false
 
 # UI MultiCluster
 # Following is an example of multicluster UI configuration

http://git-wip-us.apache.org/repos/asf/storm/blob/7eaf0651/history.md
----------------------------------------------------------------------
diff --git a/history.md b/history.md
index efc2056..bfdf75f 100755
--- a/history.md
+++ b/history.md
@@ -1,22 +1,93 @@
 [JStorm English introduction](http://42.121.19.155/jstorm/JStorm-introduce-en.pptx)
 [JStorm Chinese introduction](http://42.121.19.155/jstorm/JStorm-introduce.pptx)
 
-#Release 2.0.4-SNAPSHOT
+# Release 2.1.0
+
+## New features
+
+1. Totally redesign Web UI
+	1.	Make the UI more beatiful
+	1.	Improve Web UI speed much.
+	1.	Add Cluster/Topology Level Summarized Metrics in recent 30 minutes.
+	1.	Add DAG in the Web UI, support Uer Interaction to get key information such as emit, tuple lifecycle, tps
+1. Redesign Metrics/Monitor System
+	1.	New metrics core, support sample with more metric, avoid noise, merge metrics automatically for user.
+	1.	No metrics will be stored in ZK
+	1.	Support metrics HA
+	1.	Add more useful metrics, such as tuple lifecycle, netty metrics, disk space etc. accurately get worker memory
+	1.	Support external storage plugin to store metrics.
+1. Implement Smart BackPressure 
+	1.	Smart Backpressure, the dataflow will be more stable, avoid noise to trigger
+	1.	Easy to manual control Backpressure
+1. Implement TopologyMaster
+	1.	Redesign hearbeat mechanism, easily support 6000+ tasks
+	1.	Collect all task's metrics, do merge job, release Nimbus pressure.
+	1.	Central Control Coordinator, issue control command
+1. Redesign ZK usage, one set of ZK support more 2000+ hardware nodes.
+	1.	No dynamic data in ZK, such as heartbeat, metrics, monitor status.
+	1.	Nimbus reduce visiting ZK frequence when serve thrift API.
+	1.	Reduce visiting ZK frequence, merge some task level ZK node.
+	1.	Reduce visiting ZK frequence, remove useless ZK node, such as empty taskerror node
+	1.	Tuning ZK cache  
+	1.  Optimize ZK reconnect mechanism
+1. Tuning Executor Batch performance
+	1.	Add smart batch size setting
+	1.	Remove memory copy
+	1.	Directly issue tuple without batch for internal channel
+	1.	Set the default Serialize/Deserialize method as Kryo
+1. Set the default Serialized/Deserialized method as Kryo  to improve performance.
+1. Support dynamic reload binary/configuration
+1. Tuning LocalShuffle performance, Set 3 level priority, local worker, local node, other node, add dynamic check queue status, connection status.
+1. Optimize Nimbus HA, only the highest priority nimbuses can be promoted as master 
+
+## Improvement
+1. Supervisor automatically dump worker jstack/jmap, when worker's status is invalid.
+1. Supervisor can generate more ports according to memory.
+1. Supervisor can download binary more time.
+1. Support set logdir in configuration
+1. Add configuration "nimbus.host.start.supervisor"
+1. Add supervisor/nimbus/drpc gc log
+1. Adjust jvm parameter 1. set -Xmn 1/2 of heap memory 2. set PermSize to 1/32 and MaxPermSize 1/16 of heap memory; 3. set -Xms by "worker.memory.min.size"。
+1. Refine ZK error schema, when worker is dead, UI will report error
+1. Add function to zktool utility, support remove all topology znodes, support list 
+1. Optimize netty client.
+1. Dynamic update connected task status by network connection, not by ZK znode.
+1. Add configuration "topology.enable.metrics".
+1. Classify all topology log into one directory by topologyName.
+
+## Bug fix
+1. Skip download same binary when assigment has been changed.
+1. Skip start worker when binary is invalid.
+1. Use correct configuration map in a lot of worker thread
+1. In the first step Nimbus will check topologyName or not when submit topology
+1. Support fieldGrouping for Object[]
+1. For drpc single instance under one configuration
+1. In the client topologyNameExists interface,directly use trhift api
+1. Fix failed to restart due to topology cleanup thread's competition
+1. Fix the bug that backpressure might be lost when trigger bolt was failed.
+1. Fixed the bug that DefaultMetricUploader doesn't delete metrics data in rocksdb, causing new metrics data cannot be appended.
+
+## Deploy and scripts
+1. Optimize cleandisk.sh, avoid delete useful worker log
+
+# Release 2.0.4-SNAPSHOT
+
 ## New features
-1.Redesign Metric/Monitor system, new RollingWindow/Metrics/NettyMetrics, all data will send/recv through thrift
-2.Redesign Web-UI, the new Web-UI code is clear and clean
-3.Add NimbusCache Layer, using RocksDB and TimeCacheWindow
-4.Refactoring all ZK structure and ZK operation
-5.Refactoring all thrift structure
-6.Merge jstorm-client/jstorm-client-extension/jstorm-core 3 modules into jstorm-core
-7.set the dependency version same as storm
-8.Sync apache-storm-0.10.0-beta1 all java code
-9.Switch log system to logback
-10.Upgrade thrift to apache thrift 0.9.2
+1. Redesign Metric/Monitor system, new RollingWindow/Metrics/NettyMetrics, all data will send/recv through thrift
+2. Redesign Web-UI, the new Web-UI code is clear and clean
+3. Add NimbusCache Layer, using RocksDB and TimeCacheWindow
+4. Refactoring all ZK structure and ZK operation
+5. Refactoring all thrift structure
+6. Merge jstorm-client/jstorm-client-extension/jstorm-core 3 modules into jstorm-core
+7. Set the dependency version same as storm
+8. Sync apache-storm-0.10.0-beta1 all java code
+9. Switch log system to logback
+10. Upgrade thrift to apache thrift 0.9.2
 11. Performance tuning Huge topology more than 600 workers or 2000 tasks
 12. Require jdk7 or higher
 
-#Release 0.9.7.1
+# Release 0.9.7.1
+
 ## New Features
 1. Batch the tuples whose target task is same, before sending out(task.batch.tuple=true,task.msg.batch.size=4).  
 2. LocalFirst grouping is updated. If all local tasks are busy, the tasks of outside nodes will be chosen as target task instead of waiting on the busy local task.
@@ -29,21 +100,25 @@
 9. Nimbus or Supervisor suicide when the local ip is 127.0.0.0
 10. Add user-define-scheduler example
 11. Merge Supervisor's syncSupervisor and syncProcess
+
 ## Bug Fix
 1. Improve the GC setting.
 2. Fix the bug that task heartbeat might not be updated timely in some scenarioes.  
 3. Fix the bug that the reconnection operation might be stick for a unexpected period when the connection to remote worker is shutdown and some messages are buffer in netty.   
 4. Reuse thrift client when submit topology
 5. Avoid repeatedly download binary when failed to start worker.
+
 ## Changed setting
 1. Change task's heartbeat timeout to 4 minutes
 2. Set the netty client thread pool(clientScheduleService) size as 5 
+
 ## Deploy and scripts
 1. Improve cleandisk.sh, avoid delete current directory and /tmp/hsperfdata_admin
 2. Add executable attribute for the script under example
 3. Add parameter to stat.sh, which can be used to start supervisor or not. This is useful under virtual 
 
-#Release 0.9.7
+# Release 0.9.7
+
 ## New Features
 1. Support dynamic scale-out/scale-in of worker, spout, bolt or acker without stopping the service of topology.
 2. When enable cgroup, Support the upper limit control of cpu core usage. Default setting is 3 cpu cores.
@@ -56,6 +131,7 @@
 9. Add thrift api getVersion, it will be used check between the client jstorm version and the server jstorm version.  
 10. Update the metrics' structure to Alimonitor
 11. Add exclude-jar parameter into jstorm.py, which avoid class conflict when submit topology
+
 ## Bug Fix
 1. Fix the no response problem of supervisor process when subimtting big amout topologys in a short time
 2. When submitting two or more topologys at the same time, the later one might be failed.
@@ -67,17 +143,20 @@
 8. Fix failed to read ZK monitor znode through zktool
 9. Fix exception when enable classload and local mode
 10. Fix duplicate log when enable user-defined logback in local mode
+
 ## Changed Setting
 1. Set Nimbus jvm memory size as 4G
 2. Set hearbeat from supervisor to nimbus timeout from 60s to 180s
 3. In order to avoid OOM, set storm.messaging.netty.max.pending as 4
 4. Set task queue size as 1024, worker's total send/receive queue size as 2048
+
 ## Deploy and scripts
 1. Add rpm build spec
 2. Add deploy files of jstorm for rpm package building
 3. Enable the cleandisk cronjob every hour, reserve coredump for only one hour.
 
-#Release 0.9.6.3
+# Release 0.9.6.3
+
 ## New features
 1. Implement tick tuple
 2. Support logback
@@ -87,6 +166,7 @@
 6. Support the use of ip and hostname at the same for user defined schedule
 7. Support junit test for local mode
 8. Enable client command(e.g. jstorm jar) to load self-defined storm.yaml
+
 ## Bug fix
 1. Add activate and deactivate api of spout, which are used in nextTuple prepare phase
 2. Update the support of multi language
@@ -115,7 +195,7 @@
 25. Config local temporay ports when rpm installation
 26. Add noarch rpm package
 
-#Release 0.9.6.2
+# Release 0.9.6.2
 1. Add option to switch between BlockingQueue and Disruptor
 2. Fix the bug which under sync netty mode, client failed to send message to server 
 3. Fix the bug let web UI can dispaly 0.9.6.1 cluster
@@ -125,7 +205,7 @@
 7. Add the validation of topology name, component name... Only A-Z, a-z, 0-9, '_', '-', '.' are valid now.
 8. Fix the bug close thrift client
 
-#Release 0.9.6.2-rc
+# Release 0.9.6.2-rc
 1. Improve user experience from Web UI
 1.1 Add jstack link
 1.2 Add worker log link in supervisor page
@@ -145,7 +225,7 @@
 11. Add tcp option "reuseAddress" in netty framework
 12. Fix the bug: When spout does not implement the ICommitterTrident interface, MasterCoordinatorSpout will stick on commit phase.
 
-#Release 0.9.6.2-rc
+# Release 0.9.6.2-rc
 1. Improve user experience from Web UI
 1.1 Add jstack link
 1.2 Add worker log link in supervisor page
@@ -165,7 +245,7 @@
 11. Add tcp option "reuseAddress" in netty framework
 12. Fix the bug: When spout does not implement the ICommitterTrident interface, MasterCoordinatorSpout will stick on commit phase.
 
-#Release 0.9.6.1
+# Release 0.9.6.1
 1. Add management of multiclusters to Web UI. Added management tools for multiclusters in WebUI.
 2. Merged Trident API from storm-0.9.3
 3. Replaced gson with fastjson
@@ -191,7 +271,7 @@
 23. Support assign topology to user-defined supervisors
 
 
-#Release 0.9.6
+# Release 0.9.6
 1. Update UI 
   - Display the metrics information of task and worker
   - Add warning flag when errors occur for a topology
@@ -205,7 +285,7 @@
 8. Add closing channel check in netty client to avoid double close
 9. Add connecting check in netty client to avoid connecting one server twice at one time 
 
-#Release 0.9.5.1
+# Release 0.9.5.1
 1. Add netty sync mode
 2. Add block operation in netty async mode
 3. Replace exception with Throwable in executor layer
@@ -213,16 +293,18 @@
 5. Add more netty junit test
 6. Add log when queue is full
 
-#Release 0.9.5
-##Big feature:
+# Release 0.9.5
+
+## Big feature:
 1. Redesign scheduler arithmetic, basing worker not task .
 
 ## Bug fix
 1. Fix disruptor use too much cpu
 2. Add target NettyServer log when f1ail to send data by netty
 
-#Release 0.9.4.1
-##Bug fix:
+# Release 0.9.4.1
+
+## Bug fix:
 1. Improve speed between tasks who is running in one worker
 2. Fix wrong timeout seconds
 3. Add checking port when worker initialize and begin to kill old worker
@@ -241,7 +323,7 @@
 
 
 
-#Release 0.9.4
+# Release 0.9.4
 
 ## Big features
 1. Add transaction programming mode
@@ -257,7 +339,7 @@
 
 
 
-##Bug fix:
+## Bug fix:
 1. Setting buffer size  when upload jar
 2. Add lock between ZK watch and timer thread when refresh connection
 3. Enable nimbus monitor thread only when topology is running in cluster mode
@@ -265,7 +347,7 @@
 5. classloader fix when both parent and current classloader load the same class
 6. Fix log view null pointer exception
 
-#Release 0.9.3.1
+# Release 0.9.3.1
 
 ## Enhancement
 1. switch apache thrift7 to storm thrift7
@@ -276,7 +358,8 @@
 6. Set gc dump dir as log's dir
 
 
-#Release 0.9.3
+# Release 0.9.3
+
 ## New feature
 1. Support Aliyun Apsara/Hadoop Yarn
 
@@ -308,7 +391,8 @@
  
 
 
-#Release 0.9.2
+# Release 0.9.2
+
 ## New feature
 1. Support LocalCluster/LocalDrpc mode, support debugging topology under local mode
 2. Support CGroups, assigning CPU in hardware level.