blob: 75e99d4daefbf36852b0d7d2960e93ed20db9dce [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Apache Storm</title>
<description></description>
<link>http://storm.apache.org/</link>
<atom:link href="http://storm.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Wed, 06 Jan 2016 14:21:20 -0800</pubDate>
<lastBuildDate>Wed, 06 Jan 2016 14:21:20 -0800</lastBuildDate>
<generator>Jekyll v3.0.1</generator>
<item>
<title>Storm 0.9.6 released</title>
<description>&lt;p&gt;The Apache Storm community is pleased to announce that version 0.9.6 has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a maintenance release that includes a number of important bug fixes that improve Storm&amp;#39;s stability and fault tolerance. We encourage users of previous versions to upgrade to this latest release.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-changelog&quot;&gt;Full Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-1027: Use overflow buffer for emitting metrics&lt;/li&gt;
&lt;li&gt;STORM-996: netty-unit-tests/test-batch demonstrates out-of-order delivery&lt;/li&gt;
&lt;li&gt;STORM-1056: allow supervisor log filename to be configurable via ENV variable&lt;/li&gt;
&lt;li&gt;STORM-1051: Netty Client.java&amp;#39;s flushMessages produces a NullPointerException&lt;/li&gt;
&lt;li&gt;STORM-763: nimbus reassigned worker A to another machine, but other worker&amp;#39;s netty client can&amp;#39;t connect to the new worker A&lt;/li&gt;
&lt;li&gt;STORM-935: Update Disruptor queue version to 2.10.4&lt;/li&gt;
&lt;li&gt;STORM-503: Short disruptor queue wait time leads to high CPU usage when idle&lt;/li&gt;
&lt;li&gt;STORM-728: Put emitted and transferred stats under correct columns&lt;/li&gt;
&lt;li&gt;STORM-643: KafkaUtils repeatedly fetches messages whose offset is out of range&lt;/li&gt;
&lt;li&gt;STORM-933: NullPointerException during KafkaSpout deactivation&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Thu, 05 Nov 2015 00:00:00 -0800</pubDate>
<link>http://storm.apache.org/2015/11/05/storm096-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2015/11/05/storm096-released.html</guid>
</item>
<item>
<title>Storm 0.10.0 released</title>
<description>&lt;p&gt;The Apache Storm community is pleased to announce that version 0.10.0 Stable has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release includes a number of improvements and bug fixes identified in the previous beta release. For a description of the new features included in the 0.10.0 release, please &lt;a href=&quot;/2015/06/15/storm0100-beta-released.html&quot;&gt;see the previous announcement of 0.10.0-beta1&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-changelog&quot;&gt;Full Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-1108: Fix NPE in simulated time&lt;/li&gt;
&lt;li&gt;STORM-1106: Netty should not limit attempts to reconnect&lt;/li&gt;
&lt;li&gt;STORM-1099: Fix worker childopts as arraylist of strings&lt;/li&gt;
&lt;li&gt;STORM-1096: Fix some issues with impersonation on the UI&lt;/li&gt;
&lt;li&gt;STORM-912: Support SSL on Logviewer&lt;/li&gt;
&lt;li&gt;STORM-1094: advance kafka offset when deserializer yields no object&lt;/li&gt;
&lt;li&gt;STORM-1066: Specify current directory when supervisor launches a worker&lt;/li&gt;
&lt;li&gt;STORM-1012: Shaded everything that was not already shaded&lt;/li&gt;
&lt;li&gt;STORM-967: Shaded everything that was not already shaded&lt;/li&gt;
&lt;li&gt;STORM-922: Shaded everything that was not already shaded&lt;/li&gt;
&lt;li&gt;STORM-1042: Shaded everything that was not already shaded&lt;/li&gt;
&lt;li&gt;STORM-1026: Adding external classpath elements does not work&lt;/li&gt;
&lt;li&gt;STORM-1055: storm-jdbc README needs fixes and context&lt;/li&gt;
&lt;li&gt;STORM-1044: Setting dop to zero does not raise an error&lt;/li&gt;
&lt;li&gt;STORM-1050: Topologies with same name run on one cluster&lt;/li&gt;
&lt;li&gt;STORM-1005: Supervisor do not get running workers after restart.&lt;/li&gt;
&lt;li&gt;STORM-803: Cleanup travis-ci build and logs&lt;/li&gt;
&lt;li&gt;STORM-1027: Use overflow buffer for emitting metrics&lt;/li&gt;
&lt;li&gt;STORM-1024: log4j changes leaving ${sys:storm.log.dir} under STORM_HOME dir&lt;/li&gt;
&lt;li&gt;STORM-944: storm-hive pom.xml has a dependency conflict with calcite&lt;/li&gt;
&lt;li&gt;STORM-994: Connection leak between nimbus and supervisors&lt;/li&gt;
&lt;li&gt;STORM-1001: Undefined STORM_EXT_CLASSPATH adds &amp;#39;::&amp;#39; to classpath of workers&lt;/li&gt;
&lt;li&gt;STORM-977: Incorrect signal (-9) when as-user is true&lt;/li&gt;
&lt;li&gt;STORM-843: [storm-redis] Add Javadoc to storm-redis&lt;/li&gt;
&lt;li&gt;STORM-866: Use storm.log.dir instead of storm.home in log4j2 config&lt;/li&gt;
&lt;li&gt;STORM-810: PartitionManager in storm-kafka should commit latest offset before close&lt;/li&gt;
&lt;li&gt;STORM-928: Add sources-&amp;gt;streams-&amp;gt;fields map to Multi-Lang Handshake&lt;/li&gt;
&lt;li&gt;STORM-945: &lt;DefaultRolloverStrategy&gt; element is not a policy,and should not be putted in the &lt;Policies&gt; element.&lt;/li&gt;
&lt;li&gt;STORM-857: create logs metadata dir when running securely&lt;/li&gt;
&lt;li&gt;STORM-793: Made change to logviewer.clj in order to remove the invalid http 500 response&lt;/li&gt;
&lt;li&gt;STORM-139: hashCode does not work for byte[]&lt;/li&gt;
&lt;li&gt;STORM-860: UI: while topology is transitioned to killed, &amp;quot;Activate&amp;quot; button is enabled but not functioning&lt;/li&gt;
&lt;li&gt;STORM-966: ConfigValidation.DoubleValidator doesn&amp;#39;t really validate whether the type of the object is a double&lt;/li&gt;
&lt;li&gt;STORM-742: Let ShellBolt treat all messages to update heartbeat&lt;/li&gt;
&lt;li&gt;STORM-992: A bug in the timer.clj might cause unexpected delay to schedule new event&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Thu, 05 Nov 2015 00:00:00 -0800</pubDate>
<link>http://storm.apache.org/2015/11/05/storm0100-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2015/11/05/storm0100-released.html</guid>
</item>
<item>
<title>Storm 0.10.0 Beta Released</title>
<description>&lt;p&gt;Fast on the heals of the 0.9.5 maintenance release, the Apache Storm community is pleased to announce that Apache Storm 0.10.0-beta has been released and is now available on &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Aside from many stability and performance improvements, this release includes a number of important new features, some of which are highlighted below.&lt;/p&gt;
&lt;h2 id=&quot;secure-multi-tenant-deployment&quot;&gt;Secure, Multi-Tenant Deployment&lt;/h2&gt;
&lt;p&gt;Much like the early days of Hadoop, Apache Storm originally evolved in an environment where security was not a high-priority concern. Rather, it was assumed that Storm would be deployed to environments suitably cordoned off from security threats. While a large number of users were comfortable setting up their own security measures for Storm (usually at the Firewall/OS level), this proved a hindrance to broader adoption among larger enterprises where security policies prohibited deployment without specific safeguards.&lt;/p&gt;
&lt;p&gt;Yahoo! hosts one of the largest Storm deployments in the world, and their engineering team recognized the need for security early on, so it implemented many of the features necessary to secure its own Apache Storm deployment. Yahoo!, Hortonworks, Symantec, and the broader Apache Storm community have worked together to bring those security innovations into the main Apache Storm code base.&lt;/p&gt;
&lt;p&gt;We are pleased to announce that work is now complete. Some of the highlights of Storm&amp;#39;s new security features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kerberos Authentication with Automatic Credential Push and Renewal&lt;/li&gt;
&lt;li&gt;Pluggable Authorization and ACLs&lt;/li&gt;
&lt;li&gt;Multi-Tenant Scheduling with Per-User isolation and configurable resource limits.&lt;/li&gt;
&lt;li&gt;User Impersonation&lt;/li&gt;
&lt;li&gt;SSL Support for Storm UI, Log Viewer, and DRPC (Distributed Remote Procedure Call)&lt;/li&gt;
&lt;li&gt;Secure integration with other Hadoop Projects (such as ZooKeeper, HDFS, HBase, etc.)&lt;/li&gt;
&lt;li&gt;User isolation (Storm topologies run as the user who submitted them)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details and instructions for securing Storm, please see &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/SECURITY.md&quot;&gt;the security documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;a-foundation-for-rolling-upgrades-and-continuity-of-operations&quot;&gt;A Foundation for Rolling Upgrades and Continuity of Operations&lt;/h2&gt;
&lt;p&gt;In the past, upgrading a Storm cluster could be an arduous process that involved un-deploying existing topologies, removing state from local disk and ZooKeeper, installing the upgrade, and finally redeploying topologies. From an operations perspective, this process was disruptive to say the very least.&lt;/p&gt;
&lt;p&gt;The underlying cause of this headache was rooted in the data format Storm processes used to store both local and distributed state. Between versions, these data structures would change in incompatible ways.&lt;/p&gt;
&lt;p&gt;Beginning with version 0.10.0, this limitation has been eliminated. In the future, upgrading from Storm 0.10.0 to a newer version can be accomplished seamlessly, with zero down time. In fact, for users who use &lt;a href=&quot;https://ambari.apache.org&quot;&gt;Apache Ambari&lt;/a&gt; for cluster provisioning and management, the process can be completely automated.&lt;/p&gt;
&lt;h2 id=&quot;easier-deployment-and-declarative-topology-wiring-with-flux&quot;&gt;Easier Deployment and Declarative Topology Wiring with Flux&lt;/h2&gt;
&lt;p&gt;Apache Storm 0.10.0 now includes Flux, which is a framework and set of utilities that make defining and deploying Storm topologies less painful and developer-intensive. A common pain point mentioned by Storm users is the fact that the wiring for a Topology graph is often tied up in Java code, and that any changes require recompilation and repackaging of the topology jar file. Flux aims to alleviate that pain by allowing you to package all your Storm components in a single jar, and use an external text file to define the layout and configuration of your topologies.&lt;/p&gt;
&lt;p&gt;Some of Flux&amp;#39; features include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Easily configure and deploy Storm topologies (Both Storm core and Micro-batch API) without embedding configuration in your topology code&lt;/li&gt;
&lt;li&gt;Support for existing topology code&lt;/li&gt;
&lt;li&gt;Define Storm Core API (Spouts/Bolts) using a flexible YAML DSL&lt;/li&gt;
&lt;li&gt;YAML DSL support for most Storm components (storm-kafka, storm-hdfs, storm-hbase, etc.)&lt;/li&gt;
&lt;li&gt;Convenient support for multi-lang components&lt;/li&gt;
&lt;li&gt;External property substitution/filtering for easily switching between configurations/environments (similar to Maven-style &lt;code&gt;${variable.name}&lt;/code&gt; substitution)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can read more about Flux on the &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/external/flux/README.md&quot;&gt;Flux documentation page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;partial-key-groupings&quot;&gt;Partial Key Groupings&lt;/h2&gt;
&lt;p&gt;In addition to the standard Stream Groupings Storm has always supported, version 0.10.0 introduces a new grouping named &amp;quot;Partial Key Grouping&amp;quot;. With the Partial Stream Grouping, the tuple stream is partitioned by the fields specified in the grouping, like the Fields Grouping, but are load balanced between two downstream bolts, which provides better utilization of resources when the incoming data is skewed. &lt;/p&gt;
&lt;p&gt;Documentation for the Partial Key Grouping and other stream groupings supported by Storm can be found &lt;a href=&quot;https://storm.apache.org/documentation/Concepts.html&quot;&gt;here&lt;/a&gt;. &lt;a href=&quot;https://melmeric.files.wordpress.com/2014/11/the-power-of-both-choices-practical-load-balancing-for-distributed-stream-processing-engines.pdf&quot;&gt;This research paper&lt;/a&gt; provides additional details regarding how it works and its advantages.&lt;/p&gt;
&lt;h2 id=&quot;improved-logging-framework&quot;&gt;Improved Logging Framework&lt;/h2&gt;
&lt;p&gt;Debugging distributed applications can be difficult, and usually focuses on one main source of information: application log files. But in a very low latency system like Storm where every millisecond counts, logging can be a double-edged sword: If you log too little information you may miss the information you need to solve a problem; log too much and you risk degrading the overall performance of your application as resources are consumed by the logging framework.&lt;/p&gt;
&lt;p&gt;In version 0.10.0 Storm&amp;#39;s logging framework now uses &lt;a href=&quot;http://logging.apache.org/log4j/2.x/&quot;&gt;Apache Log4j 2&lt;/a&gt; which, like Storm&amp;#39;s internal messaging subsystem, uses the extremely performant &lt;a href=&quot;https://lmax-exchange.github.io/disruptor/&quot;&gt;LMAX Disruptor&lt;/a&gt; messaging library. Log4j 2 boast an 18x higher throughput and orders of magnitude lower latency than Storm&amp;#39;s previous logging framework. More efficient resource utilization at the logging level means more resources are available where they matter most: executing your business logic.&lt;/p&gt;
&lt;p&gt;A few of the important features these changes bring include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rolling log files with size, duration, and date-based triggers that are composable&lt;/li&gt;
&lt;li&gt;Dynamic log configuration updates without dropping log messages&lt;/li&gt;
&lt;li&gt;Remote log monitoring and (re)configuration via JMX&lt;/li&gt;
&lt;li&gt;A Syslog/&lt;a href=&quot;https://tools.ietf.org/html/rfc5424&quot;&gt;RFC-5424&lt;/a&gt;-compliant appender.&lt;/li&gt;
&lt;li&gt;Integration with log aggregators such as syslog-ng&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;streaming-ingest-with-apache-hive&quot;&gt;Streaming ingest with Apache Hive&lt;/h2&gt;
&lt;p&gt;Introduced in version 0.13, &lt;a href=&quot;https://hive.apache.org&quot;&gt;Apache Hive&lt;/a&gt; includes a &lt;a href=&quot;https://cwiki.apache.org/confluence/display/Hive/Streaming+Data+Ingest&quot;&gt;Streaming Data Ingest API&lt;/a&gt; that allows data to be written continuously into Hive. The incoming data can be continuously committed in small batches of records into existing Hive partition or table. Once the data is committed its immediately visible to all hive queries.&lt;/p&gt;
&lt;p&gt;Apache Storm 0.10.0 introduces both a Storm Core API bolt implementation
that allows users to stream data from Storm directly into hive. Storm&amp;#39;s Hive integration also includes a &lt;a href=&quot;https://storm.apache.org/documentation/Trident-state&quot;&gt;State&lt;/a&gt; implementation for Storm&amp;#39;s Micro-batching/Transactional API (Trident) that allows you to write to Hive from a micro-batch/transactional topology and supports exactly-once semantics for data persistence.&lt;/p&gt;
&lt;p&gt;For more information on Storm&amp;#39;s Hive integration, see the &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/external/storm-hive/README.md&quot;&gt;storm-hive documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;microsoft-azure-event-hubs-integration&quot;&gt;Microsoft Azure Event Hubs Integration&lt;/h2&gt;
&lt;p&gt;With Microsoft Azure&amp;#39;s &lt;a href=&quot;https://azure.microsoft.com/en-us/documentation/articles/hdinsight-storm-overview/&quot;&gt;support for running Storm on HDInsight&lt;/a&gt;, Storm is now a first class citizen of the Azure cloud computing platform. To better support Storm integration with Azure services, Microsoft engineers have contributed several components that allow Storm to integrate directly with &lt;a href=&quot;http://azure.microsoft.com/en-us/services/event-hubs/&quot;&gt;Microsoft Azure Event Hubs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Storm&amp;#39;s Event Hubs integration includes both spout and bolt implementations for reading from, and writing to Event Hubs. The Event Hub integration also includes a Micro-batching/Transactional (Trident) spout implementation that supports fully fault-tolerant and reliable processing, as well as support for exactly-once message processing semantics.&lt;/p&gt;
&lt;h2 id=&quot;redis-support&quot;&gt;Redis Support&lt;/h2&gt;
&lt;p&gt;Apache Storm 0.10.0 also introduces support for the &lt;a href=&quot;http://redis.io&quot;&gt;Redis&lt;/a&gt; data structure server. Storm&amp;#39;s Redis support includes bolt implementations for both writing to and querying Redis from a Storm topology, and is easily extended for custom use cases. For Storm&amp;#39;s micro-batching/transactional API, the Redis support includes both &lt;a href=&quot;https://storm.apache.org/documentation/Trident-state.html&quot;&gt;Trident State and MapState&lt;/a&gt; implementations for fault-tolerant state management with Redis.&lt;/p&gt;
&lt;p&gt;Further information can be found in the &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/external/storm-redis/README.md&quot;&gt;storm-redis documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;jdbc-rdbms-integration&quot;&gt;JDBC/RDBMS Integration&lt;/h2&gt;
&lt;p&gt;Many stream processing data flows require accessing data from or writing data to a relational data store. Storm 0.10.0 introduces highly flexible and customizable support for integrating with virtually any JDBC-compliant database.&lt;/p&gt;
&lt;p&gt;The Storm-JDBC package includes core Storm bolt and Trident state implementations that allow a storm topology to either insert Storm tuple data into a database table or execute select queries against a database to enrich streaming data in a storm topology.&lt;/p&gt;
&lt;p&gt;Further details and instructions can be found in the &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/external/storm-jdbc/README.md&quot;&gt;Storm-JDBC documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;reduced-dependency-conflicts&quot;&gt;Reduced Dependency Conflicts&lt;/h2&gt;
&lt;p&gt;In previous Storm releases, it was not uncommon for users&amp;#39; topology dependencies to conflict with the libraries used by Storm. In Storm 0.9.3 several dependency packages that were common sources of conflicts have been package-relocated (shaded) to avoid this situation. In 0.10.0 this list has been expanded.&lt;/p&gt;
&lt;p&gt;Developers are free to use the Storm-packaged versions, or supply their own version. &lt;/p&gt;
&lt;p&gt;The full list of Storm&amp;#39;s package relocations can be found &lt;a href=&quot;https://github.com/apache/storm/blob/v0.10.0-beta/storm-core/pom.xml#L439&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;future-work&quot;&gt;Future Work&lt;/h2&gt;
&lt;p&gt;While the 0.10.0 release is an important milestone in the evolution of Apache Storm, the Storm community is actively working on new improvements, both near and long term, and continuously exploring the realm of the possible.&lt;/p&gt;
&lt;p&gt;Twitter recently announced the Heron project, which claims to provide substantial performance improvements while maintaining 100% API compatibility with Storm. The corresponding research paper provides additional details regarding the architectural improvements. The fact that Twitter chose to maintain API compatibility with Storm is a testament to the power and flexibility of that API. Twitter has also expressed a desire to share their experiences and work with the Apache Storm community.&lt;/p&gt;
&lt;p&gt;A number of concepts expressed in the Heron paper were already in the implementation stage by the Storm community even before it was published, and we look forward to working with Twitter to bring those and other improvements to Storm.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are very much valued and appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-change-log&quot;&gt;Full Change Log&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-856: use serialized value of delay secs for topo actions&lt;/li&gt;
&lt;li&gt;STORM-852: Replaced Apache Log4j Logger with SLF4J API&lt;/li&gt;
&lt;li&gt;STORM-813: Change storm-starter&amp;#39;s README so that it explains mvn exec:java cannot run multilang topology&lt;/li&gt;
&lt;li&gt;STORM-853: Fix upload API to handle multi-args properly&lt;/li&gt;
&lt;li&gt;STORM-850: Convert storm-core&amp;#39;s logback-test.xml to log4j2-test.xml&lt;/li&gt;
&lt;li&gt;STORM-848: Shade external dependencies&lt;/li&gt;
&lt;li&gt;STORM-849: Add storm-redis to storm binary distribution&lt;/li&gt;
&lt;li&gt;STORM-760: Use JSON for serialized conf&lt;/li&gt;
&lt;li&gt;STORM-833: Logging framework logback -&amp;gt; log4j 2.x&lt;/li&gt;
&lt;li&gt;STORM-842: Drop Support for Java 1.6&lt;/li&gt;
&lt;li&gt;STORM-835: Netty Client hold batch object until io operation complete&lt;/li&gt;
&lt;li&gt;STORM-827: Allow AutoTGT to work with storm-hdfs too.&lt;/li&gt;
&lt;li&gt;STORM-821: Adding connection provider interface to decouple jdbc connector from a single connection pooling implementation.&lt;/li&gt;
&lt;li&gt;STORM-818: storm-eventhubs configuration improvement and refactoring&lt;/li&gt;
&lt;li&gt;STORM-816: maven-gpg-plugin does not work with gpg 2.1&lt;/li&gt;
&lt;li&gt;STORM-811: remove old metastor_db before running tests again.&lt;/li&gt;
&lt;li&gt;STORM-808: allow null to be parsed as null&lt;/li&gt;
&lt;li&gt;STORM-807: quote args to storm.py correctly&lt;/li&gt;
&lt;li&gt;STORM-801: Add Travis CI badge to README&lt;/li&gt;
&lt;li&gt;STORM-797: DisruptorQueueTest has some race conditions in it.&lt;/li&gt;
&lt;li&gt;STORM-796: Add support for &amp;quot;error&amp;quot; command in ShellSpout&lt;/li&gt;
&lt;li&gt;STORM-795: Update the user document for the extlib issue&lt;/li&gt;
&lt;li&gt;STORM-792: Missing documentation in backtype.storm.generated.Nimbus&lt;/li&gt;
&lt;li&gt;STORM-791: Storm UI displays maps in the config incorrectly&lt;/li&gt;
&lt;li&gt;STORM-790: Log &amp;quot;task is null&amp;quot; instead of let worker died when task is null in transfer-fn&lt;/li&gt;
&lt;li&gt;STORM-789: Send more topology context to Multi-Lang components via initial handshake&lt;/li&gt;
&lt;li&gt;STORM-788: UI Fix key for process latencies&lt;/li&gt;
&lt;li&gt;STORM-787: test-ns should announce test failures with &amp;#39;BUILD FAILURE&amp;#39;&lt;/li&gt;
&lt;li&gt;STORM-786: KafkaBolt should ack tick tuples&lt;/li&gt;
&lt;li&gt;STORM-773: backtype.storm.transactional-test fails periodically with timeout&lt;/li&gt;
&lt;li&gt;STORM-772: Tasts fail periodically with InterruptedException or InterruptedIOException&lt;/li&gt;
&lt;li&gt;STORM-766: Include version info in the service page&lt;/li&gt;
&lt;li&gt;STORM-765: Thrift serialization for local state&lt;/li&gt;
&lt;li&gt;STORM-764: Have option to compress thrift heartbeat&lt;/li&gt;
&lt;li&gt;STORM-762: uptime for worker heartbeats is lost when converted to thrift&lt;/li&gt;
&lt;li&gt;STORM-761: An option for new/updated Redis keys to expire in RedisMapState&lt;/li&gt;
&lt;li&gt;STORM-757: Simulated time can leak out on errors&lt;/li&gt;
&lt;li&gt;STORM-753: Improve RedisStateQuerier to convert List&lt;Values&gt; from Redis value&lt;/li&gt;
&lt;li&gt;STORM-752: [storm-redis] Clarify Redis*StateUpdater&amp;#39;s expire is optional&lt;/li&gt;
&lt;li&gt;STORM-750: Set Config serialVersionUID&lt;/li&gt;
&lt;li&gt;STORM-749: Remove CSRF check from the REST API.&lt;/li&gt;
&lt;li&gt;STORM-747: assignment-version-callback/info-with-version-callback are not fired when assignments change&lt;/li&gt;
&lt;li&gt;STORM-746: Skip ack init when there are no output tasks&lt;/li&gt;
&lt;li&gt;STORM-745: fix storm.cmd to evaluate &amp;#39;shift&amp;#39; correctly with &amp;#39;storm jar&amp;#39;&lt;/li&gt;
&lt;li&gt;STORM-741: Allow users to pass a config value to perform impersonation.&lt;/li&gt;
&lt;li&gt;STORM-740: Simple Transport Client cannot configure thrift buffer size&lt;/li&gt;
&lt;li&gt;STORM-737: Check task-&amp;gt;node+port with read lock to prevent sending to closed connection&lt;/li&gt;
&lt;li&gt;STORM-735: [storm-redis] Upgrade Jedis to 2.7.0&lt;/li&gt;
&lt;li&gt;STORM-730: remove extra curly brace&lt;/li&gt;
&lt;li&gt;STORM-729: Include Executors (Window Hint) if the component is of Bolt type&lt;/li&gt;
&lt;li&gt;STORM-728: Put emitted and transferred stats under correct columns&lt;/li&gt;
&lt;li&gt;STORM-727: Storm tests should succeed even if a storm process is running locally.&lt;/li&gt;
&lt;li&gt;STORM-724: Document RedisStoreBolt and RedisLookupBolt which is missed.&lt;/li&gt;
&lt;li&gt;STORM-723: Remove RedisStateSetUpdater / RedisStateSetCountQuerier which didn&amp;#39;t tested and have a bug&lt;/li&gt;
&lt;li&gt;STORM-721: Storm UI server should support SSL.&lt;/li&gt;
&lt;li&gt;STORM-715: Add a link to AssignableMetric.java in Metrics.md&lt;/li&gt;
&lt;li&gt;STORM-714: Make CSS more consistent with self, prev release&lt;/li&gt;
&lt;li&gt;STORM-713: Include topic information with Kafka metrics.&lt;/li&gt;
&lt;li&gt;STORM-712: Storm daemons shutdown if OutOfMemoryError occurs in any thread&lt;/li&gt;
&lt;li&gt;STORM-711: All connectors should use collector.reportError and tuple anchoring.&lt;/li&gt;
&lt;li&gt;STORM-708: CORS support for STORM UI.&lt;/li&gt;
&lt;li&gt;STORM-707: Client (Netty): improve logging to help troubleshooting connection woes&lt;/li&gt;
&lt;li&gt;STORM-704: Apply Travis CI to Apache Storm Project&lt;/li&gt;
&lt;li&gt;STORM-703: With hash key option for RedisMapState, only get values for keys in batch&lt;/li&gt;
&lt;li&gt;STORM-699: storm-jdbc should support custom insert queries. &lt;/li&gt;
&lt;li&gt;STORM-696: Single Namespace Test Launching&lt;/li&gt;
&lt;li&gt;STORM-694: java.lang.ClassNotFoundException: backtype.storm.daemon.common.SupervisorInfo&lt;/li&gt;
&lt;li&gt;STORM-693: KafkaBolt exception handling improvement.&lt;/li&gt;
&lt;li&gt;STORM-691: Add basic lookup / persist bolts&lt;/li&gt;
&lt;li&gt;STORM-690: Return Jedis into JedisPool with marking &amp;#39;broken&amp;#39; if connection is broken&lt;/li&gt;
&lt;li&gt;STORM-689: SimpleACLAuthorizer should provide a way to restrict who can submit topologies.&lt;/li&gt;
&lt;li&gt;STORM-688: update Util to compile under JDK8&lt;/li&gt;
&lt;li&gt;STORM-687: Storm UI does not display up to date information despite refreshes in IE&lt;/li&gt;
&lt;li&gt;STORM-685: wrong output in log when committed offset is too far behind latest offset&lt;/li&gt;
&lt;li&gt;STORM-684: In RichSpoutBatchExecutor: underlying spout is not closed when emitter is closed&lt;/li&gt;
&lt;li&gt;STORM-683: Make false in a conf really evaluate to false in clojure.&lt;/li&gt;
&lt;li&gt;STORM-682: supervisor should handle worker state corruption gracefully.&lt;/li&gt;
&lt;li&gt;STORM-681: Auto insert license header with genthrift.sh&lt;/li&gt;
&lt;li&gt;STORM-675: Allow users to have storm-env.sh under config dir to set custom JAVA_HOME and other env variables.&lt;/li&gt;
&lt;li&gt;STORM-673: Typo &amp;#39;deamon&amp;#39; in security documentation&lt;/li&gt;
&lt;li&gt;STORM-672: Typo in Trident documentation example&lt;/li&gt;
&lt;li&gt;STORM-670: restore java 1.6 compatibility (storm-kafka)&lt;/li&gt;
&lt;li&gt;STORM-669: Replace links with ones to latest api document&lt;/li&gt;
&lt;li&gt;STORM-667: Incorrect capitalization &amp;quot;SHell&amp;quot; in Multilang-protocol.md&lt;/li&gt;
&lt;li&gt;STORM-663: Create javadocs for BoltDeclarer&lt;/li&gt;
&lt;li&gt;STORM-659: return grep matches each on its own line.&lt;/li&gt;
&lt;li&gt;STORM-657: make the shutdown-worker sleep time before kill -9 configurable&lt;/li&gt;
&lt;li&gt;STORM-656: Document &amp;quot;external&amp;quot; modules and &amp;quot;Committer Sponsors&amp;quot;&lt;/li&gt;
&lt;li&gt;STORM-651: improvements to storm.cmd&lt;/li&gt;
&lt;li&gt;STORM-641: Add total number of topologies to api/v1/cluster/summary.&lt;/li&gt;
&lt;li&gt;STORM-640: Storm UI vulnerable to poodle attack.&lt;/li&gt;
&lt;li&gt;STORM-637: Integrate PartialKeyGrouping into storm API&lt;/li&gt;
&lt;li&gt;STORM-636: Faster, optional retrieval of last component error&lt;/li&gt;
&lt;li&gt;STORM-635: logviewer returns 404 if storm_home/logs is a symlinked dir.&lt;/li&gt;
&lt;li&gt;STORM-634: Storm serialization changed to thrift to support rolling upgrade.&lt;/li&gt;
&lt;li&gt;STORM-632: New grouping for better load balancing&lt;/li&gt;
&lt;li&gt;STORM-630: Support for Clojure 1.6.0&lt;/li&gt;
&lt;li&gt;STORM-629: Place Link to Source Code Repository on Webpage&lt;/li&gt;
&lt;li&gt;STORM-627: Storm-hbase configuration error.&lt;/li&gt;
&lt;li&gt;STORM-626: Add script to print out the merge command for a given pull request.&lt;/li&gt;
&lt;li&gt;STORM-625: Don&amp;#39;t leak netty clients when worker moves or reuse netty client. &lt;/li&gt;
&lt;li&gt;STORM-623: Generate latest javadocs&lt;/li&gt;
&lt;li&gt;STORM-620: Duplicate maven plugin declaration&lt;/li&gt;
&lt;li&gt;STORM-616: Storm JDBC Connector.&lt;/li&gt;
&lt;li&gt;STORM-615: Add REST API to upload topology.&lt;/li&gt;
&lt;li&gt;STORM-613: Fix wrong getOffset return value&lt;/li&gt;
&lt;li&gt;STORM-612: Update the contact address in configure.ac&lt;/li&gt;
&lt;li&gt;STORM-611: Remove extra &amp;quot;break&amp;quot;s&lt;/li&gt;
&lt;li&gt;STORM-610: Check the return value of fts_close()&lt;/li&gt;
&lt;li&gt;STORM-609: Add storm-redis to storm external&lt;/li&gt;
&lt;li&gt;STORM-608: Storm UI CSRF escape characters not work correctly.&lt;/li&gt;
&lt;li&gt;STORM-607: storm-hbase HBaseMapState should support user to customize the hbase-key &amp;amp; hbase-qualifier&lt;/li&gt;
&lt;li&gt;STORM-603: Log errors when required kafka params are missing&lt;/li&gt;
&lt;li&gt;STORM-601: Make jira-github-join ignore case.&lt;/li&gt;
&lt;li&gt;STORM-600: upgrade jacoco plugin to support jdk8&lt;/li&gt;
&lt;li&gt;STORM-599: Use nimbus&amp;#39;s cached heartbeats rather than fetching again from ZK&lt;/li&gt;
&lt;li&gt;STORM-596: remove config topology.receiver.buffer.size&lt;/li&gt;
&lt;li&gt;STORM-595: storm-hdfs can only work with sequence files that use Writables.&lt;/li&gt;
&lt;li&gt;STORM-586: Trident kafka spout fails instead of updating offset when kafka offset is out of range.&lt;/li&gt;
&lt;li&gt;STORM-585: Performance issue in none grouping&lt;/li&gt;
&lt;li&gt;STORM-583: Add Microsoft Azure Event Hub spout implementations&lt;/li&gt;
&lt;li&gt;STORM-578: Calls to submit-mocked-assignment in supervisor-test use invalid executor-id format&lt;/li&gt;
&lt;li&gt;STORM-577: long time launch worker will block supervisor heartbeat&lt;/li&gt;
&lt;li&gt;STORM-575: Ability to specify Jetty host to bind to&lt;/li&gt;
&lt;li&gt;STORM-572: Storm UI &amp;#39;favicon.ico&amp;#39;&lt;/li&gt;
&lt;li&gt;STORM-572: Allow Users to pass TEST-TIMEOUT-MS for java&lt;/li&gt;
&lt;li&gt;STORM-571: upgrade clj-time.&lt;/li&gt;
&lt;li&gt;STORM-570: Switch from tablesorter to datatables jquery plugin.&lt;/li&gt;
&lt;li&gt;STORM-569: Add Conf for bolt&amp;#39;s outgoing overflow-buffer.&lt;/li&gt;
&lt;li&gt;STORM-567: Move Storm Documentation/Website from SVN to git&lt;/li&gt;
&lt;li&gt;STORM-565: Fix NPE when topology.groups is null.&lt;/li&gt;
&lt;li&gt;STORM-563: Kafka Spout doesn&amp;#39;t pick up from the beginning of the queue unless forceFromStart specified.&lt;/li&gt;
&lt;li&gt;STORM-561: Add flux as an external module&lt;/li&gt;
&lt;li&gt;STORM-557: High Quality Images for presentations&lt;/li&gt;
&lt;li&gt;STORM-554: the type of first param &amp;quot;topology&amp;quot; should be ^StormTopology not ^TopologyContext&lt;/li&gt;
&lt;li&gt;STORM-552: Add netty socket backlog config&lt;/li&gt;
&lt;li&gt;STORM-548: Receive Thread Shutdown hook should connect to local hostname but not Localhost&lt;/li&gt;
&lt;li&gt;STORM-541: Build produces maven warnings&lt;/li&gt;
&lt;li&gt;STORM-539: Storm Hive Connector.&lt;/li&gt;
&lt;li&gt;STORM-533: Add in client and server IConnection metrics.&lt;/li&gt;
&lt;li&gt;STORM-527: update worker.clj -- delete &amp;quot;missing-tasks&amp;quot; checking&lt;/li&gt;
&lt;li&gt;STORM-525: Add time sorting function to the 2nd col of bolt exec table&lt;/li&gt;
&lt;li&gt;STORM-512: KafkaBolt doesn&amp;#39;t handle ticks properly&lt;/li&gt;
&lt;li&gt;STORM-505: Fix debug string construction&lt;/li&gt;
&lt;li&gt;STORM-495: KafkaSpout retries with exponential backoff&lt;/li&gt;
&lt;li&gt;STORM-487: Remove storm.cmd, no need to duplicate work python runs on windows too.&lt;/li&gt;
&lt;li&gt;STORM-483: provide dedicated directories for classpath extension&lt;/li&gt;
&lt;li&gt;STORM-456: Storm UI: cannot navigate to topology page when name contains spaces.&lt;/li&gt;
&lt;li&gt;STORM-446: Allow superusers to impersonate other users in secure mode.&lt;/li&gt;
&lt;li&gt;STORM-444: Add AutoHDFS like credential fetching for HBase&lt;/li&gt;
&lt;li&gt;STORM-442: multilang ShellBolt/ShellSpout die() can be hang when Exception happened&lt;/li&gt;
&lt;li&gt;STORM-441: Remove bootstrap macro from Clojure codebase&lt;/li&gt;
&lt;li&gt;STORM-410: Add groups support to log-viewer&lt;/li&gt;
&lt;li&gt;STORM-400: Thrift upgrade to thrift-0.9.2&lt;/li&gt;
&lt;li&gt;STORM-329: fix cascading Storm failure by improving reconnection strategy and buffering messages (thanks tedxia)&lt;/li&gt;
&lt;li&gt;STORM-322: Windows script do not handle spaces in JAVA_HOME path&lt;/li&gt;
&lt;li&gt;STORM-248: cluster.xml location is hardcoded for workers&lt;/li&gt;
&lt;li&gt;STORM-243: Record version and revision information in builds&lt;/li&gt;
&lt;li&gt;STORM-188: Allow user to specifiy full configuration path when running storm command&lt;/li&gt;
&lt;li&gt;STORM-130: Supervisor getting killed due to java.io.FileNotFoundException: File &amp;#39;../stormconf.ser&amp;#39; does not exist.&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Mon, 15 Jun 2015 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2015/06/15/storm0100-beta-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2015/06/15/storm0100-beta-released.html</guid>
</item>
<item>
<title>Storm 0.9.5 released</title>
<description>&lt;p&gt;The Apache Storm community is pleased to announce that version 0.9.5 has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a maintenance release that includes a number of important bug fixes that improve Storm&amp;#39;s stability and fault tolerance. We encourage users of previous versions to upgrade to this latest release.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-changelog&quot;&gt;Full Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-790: Log &amp;quot;task is null&amp;quot; instead of letting worker die when task is null in transfer-fn&lt;/li&gt;
&lt;li&gt;STORM-796: Add support for &amp;quot;error&amp;quot; command in ShellSpout&lt;/li&gt;
&lt;li&gt;STORM-745: fix storm.cmd to evaluate &amp;#39;shift&amp;#39; correctly with &amp;#39;storm jar&amp;#39;&lt;/li&gt;
&lt;li&gt;STORM-130: Supervisor getting killed due to java.io.FileNotFoundException: File &amp;#39;../stormconf.ser&amp;#39; does not exist.&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Thu, 04 Jun 2015 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2015/06/04/storm095-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2015/06/04/storm095-released.html</guid>
</item>
<item>
<title>Storm 0.9.4 released</title>
<description>&lt;p&gt;The Apache Storm community is pleased to announce that version 0.9.4 has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a maintenance release that includes a number of important bug fixes that improve Storm&amp;#39;s stability and fault tolerance. We encourage users of previous versions to upgrade to this latest release.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-changelog&quot;&gt;Full Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-559: ZkHosts in README should use 2181 as port.&lt;/li&gt;
&lt;li&gt;STORM-682: supervisor should handle worker state corruption gracefully.&lt;/li&gt;
&lt;li&gt;STORM-693: when kafka bolt fails to write tuple, it should report error instead of silently acking.&lt;/li&gt;
&lt;li&gt;STORM-329: fix cascading Storm failure by improving reconnection strategy and buffering messages&lt;/li&gt;
&lt;li&gt;STORM-130: Supervisor getting killed due to java.io.FileNotFoundException: File &amp;#39;../stormconf.ser&amp;#39; does not exist.&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Wed, 25 Mar 2015 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2015/03/25/storm094-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2015/03/25/storm094-released.html</guid>
</item>
<item>
<title>Storm 0.9.3 released</title>
<description>&lt;p&gt;We are pleased to announce that Apache Storm 0.9.3 has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;. This release includes 100 new fixes and improvements from 62 individual contributors.&lt;/p&gt;
&lt;h2 id=&quot;improved-kafka-integration&quot;&gt;Improved Kafka Integration&lt;/h2&gt;
&lt;p&gt;Apache Storm has supported &lt;a href=&quot;http://kafka.apache.org/&quot;&gt;Apache Kafka&lt;/a&gt; as a streaming data source since version 0.9.2-incubating. Version 0.9.3 brings a number of improvements to the Kafka integration including the ability to write data to one or more Kafka clusters and topics.&lt;/p&gt;
&lt;p&gt;The ability to both read from and write to Kafka further unlocks potential of the already powerful combination of Storm and Kafka. Storm users can now use Kafka as a source of and destination for streaming data. This allows for inter-topology communication, topology chaining, combining spout/bolt-based topologies with Trident-based data flows, and integration with any external system that supports data ingest from Kafka.&lt;/p&gt;
&lt;p&gt;More information about Storm&amp;#39;s Kafka integration can be found in the &lt;a href=&quot;https://github.com/apache/storm/blob/v0.9.3/external/storm-kafka/README.md&quot;&gt;storm-kafka project documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;hdfs-integration&quot;&gt;HDFS Integration&lt;/h2&gt;
&lt;p&gt;Many stream processing use cases involve storing data in HDFS for further analysis and offline (batch) processing. Apache Storm’s HDFS integration consists of several bolt and Trident state implementations that allow topology developers to easily write data to HDFS from any Storm topology. &lt;/p&gt;
&lt;p&gt;More information about Storm&amp;#39;s HDFS integration can be found in the &lt;a href=&quot;https://github.com/apache/storm/tree/v0.9.3/external/storm-hdfs&quot;&gt;storm-hdfs project documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;hbase-integration&quot;&gt;HBase Integration&lt;/h2&gt;
&lt;p&gt;Apache Storm’s HBase integration includes a number of components that allow Storm topologies to both write to and query HBase in real-time. Many organizations use Apache HBase as part of their big data strategy for batch, interactive, and real-time workflows. Storm’s HBase integration allows users to leverage data assets in HBase as streaming queries, as well as using HBase as a destination for streaming computation results.&lt;/p&gt;
&lt;p&gt;More information about Storm&amp;#39;s HBase integration can be found in the &lt;a href=&quot;https://github.com/apache/storm/tree/v0.9.3/external/storm-hbase&quot;&gt;storm-hbase project documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;reduced-dependency-conflicts&quot;&gt;Reduced Dependency Conflicts&lt;/h2&gt;
&lt;p&gt;In previous Storm releases, it was not uncommon for users&amp;#39; topology dependencies to conflict with the libraries used by Storm. In Storm 0.9.3 several dependency packages that were common sources of conflicts have been package-relocated (shaded) to avoid this situation. Developers are free to use the Storm-packaged versions, or supply their own version. &lt;/p&gt;
&lt;p&gt;The following table lists the dependency package relocations:&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: left&quot;&gt;Dependency&lt;/th&gt;
&lt;th style=&quot;text-align: left&quot;&gt;Original Package&lt;/th&gt;
&lt;th style=&quot;text-align: left&quot;&gt;Storm Package&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Apache Thrift&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.thrift&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.thrift7&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Netty&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.jboss.netty&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.netty&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Google Guava&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;com.google.common&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.guava&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;com.google.thirdparty&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.guava.thirdparty&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Apache HTTPClient&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.http&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.http&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Apache ZooKeeper&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.zookeeper&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.zookeeper&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;Apache Curator&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.curator&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;code&gt;org.apache.storm.curator&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;multi-lang-improvements&quot;&gt;Multi-Lang Improvements&lt;/h2&gt;
&lt;p&gt;Apache Storm 0.9.3 includes a new &lt;a href=&quot;http://nodejs.org&quot;&gt;Node.js&lt;/a&gt; multi-lang implementation that allows developers to write spouts and bolts in JavaScript.&lt;/p&gt;
&lt;p&gt;In addition to the Node.js implementation, the multi-lang protocol has been substantially improved in terms of robustness and error handling capabilities. As a result, &lt;strong&gt;the multi-lang API has changed in a non-backward-compatible way&lt;/strong&gt;. Users with existing multi-lang topologies should consult the Python, Ruby, and JavaScript multi-lang examples to determine the impact prior to upgrading.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;full-changelog&quot;&gt;Full Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-558: change &amp;quot;swap!&amp;quot; to &amp;quot;reset!&amp;quot; to fix assignment-versions in supervisor&lt;/li&gt;
&lt;li&gt;STORM-555: Storm json response should set charset to UTF-8&lt;/li&gt;
&lt;li&gt;STORM-513: check heartbeat from multilang subprocess&lt;/li&gt;
&lt;li&gt;STORM-549: &amp;quot;topology.enable.message.timeouts&amp;quot; does nothing&lt;/li&gt;
&lt;li&gt;STORM-546: Local hostname configuration ignored by executor&lt;/li&gt;
&lt;li&gt;STORM-492: Test timeout should be configurable&lt;/li&gt;
&lt;li&gt;STORM-540: Change default time format in logs to ISO8601 in order to include timezone&lt;/li&gt;
&lt;li&gt;STORM-511: Storm-Kafka spout keeps sending fetch requests with invalid offset&lt;/li&gt;
&lt;li&gt;STORM-538: Guava com.google.thirdparty.publicsuffix is not shaded&lt;/li&gt;
&lt;li&gt;STORM-497: don&amp;#39;t modify the netty server taskToQueueId mapping while the someone could be reading it.&lt;/li&gt;
&lt;li&gt;STORM-537: A worker reconnects infinitely to another dead worker (Sergey Tryuber)&lt;/li&gt;
&lt;li&gt;STORM-519: add tuple as an input param to HBaseValueMapper &lt;/li&gt;
&lt;li&gt;STORM-488: Exit with 254 error code if storm CLI is run with unknown command&lt;/li&gt;
&lt;li&gt;STORM-506: Do not count bolt acks &amp;amp; fails in total stats&lt;/li&gt;
&lt;li&gt;STORM-490: fix build under Windows&lt;/li&gt;
&lt;li&gt;STORM-439: Replace purl.js qith jquery URL plugin&lt;/li&gt;
&lt;li&gt;STORM-499: Document and clean up shaded dependncy resolution with maven&lt;/li&gt;
&lt;li&gt;STORM-210: Add storm-hbase module&lt;/li&gt;
&lt;li&gt;STORM-507: Topology visualization should not block ui&lt;/li&gt;
&lt;li&gt;STORM-504: Class used by &lt;code&gt;repl&lt;/code&gt; command is deprecated.&lt;/li&gt;
&lt;li&gt;STORM-330: Implement storm exponential backoff stategy for netty client and curator&lt;/li&gt;
&lt;li&gt;STORM-461: exit-process! does not always exit the process, but throws an exception&lt;/li&gt;
&lt;li&gt;STORM-341: fix assignment sorting&lt;/li&gt;
&lt;li&gt;STORM-476: external/storm-kafka: avoid NPE on null message payloads&lt;/li&gt;
&lt;li&gt;STORM-424: fix error message related to kafka offsets&lt;/li&gt;
&lt;li&gt;STORM-454: correct documentation in STORM-UI-REST-API.md&lt;/li&gt;
&lt;li&gt;STORM-474: Reformat UI HTML code&lt;/li&gt;
&lt;li&gt;STORM-447: shade/relocate packages of dependencies that are common causes of dependency conflicts&lt;/li&gt;
&lt;li&gt;STORM-279: cluster.xml doesn&amp;#39;t take in STORM_LOG_DIR values.&lt;/li&gt;
&lt;li&gt;STORM-380: Kafka spout: throw RuntimeException if a leader cannot be found for a partition&lt;/li&gt;
&lt;li&gt;STORM-435: Improve storm-kafka documentation&lt;/li&gt;
&lt;li&gt;STORM-405: Add kafka trident state so messages can be sent to kafka topic&lt;/li&gt;
&lt;li&gt;STORM-211: Add module for HDFS integration&lt;/li&gt;
&lt;li&gt;STORM-337: Expose managed spout ids publicly&lt;/li&gt;
&lt;li&gt;STORM-320: Support STORM_CONF_DIR environment variable to support&lt;/li&gt;
&lt;li&gt;STORM-360: Add node details for Error Topology and Component pages&lt;/li&gt;
&lt;li&gt;STORM-54: Per-Topology Classpath and Environment for Workers&lt;/li&gt;
&lt;li&gt;STORM-355: excluding outdated netty transitively included via curator&lt;/li&gt;
&lt;li&gt;STORM-183: Replacing RunTime.halt() with RunTime.exit()&lt;/li&gt;
&lt;li&gt;STORM-213: Decouple In-Process ZooKeeper from LocalCluster.&lt;/li&gt;
&lt;li&gt;STORM-365: Add support for Python 3 to storm command.&lt;/li&gt;
&lt;li&gt;STORM-332: Enable Kryo serialization in storm-kafka&lt;/li&gt;
&lt;li&gt;STORM-370: Add check for empty table before sorting dom in UI&lt;/li&gt;
&lt;li&gt;STORM-359: add logviewer paging and download&lt;/li&gt;
&lt;li&gt;STORM-372: Typo in storm_env.ini&lt;/li&gt;
&lt;li&gt;STORM-266: Adding shell process pid and name in the log message&lt;/li&gt;
&lt;li&gt;STORM-367: Storm UI REST api documentation.&lt;/li&gt;
&lt;li&gt;STORM-200: Proposal for Multilang&amp;#39;s Metrics feature&lt;/li&gt;
&lt;li&gt;STORM-351: multilang python process fall into endless loop&lt;/li&gt;
&lt;li&gt;STORM-375: Smarter downloading of assignments by supervisors and workers&lt;/li&gt;
&lt;li&gt;STORM-328: More restrictive Config checks, strict range check within Utils.getInt()&lt;/li&gt;
&lt;li&gt;STORM-381: Replace broken jquery.tablesorter.min.js to latest&lt;/li&gt;
&lt;li&gt;STORM-312: add storm monitor tools to monitor throughtput interactively&lt;/li&gt;
&lt;li&gt;STORM-354: Testing: allow users to pass TEST-TIMEOUT-MS as param for complete-topology&lt;/li&gt;
&lt;li&gt;STORM-254: one Spout/Bolt can register metric twice with same name in different timeBucket&lt;/li&gt;
&lt;li&gt;STORM-403: heartbeats-to-nimbus in supervisor-test failed due to uninten...&lt;/li&gt;
&lt;li&gt;STORM-402: FileNotFoundException when using storm with apache tika&lt;/li&gt;
&lt;li&gt;STORM-364: The exception time display as default timezone.&lt;/li&gt;
&lt;li&gt;STORM-420: Missing quotes in storm-starter python code&lt;/li&gt;
&lt;li&gt;STORM-399: Kafka Spout defaulting to latest offset when current offset is older then 100k&lt;/li&gt;
&lt;li&gt;STORM-421: Memoize local hostname lookup in executor&lt;/li&gt;
&lt;li&gt;STORM-414: support logging level to multilang protocol spout and bolt&lt;/li&gt;
&lt;li&gt;STORM-321: Added a tool to see the current status of STORM JIRA and github pulls.&lt;/li&gt;
&lt;li&gt;STORM-415: validate-launched-once in supervisor-test can not handle multiple topologies&lt;/li&gt;
&lt;li&gt;STORM-155: Storm rebalancing code causes multiple topologies assigned to a single port&lt;/li&gt;
&lt;li&gt;STORM-419: Updated test so sort ordering is very explicit.&lt;/li&gt;
&lt;li&gt;STORM-406: Fix for reconnect logic in netty client.&lt;/li&gt;
&lt;li&gt;STORM-366: Add color span to most recent error and fix ui templates.&lt;/li&gt;
&lt;li&gt;STORM-369: topology summary page displays wrong order.&lt;/li&gt;
&lt;li&gt;STORM-239: Allow supervisor to operate in paths with spaces in them&lt;/li&gt;
&lt;li&gt;STORM-87: fail fast on ShellBolt exception&lt;/li&gt;
&lt;li&gt;STORM-417: Storm UI lost table sort style when tablesorter was updated&lt;/li&gt;
&lt;li&gt;STORM-396: Replace NullPointerException with IllegalArgumentExeption&lt;/li&gt;
&lt;li&gt;STORM-451: Latest storm does not build due to a pom.xml error in storm-hdfs pom.xml&lt;/li&gt;
&lt;li&gt;STORM-453: migrated to curator 2.5.0&lt;/li&gt;
&lt;li&gt;STORM-458: sample spout uses incorrect name when connecting bolt&lt;/li&gt;
&lt;li&gt;STORM-455: Report error-level messages from ShellBolt children&lt;/li&gt;
&lt;li&gt;STORM-443: multilang log&amp;#39;s loglevel protocol can cause hang&lt;/li&gt;
&lt;li&gt;STORM-449: Updated ShellBolt to not exit when shutting down.&lt;/li&gt;
&lt;li&gt;STORM-464: Simulated time advanced after test cluster exits causes intermittent test failures&lt;/li&gt;
&lt;li&gt;STORM-463: added static version of metrics helpers for Config&lt;/li&gt;
&lt;li&gt;STORM-376: Add compression to serialization&lt;/li&gt;
&lt;li&gt;STORM-437: Enforce utf-8 when multilang reads from stdin&lt;/li&gt;
&lt;li&gt;STORM-361: Add JSON-P support to Storm UI API&lt;/li&gt;
&lt;li&gt;STORM-373: Provide Additional String substitutions for *.worker.childopts&lt;/li&gt;
&lt;li&gt;STORM-274: Add support for command remoteconfvalue in storm.cmd&lt;/li&gt;
&lt;li&gt;STORM-132: sort supervisor by free slot in desending order&lt;/li&gt;
&lt;li&gt;STORM-472: Improve error message for non-completeable testing spouts&lt;/li&gt;
&lt;li&gt;STORM-401: handle InterruptedIOException properly.&lt;/li&gt;
&lt;li&gt;STORM-461: exit-process! does not always exit the process, but throws an exception instead&lt;/li&gt;
&lt;li&gt;STORM-475: Storm UI pages do not use UTF-8&lt;/li&gt;
&lt;li&gt;STORM-336: Logback version should be upgraded&lt;/li&gt;
&lt;li&gt;STORM-386: nodejs multilang protocol implementation and examples&lt;/li&gt;
&lt;li&gt;STORM-500: Add Spinner when UI is loading stats from nimbus&lt;/li&gt;
&lt;li&gt;STORM-501: Missing StormSubmitter API&lt;/li&gt;
&lt;li&gt;STORM-493: Workers inherit storm.conf.file/storm.options properties of their supervisor&lt;/li&gt;
&lt;li&gt;STORM-498: make ZK connection timeout configurable in Kafka spout&lt;/li&gt;
&lt;li&gt;STORM-428: extracted ITuple interface&lt;/li&gt;
&lt;li&gt;STORM-508: Update DEVELOPER.md now that Storm has graduated from Incubator&lt;/li&gt;
&lt;li&gt;STORM-514: Update storm-starter README now that Storm has graduated from Incubator&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Tue, 25 Nov 2014 00:00:00 -0800</pubDate>
<link>http://storm.apache.org/2014/11/25/storm093-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2014/11/25/storm093-released.html</guid>
</item>
<item>
<title>Storm 0.9.3 release candidate 1 available</title>
<description>&lt;p&gt;We are pleased to announce that Apache Storm version 0.9.3 has reached the release candidate stage. The latest release is 0.9.3-rc1. We are moving closer to the GA release, so this is a good time to give this new 0.9.3 version a try!&lt;/p&gt;
&lt;p&gt;Storm 0.9.3 is a maintenance release with bug fixes and better stability as summarized in the &lt;a href=&quot;https://github.com/apache/storm/blob/master/CHANGELOG.md&quot;&gt;0.9.3 changelog&lt;/a&gt;. On top of that version 0.9.3 continues to improve the integration with &lt;a href=&quot;http://kafka.apache.org/&quot;&gt;Apache Kafka&lt;/a&gt; as well as the &lt;a href=&quot;https://github.com/apache/storm/blob/master/external/storm-kafka/README.md&quot;&gt;documentation of the core spout and Trident spout for Kafka&lt;/a&gt;, which will provide our users with the best Kafka connectivity for Storm to date.&lt;/p&gt;
&lt;p&gt;We heartily encourage you to &lt;a href=&quot;http://storm.apache.org/downloads.html&quot;&gt;test the 0.9.3 release candidate&lt;/a&gt; and provide your feedback regarding any issues via &lt;a href=&quot;http://storm.apache.org/community.html&quot;&gt;our mailing lists&lt;/a&gt;, which is an easy and valuable way to contribute back to the Storm community and to help us moving to an official 0.9.3 release. You can find the &lt;a href=&quot;http://storm.apache.org/downloads.html&quot;&gt;0.9.3 release candidate in our Downloads section&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Mon, 20 Oct 2014 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2014/10/20/storm093-release-candidate.html</link>
<guid isPermaLink="true">http://storm.apache.org/2014/10/20/storm093-release-candidate.html</guid>
</item>
<item>
<title>Storm 0.9.2 released</title>
<description>&lt;p&gt;We are pleased to announce that Storm 0.9.2-incubating has been released and is available from &lt;a href=&quot;/downloads.html&quot;&gt;the downloads page&lt;/a&gt;. This release includes many important fixes and improvements.&lt;/p&gt;
&lt;h2 id=&quot;netty-transport-improvements&quot;&gt;Netty Transport Improvements&lt;/h2&gt;
&lt;p&gt;Storm&amp;#39;s Netty-based transport has been overhauled to significantly improve performance through better utilization of thread, CPU, and network resources, particularly in cases where message sizes are small. Storm contributor Sean Zhong (&lt;a href=&quot;https://github.com/clockfly&quot;&gt;@clockfly&lt;/a&gt;) deserves a great deal of credit not only for discovering, analyzing, documenting and fixing the root cause, but also for persevering through an extended review process and promptly addressing all concerns.&lt;/p&gt;
&lt;p&gt;Those interested in the technical details and evolution of this patch can find out more in the &lt;a href=&quot;https://issues.apache.org/jira/browse/STORM-297&quot;&gt;JIRA ticket for STORM-297&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sean also discovered and fixed an &lt;a href=&quot;https://issues.apache.org/jira/browse/STORM-342&quot;&gt;elusive bug&lt;/a&gt; in Storm&amp;#39;s usage of the Disruptor queue that could lead to out-of-order or lost messages. &lt;/p&gt;
&lt;p&gt;Many thanks to Sean for contributing these important fixes.&lt;/p&gt;
&lt;h2 id=&quot;storm-ui-improvements&quot;&gt;Storm UI Improvements&lt;/h2&gt;
&lt;p&gt;This release also includes a number of improvements to the Storm UI service. Contributor Sriharsha Chintalapani(&lt;a href=&quot;https://github.com/harshach&quot;&gt;@harshach&lt;/a&gt;) added a REST API to the Storm UI service to expose metrics and operations in JSON format, and updated the UI to use that API.&lt;/p&gt;
&lt;p&gt;The new REST API will make it considerably easier for other services to consume availabe cluster and topology metrics for monitoring and visualization applications. Kyle Nusbaum (&lt;a href=&quot;https://github.com/knusbaum&quot;&gt;@knusbaum&lt;/a&gt;) has already leveraged the REST API to create a topology visualization tool now included in Storm UI and illustrated in the screenshot below.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/ui_topology_viz.png&quot; alt=&quot;Storm UI Topology Visualization&quot;&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the visualization, spout components are represented as blue, while bolts are colored between green and red depending on their associated capacity metric. The width of the lines between the components represent the flow of tuples relative to the other visible streams. &lt;/p&gt;
&lt;h2 id=&quot;kafka-spout&quot;&gt;Kafka Spout&lt;/h2&gt;
&lt;p&gt;This is the first Storm release to include official support for consuming data from Kafka 0.8.x. In the past, development of Kafka spouts for Storm had become somewhat fragmented and finding an implementation that worked with certain versions of Storm and Kafka proved burdensome for some developers. This is no longer the case, as the &lt;code&gt;storm-kafka&lt;/code&gt; module is now part of the Storm project and associated artifacts are released to official channels (Maven Central) along with Storm&amp;#39;s other components.&lt;/p&gt;
&lt;p&gt;Thanks are due to GitHub user &lt;a href=&quot;&quot;&gt;@wurstmeister&lt;/a&gt; for picking up Nathan Marz&amp;#39; original Kafka 0.7.x implementation, updating it to work with Kafka 0.8.x, and contributing that work back to the Storm community.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;storm-kafka&lt;/code&gt; module can be found in the &lt;code&gt;/external/&lt;/code&gt; directory of the source tree and binary distributions. The &lt;code&gt;external&lt;/code&gt; area has been set up to contain projects that while not required by Storm, are often used in conjunction with Storm to integrate with some other technology. Such projects also come with a maintenance committment from at least one Storm committer to ensure compatibility with Storm&amp;#39;s main codebase as it evolves.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;storm-kafka&lt;/code&gt; dependency is available now from Maven Central at the following coordinates:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;groupId: org.apache.storm
artifactId: storm-kafka
version: 0.9.2-incubating
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Users, and Scala developers in particular, should note that the Kafka dependency is listed as &lt;code&gt;provided&lt;/code&gt;. This allows users to choose a specific Scala version as described in the &lt;a href=&quot;https://github.com/apache/incubator-storm/tree/v0.9.2-incubating/external/storm-kafka&quot;&gt;project README&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;storm-starter-and-examples&quot;&gt;Storm Starter and Examples&lt;/h2&gt;
&lt;p&gt;Similar to the &lt;code&gt;external&lt;/code&gt; section of the codebase, we have also added an &lt;code&gt;examples&lt;/code&gt; directory and pulled in the &lt;code&gt;storm-starter&lt;/code&gt; project to ensure it will be maintained in lock-step with Storm&amp;#39;s main codebase.&lt;/p&gt;
&lt;p&gt;Thank you to Storm committer Michael G. Noll for his continued work in maintaining and improving the &lt;code&gt;storm-starter&lt;/code&gt; project.&lt;/p&gt;
&lt;h2 id=&quot;plugable-serialization-for-multilang&quot;&gt;Plugable Serialization for Multilang&lt;/h2&gt;
&lt;p&gt;In previous versions of Storm, serialization of data to and from multilang components was limited to JSON, imposing somewhat of performance penalty. Thanks to a contribution from John Gilmore (&lt;a href=&quot;https://github.com/jsgilmore&quot;&gt;@jsgilmore&lt;/a&gt;) the serialization mechanism is now plugable and enables the use of more performant serialization frameworks like protocol buffers in addition to JSON.&lt;/p&gt;
&lt;h2 id=&quot;thanks&quot;&gt;Thanks&lt;/h2&gt;
&lt;p&gt;Special thanks are due to all those who have contributed to Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.&lt;/p&gt;
&lt;h2 id=&quot;changelog&quot;&gt;Changelog&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;STORM-352: [storm-kafka] PartitionManager does not save offsets to ZooKeeper&lt;/li&gt;
&lt;li&gt;STORM-66: send taskid on initial handshake&lt;/li&gt;
&lt;li&gt;STORM-342: Contention in Disruptor Queue which may cause out of order or lost messages&lt;/li&gt;
&lt;li&gt;STORM-338: Move towards idiomatic Clojure style &lt;/li&gt;
&lt;li&gt;STORM-335: add drpc test for removing timed out requests from queue&lt;/li&gt;
&lt;li&gt;STORM-69: Storm UI Visualizations for Topologies&lt;/li&gt;
&lt;li&gt;STORM-297: Performance scaling with CPU&lt;/li&gt;
&lt;li&gt;STORM-244: DRPC timeout can return null instead of throwing an exception&lt;/li&gt;
&lt;li&gt;STORM-63: remove timeout drpc request from its function&amp;#39;s request queue&lt;/li&gt;
&lt;li&gt;STORM-313: Remove log-level-page from logviewer&lt;/li&gt;
&lt;li&gt;STORM-205: Add REST API To Storm UI&lt;/li&gt;
&lt;li&gt;STORM-326: tasks send duplicate metrics&lt;/li&gt;
&lt;li&gt;STORM-331: Update the Kafka dependency of storm-kafka to 0.8.1.1&lt;/li&gt;
&lt;li&gt;STORM-308: Add support for config_value to {supervisor,nimbus,ui,drpc,logviewer} childopts&lt;/li&gt;
&lt;li&gt;STORM-309: storm-starter Readme: windows documentation update&lt;/li&gt;
&lt;li&gt;STORM-318: update storm-kafka to use apache curator-2.4.0&lt;/li&gt;
&lt;li&gt;STORM-303: storm-kafka reliability improvements&lt;/li&gt;
&lt;li&gt;STORM-233: Removed inline heartbeat to nimbus to avoid workers being killed when under heavy ZK load&lt;/li&gt;
&lt;li&gt;STORM-267: fix package name of LoggingMetricsConsumer in storm.yaml.example&lt;/li&gt;
&lt;li&gt;STORM-265: upgrade to clojure 1.5.1&lt;/li&gt;
&lt;li&gt;STORM-232: ship JNI dependencies with the topology jar&lt;/li&gt;
&lt;li&gt;STORM-295: Add storm configuration to define JAVA_HOME&lt;/li&gt;
&lt;li&gt;STORM-138: Pluggable serialization for multilang&lt;/li&gt;
&lt;li&gt;STORM-264: Removes references to the deprecated topology.optimize&lt;/li&gt;
&lt;li&gt;STORM-245: implement Stream.localOrShuffle() for trident&lt;/li&gt;
&lt;li&gt;STORM-317: Add SECURITY.md to release binaries&lt;/li&gt;
&lt;li&gt;STORM-310: Change Twitter authentication&lt;/li&gt;
&lt;li&gt;STORM-305: Create developer documentation&lt;/li&gt;
&lt;li&gt;STORM-280: storm unit tests are failing on windows&lt;/li&gt;
&lt;li&gt;STORM-298: Logback file does not include full path for metrics appender fileNamePattern&lt;/li&gt;
&lt;li&gt;STORM-316: added validation to registermetrics to have timebucketSizeInSecs &amp;gt;= 1&lt;/li&gt;
&lt;li&gt;STORM-315: Added progress bar when submitting topology&lt;/li&gt;
&lt;li&gt;STORM-214: Windows: storm.cmd does not properly handle multiple -c arguments&lt;/li&gt;
&lt;li&gt;STORM-306: Add security documentation&lt;/li&gt;
&lt;li&gt;STORM-302: Fix Indentation for pom.xml in storm-dist&lt;/li&gt;
&lt;li&gt;STORM-235: Registering a null metric should blow up early&lt;/li&gt;
&lt;li&gt;STORM-113: making thrift usage thread safe for local cluster&lt;/li&gt;
&lt;li&gt;STORM-223: use safe parsing for reading YAML&lt;/li&gt;
&lt;li&gt;STORM-238: LICENSE and NOTICE files are duplicated in storm-core jar&lt;/li&gt;
&lt;li&gt;STORM-276: Add support for logviewer in storm.cmd.&lt;/li&gt;
&lt;li&gt;STORM-286: Use URLEncoder#encode with the encoding specified.&lt;/li&gt;
&lt;li&gt;STORM-296: Storm kafka unit tests are failing on windows&lt;/li&gt;
&lt;li&gt;STORM-291: upgrade http-client to 4.3.3&lt;/li&gt;
&lt;li&gt;STORM-252: Upgrade curator to latest version&lt;/li&gt;
&lt;li&gt;STORM-294: Commas not escaped in command line&lt;/li&gt;
&lt;li&gt;STORM-287: Fix the positioning of documentation strings in clojure code&lt;/li&gt;
&lt;li&gt;STORM-290: Fix a log binding conflict caused by curator dependencies&lt;/li&gt;
&lt;li&gt;STORM-289: Fix Trident DRPC memory leak&lt;/li&gt;
&lt;li&gt;STORM-173: Treat command line &amp;quot;-c&amp;quot; option number config values as such&lt;/li&gt;
&lt;li&gt;STORM-194: Support list of strings in *.worker.childopts, handle spaces&lt;/li&gt;
&lt;li&gt;STORM-288: Fixes version spelling in pom.xml&lt;/li&gt;
&lt;li&gt;STORM-208: Add storm-kafka as an external module&lt;/li&gt;
&lt;li&gt;STORM-285: Fix storm-core shade plugin config&lt;/li&gt;
&lt;li&gt;STORM-12: reduce thread usage of netty transport&lt;/li&gt;
&lt;li&gt;STORM-281: fix and issue with config parsing that could lead to leaking file descriptors&lt;/li&gt;
&lt;li&gt;STORM-196: When JVM_OPTS are set, storm jar fails to detect storm.jar from environment&lt;/li&gt;
&lt;li&gt;STORM-260: Fix a potential race condition with simulated time in Storm&amp;#39;s unit tests&lt;/li&gt;
&lt;li&gt;STORM-258: Update commons-io version to 2.4&lt;/li&gt;
&lt;li&gt;STORM-270: don&amp;#39;t package .clj files in release jars.&lt;/li&gt;
&lt;li&gt;STORM-273: Error while running storm topologies on Windows using &amp;quot;storm jar&amp;quot;&lt;/li&gt;
&lt;li&gt;STROM-247: Replace links to github resources in storm script&lt;/li&gt;
&lt;li&gt;STORM-263: Update Kryo version to 2.21+&lt;/li&gt;
&lt;li&gt;STORM-187: Fix Netty error &amp;quot;java.lang.IllegalArgumentException: timeout value is negative&amp;quot;&lt;/li&gt;
&lt;li&gt;STORM-186: fix float secs to millis long convertion&lt;/li&gt;
&lt;li&gt;STORM-70: Upgrade to ZK-3.4.5 and curator-1.3.3&lt;/li&gt;
&lt;li&gt;STORM-146: Unit test regression when storm is compiled with 3.4.5 zookeeper&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Wed, 25 Jun 2014 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2014/06/25/storm092-released.html</link>
<guid isPermaLink="true">http://storm.apache.org/2014/06/25/storm092-released.html</guid>
</item>
<item>
<title>Storm Logo Contest Results</title>
<description>&lt;p&gt;The Apache Storm logo contest is now complete and was a great success. We received votes from 7 PPMC members as well as 55 votes from the greater Storm community. Thank you to everyone who participated by voting.&lt;/p&gt;
&lt;h2 id=&quot;the-winner&quot;&gt;The Winner&lt;/h2&gt;
&lt;p&gt;Congratulations to Jennifer Lee, whose &lt;a href=&quot;/2014/04/29/logo-jlee2.html&quot;&gt;3rd entry&lt;/a&gt; received the most points from both the PPMC as well as the Storm community. Final vote tallies are listed below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/logocontest/storm_logo_winner.png&quot; alt=&quot;Storm Logo&quot;&gt;&lt;/p&gt;
&lt;p&gt;The Apache Storm project management team will now begin the process of finalizing the logo and making it official.&lt;/p&gt;
&lt;p&gt;Congratulations Jennifer, and thanks again to everyone who participated!&lt;/p&gt;
&lt;hr&gt;
&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: left&quot;&gt;Entry&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;PPMC&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Community&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;/2014/04/23/logo-abartos.html&quot;&gt;6 - Alec Bartos&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;41&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;/2014/04/29/logo-jlee1.html&quot;&gt;9 - Jennifer Lee&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;7&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;111&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left&quot;&gt;&lt;a href=&quot;/2014/04/29/logo-jlee2.html&quot;&gt;10 - Jennifer Lee&lt;/a&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;26&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;123&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</description>
<pubDate>Tue, 17 Jun 2014 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2014/06/17/contest-results.html</link>
<guid isPermaLink="true">http://storm.apache.org/2014/06/17/contest-results.html</guid>
</item>
<item>
<title>Apache Storm Logo Contest</title>
<description>&lt;p&gt;Apache Storm is a platform for distributed, real-time computation that has been undergoing incubation at Apache since September 18, 2013. You can contribute by helping establish the Storm brand by submitting a proposal for the Apache Storm logo.&lt;/p&gt;
&lt;p&gt;Your proposal will be published on the &lt;a href=&quot;http://storm.incubator.apache.org&quot;&gt;Storm project website&lt;/a&gt; next to the other proposals. On &lt;strong&gt;Wednesday, April 30, 2014&lt;/strong&gt; the community will choose the new logo through a vote on the &lt;a href=&quot;http://mail-archives.apache.org/mod_mbox/incubator-storm-dev/&quot;&gt;Apache Storm Mailing List&lt;/a&gt;. If more than 10 proposals are received, voting will take place in two rounds, with the first round selecting 10 proposals to move to round two.&lt;/p&gt;
&lt;p&gt;The winning artist will be credited on the Apache Storm website as having designed the logo, and may include a link to her/his website or blog. Prizes for the winner(s) are currently TBD.&lt;/p&gt;
&lt;h2 id=&quot;guidelines&quot;&gt;GUIDELINES&lt;/h2&gt;
&lt;p&gt;The logo should meet the following requirements: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Include 2 versions of the logo: a rectangular layout (full brand) and a square layout (icon, stand-alone logo) &lt;/li&gt;
&lt;li&gt;Be scalable up or down (hi-res raster, or vector) &lt;/li&gt;
&lt;li&gt;Translate to a 2-color representation (black/white, 2 greys, etc.) &lt;/li&gt;
&lt;li&gt;Able to be inverted if running on a dark background &lt;/li&gt;
&lt;li&gt;Comply with the &lt;a href=&quot;http://www.apache.org/foundation/marks/&quot;&gt;Apache branding requirements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optional, but nice to have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Icons representing storm components (suitable for use in diagrams, presentations, etc.):
&lt;ul&gt;
&lt;li&gt;Spouts&lt;/li&gt;
&lt;li&gt;Bolts&lt;/li&gt;
&lt;li&gt;Streams&lt;/li&gt;
&lt;li&gt;Trident&lt;/li&gt;
&lt;li&gt;Functions/Filters&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: The winning design as accepted by popular vote will be treated as a proposal that can be modified and iterated upon to reach its final form. &lt;/p&gt;
&lt;p&gt;There is no limit on the number of entries per individual.&lt;/p&gt;
&lt;h2 id=&quot;inspiration&quot;&gt;INSPIRATION&lt;/h2&gt;
&lt;p&gt;While designing the logo, keep in mind what describes Storm: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Distributed Computation&lt;/li&gt;
&lt;li&gt;High Performance&lt;/li&gt;
&lt;li&gt;Fault Tolerance&lt;/li&gt;
&lt;li&gt;Community Driven&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;deadline&quot;&gt;DEADLINE&lt;/h2&gt;
&lt;p&gt;The contest will be open until &lt;strong&gt;Wednesday, April 30, 2014&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-to-enter&quot;&gt;HOW TO ENTER&lt;/h2&gt;
&lt;p&gt;Send the &lt;a href=&quot;mailto:dev@storm.incubator.apache.org&quot;&gt;Apache Storm Mailing List&lt;/a&gt; links to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A PNG version of the logo (and it&amp;#39;s scalable variations) &lt;/li&gt;
&lt;li&gt;A ZIP file with all assets&lt;/li&gt;
&lt;li&gt;(Optional) A link to a blog post, etc. describing the proposal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Alternatively, contributers can mail the above to the &lt;a href=&quot;mailto:ptgoetz@apache.org&quot;&gt;contest coordinator&lt;/a&gt; to have them forwarded to the mailing list.&lt;/p&gt;
&lt;p&gt;Contributors may also publicise their proposal by tweeting links to a proposal with the hashtag #stormlogocontest&lt;/p&gt;
&lt;h2 id=&quot;license&quot;&gt;LICENSE&lt;/h2&gt;
&lt;p&gt;The authors of the selected Apache Storm logo(s) will be required to donate them to the Apache Storm project and complete and &lt;a href=&quot;http://www.apache.org/licenses/icla.txt&quot;&gt;Apache Individual Contributor License Agreement(ICLA)&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Thu, 10 Apr 2014 00:00:00 -0700</pubDate>
<link>http://storm.apache.org/2014/04/10/storm-logo-contest.html</link>
<guid isPermaLink="true">http://storm.apache.org/2014/04/10/storm-logo-contest.html</guid>
</item>
</channel>
</rss>