http://git-wip-us.apache.org/repos/asf/storm-site/blob/ff14ea94/content/releases/0.10.1/Creating-a-new-Storm-project.html
----------------------------------------------------------------------
diff --git a/content/releases/0.10.1/Creating-a-new-Storm-project.html 
b/content/releases/0.10.1/Creating-a-new-Storm-project.html
deleted file mode 100644
index 4ffd1e5..0000000
--- a/content/releases/0.10.1/Creating-a-new-Storm-project.html
+++ /dev/null
@@ -1,272 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-    <link rel="icon" href="/favicon.ico" type="image/x-icon">
-
-    <title>Creating a New Storm Project</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Bootstrap theme -->
-    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
-    <link href="/css/style.css" rel="stylesheet">
-    <link href="/assets/css/owl.theme.css" rel="stylesheet">
-    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
-    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
-    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
-    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
-    <script type="text/javascript" src="/assets/js/storm.js"></script>
-    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
-    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-    
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
-    <!--[if lt IE 9]>
-      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
-      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
-    <![endif]-->
-  </head>
-
-
-  <body>
-    <header>
-  <div class="container-fluid">
-     <div class="row">
-          <div class="col-md-5">
-            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
-          </div>
-          <div class="col-md-5">
-            
-              <h1>Version: 0.10.1</h1>
-            
-          </div>
-          <div class="col-md-2">
-            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-          </div>
-        </div>
-    </div>
-</header>
-<!--Header End-->
-<!--Navigation Begin-->
-<div class="navbar" role="banner">
-  <div class="container-fluid">
-      <div class="navbar-header">
-          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-        </div>
-        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
-          <ul class="nav navbar-nav">
-              <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                      
-                        
-                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.2.0/index.html">1.2.0</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.2/index.html">1.1.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.6/index.html">1.0.6</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                    </ul>
-                </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
-                        <li><a href="/contribute/People.html">People</a></li>
-                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                    </ul>
-                </li>
-                <li><a href="/2018/02/15/storm120-released.html" 
id="news">News</a></li>
-            </ul>
-        </nav>
-    </div>
-</div>
-
-
-
-    <div class="container-fluid">
-    <h1 class="page-title">Creating a New Storm Project</h1>
-          <div class="row">
-               <div class="col-md-12">
-                    <!-- Documentation -->
-
-<p class="post-meta"></p>
-
-<p>This page outlines how to set up a Storm project for development. The steps 
are:</p>
-
-<ol>
-<li>Add Storm jars to classpath</li>
-<li>If using multilang, add multilang dir to classpath</li>
-</ol>
-
-<p>Follow along to see how to set up the <a 
href="http://github.com/apache/storm/blob/v0.10.1/examples/storm-starter";>storm-starter</a>
 project in Eclipse.</p>
-
-<h3 id="add-storm-jars-to-classpath">Add Storm jars to classpath</h3>
-
-<p>You&#39;ll need the Storm jars on your classpath to develop Storm 
topologies. Using <a href="Maven.html">Maven</a> is highly recommended. <a 
href="http://github.com/apache/storm/blob/v0.10.1/examples/storm-starter/pom.xml";>Here&#39;s
 an example</a> of how to setup your pom.xml for a Storm project. If you 
don&#39;t want to use Maven, you can include the jars from the Storm release on 
your classpath.</p>
-
-<p>To set up the classpath in Eclipse, create a new Java project, include 
<code>src/jvm/</code> as a source path, and make sure all the jars in 
<code>lib/</code> and <code>lib/dev/</code> are in the <code>Referenced 
Libraries</code> section of the project.</p>
-
-<h3 id="if-using-multilang-add-multilang-dir-to-classpath">If using multilang, 
add multilang dir to classpath</h3>
-
-<p>If you implement spouts or bolts in languages other than Java, then those 
implementations should be under the <code>multilang/resources/</code> directory 
of the project. For Storm to find these files in local mode, the 
<code>resources/</code> dir needs to be on the classpath. You can do this in 
Eclipse by adding <code>multilang/</code> as a source folder. You may also need 
to add multilang/resources as a source directory.</p>
-
-<p>For more information on writing topologies in other languages, see <a 
href="Using-non-JVM-languages-with-Storm.html">Using non-JVM languages with 
Storm</a>.</p>
-
-<p>To test that everything is working in Eclipse, you should now be able to 
<code>Run</code> the <code>WordCountTopology.java</code> file. You will see 
messages being emitted at the console for 10 seconds.</p>
-
-
-
-                 </div>
-              </div>
-         </div>
-<footer>
-    <div class="container-fluid">
-        <div class="row">
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Meetups</h5>
-                    <ul class="latest-news">
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
-                        
-                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>About Storm</h5>
-                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
-               </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>First Look</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
-                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
-                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
-                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Documentation</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/index.html">Index</a></li>
-                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
-                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <hr/>
-        <div class="row">   
-            <div class="col-md-12">
-                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
-                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
-                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
-            </div>
-        </div>
-    </div>
-</footer>
-<!--Footer End-->
-<!-- Scroll to top -->
-<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
-
-</body>
-
-</html>
-

http://git-wip-us.apache.org/repos/asf/storm-site/blob/ff14ea94/content/releases/0.10.1/DSLs-and-multilang-adapters.html
----------------------------------------------------------------------
diff --git a/content/releases/0.10.1/DSLs-and-multilang-adapters.html 
b/content/releases/0.10.1/DSLs-and-multilang-adapters.html
deleted file mode 100644
index 962b127..0000000
--- a/content/releases/0.10.1/DSLs-and-multilang-adapters.html
+++ /dev/null
@@ -1,257 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-    <link rel="icon" href="/favicon.ico" type="image/x-icon">
-
-    <title>Storm DSLs and Multi-Lang Adapters</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Bootstrap theme -->
-    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
-    <link href="/css/style.css" rel="stylesheet">
-    <link href="/assets/css/owl.theme.css" rel="stylesheet">
-    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
-    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
-    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
-    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
-    <script type="text/javascript" src="/assets/js/storm.js"></script>
-    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
-    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-    
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
-    <!--[if lt IE 9]>
-      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
-      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
-    <![endif]-->
-  </head>
-
-
-  <body>
-    <header>
-  <div class="container-fluid">
-     <div class="row">
-          <div class="col-md-5">
-            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
-          </div>
-          <div class="col-md-5">
-            
-              <h1>Version: 0.10.1</h1>
-            
-          </div>
-          <div class="col-md-2">
-            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-          </div>
-        </div>
-    </div>
-</header>
-<!--Header End-->
-<!--Navigation Begin-->
-<div class="navbar" role="banner">
-  <div class="container-fluid">
-      <div class="navbar-header">
-          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-        </div>
-        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
-          <ul class="nav navbar-nav">
-              <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                      
-                        
-                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.2.0/index.html">1.2.0</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.2/index.html">1.1.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.6/index.html">1.0.6</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                    </ul>
-                </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
-                        <li><a href="/contribute/People.html">People</a></li>
-                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                    </ul>
-                </li>
-                <li><a href="/2018/02/15/storm120-released.html" 
id="news">News</a></li>
-            </ul>
-        </nav>
-    </div>
-</div>
-
-
-
-    <div class="container-fluid">
-    <h1 class="page-title">Storm DSLs and Multi-Lang Adapters</h1>
-          <div class="row">
-               <div class="col-md-12">
-                    <!-- Documentation -->
-
-<p class="post-meta"></p>
-
-<ul>
-<li><a href="https://github.com/velvia/ScalaStorm";>Scala DSL</a></li>
-<li><a href="https://github.com/colinsurprenant/redstorm";>JRuby DSL</a></li>
-<li><a href="Clojure-DSL.html">Clojure DSL</a></li>
-<li><a href="https://github.com/tomdz/storm-esper";>Storm/Esper 
integration</a>: Streaming SQL on top of Storm</li>
-<li><a href="https://github.com/dan-blanchard/io-storm";>io-storm</a>: Perl 
multilang adapter</li>
-</ul>
-
-
-
-                 </div>
-              </div>
-         </div>
-<footer>
-    <div class="container-fluid">
-        <div class="row">
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Meetups</h5>
-                    <ul class="latest-news">
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
-                        
-                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>About Storm</h5>
-                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
-               </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>First Look</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
-                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
-                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
-                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Documentation</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/index.html">Index</a></li>
-                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
-                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <hr/>
-        <div class="row">   
-            <div class="col-md-12">
-                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
-                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
-                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
-            </div>
-        </div>
-    </div>
-</footer>
-<!--Footer End-->
-<!-- Scroll to top -->
-<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
-
-</body>
-
-</html>
-

http://git-wip-us.apache.org/repos/asf/storm-site/blob/ff14ea94/content/releases/0.10.1/Daemon-Fault-Tolerance.html
----------------------------------------------------------------------
diff --git a/content/releases/0.10.1/Daemon-Fault-Tolerance.html 
b/content/releases/0.10.1/Daemon-Fault-Tolerance.html
deleted file mode 100644
index 55b4393..0000000
--- a/content/releases/0.10.1/Daemon-Fault-Tolerance.html
+++ /dev/null
@@ -1,275 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-    <link rel="icon" href="/favicon.ico" type="image/x-icon">
-
-    <title>Daemon Fault Tolerance</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Bootstrap theme -->
-    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
-    <link href="/css/style.css" rel="stylesheet">
-    <link href="/assets/css/owl.theme.css" rel="stylesheet">
-    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
-    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
-    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
-    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
-    <script type="text/javascript" src="/assets/js/storm.js"></script>
-    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
-    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-    
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
-    <!--[if lt IE 9]>
-      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
-      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
-    <![endif]-->
-  </head>
-
-
-  <body>
-    <header>
-  <div class="container-fluid">
-     <div class="row">
-          <div class="col-md-5">
-            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
-          </div>
-          <div class="col-md-5">
-            
-              <h1>Version: 0.10.1</h1>
-            
-          </div>
-          <div class="col-md-2">
-            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-          </div>
-        </div>
-    </div>
-</header>
-<!--Header End-->
-<!--Navigation Begin-->
-<div class="navbar" role="banner">
-  <div class="container-fluid">
-      <div class="navbar-header">
-          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-        </div>
-        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
-          <ul class="nav navbar-nav">
-              <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                      
-                        
-                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.2.0/index.html">1.2.0</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.2/index.html">1.1.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.6/index.html">1.0.6</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                    </ul>
-                </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
-                        <li><a href="/contribute/People.html">People</a></li>
-                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                    </ul>
-                </li>
-                <li><a href="/2018/02/15/storm120-released.html" 
id="news">News</a></li>
-            </ul>
-        </nav>
-    </div>
-</div>
-
-
-
-    <div class="container-fluid">
-    <h1 class="page-title">Daemon Fault Tolerance</h1>
-          <div class="row">
-               <div class="col-md-12">
-                    <!-- Documentation -->
-
-<p class="post-meta"></p>
-
-<p>Storm has several different daemon processes.  Nimbus that schedules 
workers, supervisors that launch and kill workers, the log viewer that gives 
access to logs, and the UI that shows the status of a cluster.</p>
-
-<h2 id="what-happens-when-a-worker-dies">What happens when a worker dies?</h2>
-
-<p>When a worker dies, the supervisor will restart it. If it continuously 
fails on startup and is unable to heartbeat to Nimbus, Nimbus will reschedule 
the worker.</p>
-
-<h2 id="what-happens-when-a-node-dies">What happens when a node dies?</h2>
-
-<p>The tasks assigned to that machine will time-out and Nimbus will reassign 
those tasks to other machines.</p>
-
-<h2 id="what-happens-when-nimbus-or-supervisor-daemons-die">What happens when 
Nimbus or Supervisor daemons die?</h2>
-
-<p>The Nimbus and Supervisor daemons are designed to be fail-fast (process 
self-destructs whenever any unexpected situation is encountered) and stateless 
(all state is kept in Zookeeper or on disk). As described in <a 
href="Setting-up-a-Storm-cluster.html">Setting up a Storm cluster</a>, the 
Nimbus and Supervisor daemons must be run under supervision using a tool like 
daemontools or monit. So if the Nimbus or Supervisor daemons die, they restart 
like nothing happened.</p>
-
-<p>Most notably, no worker processes are affected by the death of Nimbus or 
the Supervisors. This is in contrast to Hadoop, where if the JobTracker dies, 
all the running jobs are lost. </p>
-
-<h2 id="is-nimbus-a-single-point-of-failure">Is Nimbus a single point of 
failure?</h2>
-
-<p>If you lose the Nimbus node, the workers will still continue to function. 
Additionally, supervisors will continue to restart workers if they die. 
However, without Nimbus, workers won&#39;t be reassigned to other machines when 
necessary (like if you lose a worker machine). </p>
-
-<p>So the answer is that Nimbus is &quot;sort of&quot; a SPOF. In practice, 
it&#39;s not a big deal since nothing catastrophic happens when the Nimbus 
daemon dies. There are plans to make Nimbus highly available in the future.</p>
-
-<h2 id="how-does-storm-guarantee-data-processing">How does Storm guarantee 
data processing?</h2>
-
-<p>Storm provides mechanisms to guarantee data processing even if nodes die or 
messages are lost. See <a 
href="Guaranteeing-message-processing.html">Guaranteeing message processing</a> 
for the details.</p>
-
-
-
-                 </div>
-              </div>
-         </div>
-<footer>
-    <div class="container-fluid">
-        <div class="row">
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Meetups</h5>
-                    <ul class="latest-news">
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
-                        
-                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>About Storm</h5>
-                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
-               </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>First Look</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
-                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
-                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
-                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Documentation</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/index.html">Index</a></li>
-                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
-                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <hr/>
-        <div class="row">   
-            <div class="col-md-12">
-                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
-                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
-                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
-            </div>
-        </div>
-    </div>
-</footer>
-<!--Footer End-->
-<!-- Scroll to top -->
-<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
-
-</body>
-
-</html>
-

http://git-wip-us.apache.org/repos/asf/storm-site/blob/ff14ea94/content/releases/0.10.1/Defining-a-non-jvm-language-dsl-for-storm.html
----------------------------------------------------------------------
diff --git 
a/content/releases/0.10.1/Defining-a-non-jvm-language-dsl-for-storm.html 
b/content/releases/0.10.1/Defining-a-non-jvm-language-dsl-for-storm.html
deleted file mode 100644
index e72be3e..0000000
--- a/content/releases/0.10.1/Defining-a-non-jvm-language-dsl-for-storm.html
+++ /dev/null
@@ -1,271 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-    <link rel="icon" href="/favicon.ico" type="image/x-icon">
-
-    <title>Defining a Non-JVM DSL for Storm</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Bootstrap theme -->
-    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
-    <link href="/css/style.css" rel="stylesheet">
-    <link href="/assets/css/owl.theme.css" rel="stylesheet">
-    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
-    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
-    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
-    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
-    <script type="text/javascript" src="/assets/js/storm.js"></script>
-    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
-    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-    
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
-    <!--[if lt IE 9]>
-      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
-      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
-    <![endif]-->
-  </head>
-
-
-  <body>
-    <header>
-  <div class="container-fluid">
-     <div class="row">
-          <div class="col-md-5">
-            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
-          </div>
-          <div class="col-md-5">
-            
-              <h1>Version: 0.10.1</h1>
-            
-          </div>
-          <div class="col-md-2">
-            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-          </div>
-        </div>
-    </div>
-</header>
-<!--Header End-->
-<!--Navigation Begin-->
-<div class="navbar" role="banner">
-  <div class="container-fluid">
-      <div class="navbar-header">
-          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-        </div>
-        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
-          <ul class="nav navbar-nav">
-              <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                      
-                        
-                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.2.0/index.html">1.2.0</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.2/index.html">1.1.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.6/index.html">1.0.6</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                    </ul>
-                </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
-                        <li><a href="/contribute/People.html">People</a></li>
-                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                    </ul>
-                </li>
-                <li><a href="/2018/02/15/storm120-released.html" 
id="news">News</a></li>
-            </ul>
-        </nav>
-    </div>
-</div>
-
-
-
-    <div class="container-fluid">
-    <h1 class="page-title">Defining a Non-JVM DSL for Storm</h1>
-          <div class="row">
-               <div class="col-md-12">
-                    <!-- Documentation -->
-
-<p class="post-meta"></p>
-
-<p>The right place to start to learn how to make a non-JVM DSL for Storm is <a 
href="http://github.com/apache/storm/blob/v0.10.1/storm-core/src/storm.thrift";>storm-core/src/storm.thrift</a>.
 Since Storm topologies are just Thrift structures, and Nimbus is a Thrift 
daemon, you can create and submit topologies in any language.</p>
-
-<p>When you create the Thrift structs for spouts and bolts, the code for the 
spout or bolt is specified in the ComponentObject struct:</p>
-<div class="highlight"><pre><code class="language-" data-lang="">union 
ComponentObject {
-  1: binary serialized_java;
-  2: ShellComponent shell;
-  3: JavaObject java_object;
-}
-</code></pre></div>
-<p>For a Python DSL, you would want to make use of &quot;2&quot; and 
&quot;3&quot;. ShellComponent lets you specify a script to run that component 
(e.g., your python code). And JavaObject lets you specify native java spouts 
and bolts for the component (and Storm will use reflection to create that spout 
or bolt).</p>
-
-<p>There&#39;s a &quot;storm shell&quot; command that will help with 
submitting a topology. Its usage is like this:</p>
-<div class="highlight"><pre><code class="language-" data-lang="">storm shell 
resources/ python topology.py arg1 arg2
-</code></pre></div>
-<p>storm shell will then package resources/ into a jar, upload the jar to 
Nimbus, and call your topology.py script like this:</p>
-<div class="highlight"><pre><code class="language-" data-lang="">python 
topology.py arg1 arg2 {nimbus-host} {nimbus-port} {uploaded-jar-location}
-</code></pre></div>
-<p>Then you can connect to Nimbus using the Thrift API and submit the 
topology, passing {uploaded-jar-location} into the submitTopology method. For 
reference, here&#39;s the submitTopology definition:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kt">void</span> <span class="nf">submitTopology</span><span 
class="o">(</span><span class="mi">1</span><span class="o">:</span> <span 
class="n">string</span> <span class="n">name</span><span class="o">,</span> 
<span class="mi">2</span><span class="o">:</span> <span class="n">string</span> 
<span class="n">uploadedJarLocation</span><span class="o">,</span> <span 
class="mi">3</span><span class="o">:</span> <span class="n">string</span> <span 
class="n">jsonConf</span><span class="o">,</span> <span 
class="mi">4</span><span class="o">:</span> <span 
class="n">StormTopology</span> <span class="n">topology</span><span 
class="o">)</span> <span class="kd">throws</span> <span class="o">(</span><span 
class="mi">1</span><span class="o">:</span> <span 
class="n">AlreadyAliveException</span> <span class="n">e</span><span 
class="o">,</span> <span class="mi">2</span><span class="o">:</span> <span 
class="n">InvalidTop
 ologyException</span> <span class="n">ite</span><span class="o">);</span>
-</code></pre></div>
-<p>Finally, one of the key things to do in a non-JVM DSL is make it easy to 
define the entire topology in one file (the bolts, spouts, and the definition 
of the topology).</p>
-
-
-
-                 </div>
-              </div>
-         </div>
-<footer>
-    <div class="container-fluid">
-        <div class="row">
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Meetups</h5>
-                    <ul class="latest-news">
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
-                        
-                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>About Storm</h5>
-                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
-               </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>First Look</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
-                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
-                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
-                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Documentation</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/index.html">Index</a></li>
-                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
-                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <hr/>
-        <div class="row">   
-            <div class="col-md-12">
-                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
-                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
-                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
-            </div>
-        </div>
-    </div>
-</footer>
-<!--Footer End-->
-<!-- Scroll to top -->
-<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
-
-</body>
-
-</html>
-

http://git-wip-us.apache.org/repos/asf/storm-site/blob/ff14ea94/content/releases/0.10.1/Distributed-RPC.html
----------------------------------------------------------------------
diff --git a/content/releases/0.10.1/Distributed-RPC.html 
b/content/releases/0.10.1/Distributed-RPC.html
deleted file mode 100644
index c9c871c..0000000
--- a/content/releases/0.10.1/Distributed-RPC.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-    <meta charset="utf-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1">
-
-    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
-    <link rel="icon" href="/favicon.ico" type="image/x-icon">
-
-    <title>Distributed RPC</title>
-
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Bootstrap theme -->
-    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">
-
-    <!-- Custom styles for this template -->
-    <link rel="stylesheet" 
href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css";>
-    <link href="/css/style.css" rel="stylesheet">
-    <link href="/assets/css/owl.theme.css" rel="stylesheet">
-    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
-    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
-    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
-    <script type="text/javascript" 
src="/assets/js/owl.carousel.min.js"></script>
-    <script type="text/javascript" src="/assets/js/storm.js"></script>
-    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
-    <!--[if lt IE 9]><script 
src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
-    
-    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
-    <!--[if lt IE 9]>
-      <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
-      <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
-    <![endif]-->
-  </head>
-
-
-  <body>
-    <header>
-  <div class="container-fluid">
-     <div class="row">
-          <div class="col-md-5">
-            <a href="/index.html"><img src="/images/logo.png" class="logo" 
/></a>
-          </div>
-          <div class="col-md-5">
-            
-              <h1>Version: 0.10.1</h1>
-            
-          </div>
-          <div class="col-md-2">
-            <a href="/downloads.html" class="btn-std btn-block 
btn-download">Download</a>
-          </div>
-        </div>
-    </div>
-</header>
-<!--Header End-->
-<!--Navigation Begin-->
-<div class="navbar" role="banner">
-  <div class="container-fluid">
-      <div class="navbar-header">
-          <button class="navbar-toggle" type="button" data-toggle="collapse" 
data-target=".bs-navbar-collapse">
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-        </div>
-        <nav class="collapse navbar-collapse bs-navbar-collapse" 
role="navigation">
-          <ul class="nav navbar-nav">
-              <li><a href="/index.html" id="home">Home</a></li>
-                <li><a href="/getting-help.html" id="getting-help">Getting 
Help</a></li>
-                <li><a href="/about/integrates.html" id="project-info">Project 
Information</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="documentation">Documentation <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                      
-                        
-                          <li><a 
href="/releases/2.0.0-SNAPSHOT/index.html">2.0.0-SNAPSHOT</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.2.0/index.html">1.2.0</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.2/index.html">1.1.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.1/index.html">1.1.1</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.1.0/index.html">1.1.0</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.6/index.html">1.0.6</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.4/index.html">1.0.4</a></li>
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/1.0.3/index.html">1.0.3</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.2/index.html">0.10.2</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.10.1/index.html">0.10.1</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.7/index.html">0.9.7</a></li>
-                        
-                      
-                        
-                          <li><a 
href="/releases/0.9.6/index.html">0.9.6</a></li>
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                        
-                      
-                    </ul>
-                </li>
-                <li><a href="/talksAndVideos.html">Talks and 
Slideshows</a></li>
-                <li class="dropdown">
-                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" 
id="contribute">Community <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a 
href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
-                        <li><a href="/contribute/People.html">People</a></li>
-                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
-                    </ul>
-                </li>
-                <li><a href="/2018/02/15/storm120-released.html" 
id="news">News</a></li>
-            </ul>
-        </nav>
-    </div>
-</div>
-
-
-
-    <div class="container-fluid">
-    <h1 class="page-title">Distributed RPC</h1>
-          <div class="row">
-               <div class="col-md-12">
-                    <!-- Documentation -->
-
-<p class="post-meta"></p>
-
-<p>The idea behind distributed RPC (DRPC) is to parallelize the computation of 
really intense functions on the fly using Storm. The Storm topology takes in as 
input a stream of function arguments, and it emits an output stream of the 
results for each of those function calls. </p>
-
-<p>DRPC is not so much a feature of Storm as it is a pattern expressed from 
Storm&#39;s primitives of streams, spouts, bolts, and topologies. DRPC could 
have been packaged as a separate library from Storm, but it&#39;s so useful 
that it&#39;s bundled with Storm.</p>
-
-<h3 id="high-level-overview">High level overview</h3>
-
-<p>Distributed RPC is coordinated by a &quot;DRPC server&quot; (Storm comes 
packaged with an implementation of this). The DRPC server coordinates receiving 
an RPC request, sending the request to the Storm topology, receiving the 
results from the Storm topology, and sending the results back to the waiting 
client. From a client&#39;s perspective, a distributed RPC call looks just like 
a regular RPC call. For example, here&#39;s how a client would compute the 
results for the &quot;reach&quot; function with the argument &quot;<a 
href="http://twitter.com%22:";>http://twitter.com&quot;:</a></p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="n">DRPCClient</span> <span class="n">client</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">DRPCClient</span><span class="o">(</span><span 
class="s">"drpc-host"</span><span class="o">,</span> <span 
class="mi">3772</span><span class="o">);</span>
-<span class="n">String</span> <span class="n">result</span> <span 
class="o">=</span> <span class="n">client</span><span class="o">.</span><span 
class="na">execute</span><span class="o">(</span><span 
class="s">"reach"</span><span class="o">,</span> <span 
class="s">"http://twitter.com";</span><span class="o">);</span>
-</code></pre></div>
-<p>The distributed RPC workflow looks like this:</p>
-
-<p><img src="images/drpc-workflow.png" alt="Tasks in a topology"></p>
-
-<p>A client sends the DRPC server the name of the function to execute and the 
arguments to that function. The topology implementing that function uses a 
<code>DRPCSpout</code> to receive a function invocation stream from the DRPC 
server. Each function invocation is tagged with a unique id by the DRPC server. 
The topology then computes the result and at the end of the topology a bolt 
called <code>ReturnResults</code> connects to the DRPC server and gives it the 
result for the function invocation id. The DRPC server then uses the id to 
match up that result with which client is waiting, unblocks the waiting client, 
and sends it the result.</p>
-
-<h3 id="lineardrpctopologybuilder">LinearDRPCTopologyBuilder</h3>
-
-<p>Storm comes with a topology builder called <a 
href="javadocs/backtype/storm/drpc/LinearDRPCTopologyBuilder.html">LinearDRPCTopologyBuilder</a>
 that automates almost all the steps involved for doing DRPC. These include:</p>
-
-<ol>
-<li>Setting up the spout</li>
-<li>Returning the results to the DRPC server</li>
-<li>Providing functionality to bolts for doing finite aggregations over groups 
of tuples</li>
-</ol>
-
-<p>Let&#39;s look at a simple example. Here&#39;s the implementation of a DRPC 
topology that returns its input argument with a &quot;!&quot; appended:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="kd">static</span> <span 
class="kd">class</span> <span class="nc">ExclaimBolt</span> <span 
class="kd">extends</span> <span class="n">BaseBasicBolt</span> <span 
class="o">{</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">execute</span><span class="o">(</span><span class="n">Tuple</span> 
<span class="n">tuple</span><span class="o">,</span> <span 
class="n">BasicOutputCollector</span> <span class="n">collector</span><span 
class="o">)</span> <span class="o">{</span>
-        <span class="n">String</span> <span class="n">input</span> <span 
class="o">=</span> <span class="n">tuple</span><span class="o">.</span><span 
class="na">getString</span><span class="o">(</span><span 
class="mi">1</span><span class="o">);</span>
-        <span class="n">collector</span><span class="o">.</span><span 
class="na">emit</span><span class="o">(</span><span class="k">new</span> <span 
class="n">Values</span><span class="o">(</span><span 
class="n">tuple</span><span class="o">.</span><span 
class="na">getValue</span><span class="o">(</span><span 
class="mi">0</span><span class="o">),</span> <span class="n">input</span> <span 
class="o">+</span> <span class="s">"!"</span><span class="o">));</span>
-    <span class="o">}</span>
-
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">declareOutputFields</span><span class="o">(</span><span 
class="n">OutputFieldsDeclarer</span> <span class="n">declarer</span><span 
class="o">)</span> <span class="o">{</span>
-        <span class="n">declarer</span><span class="o">.</span><span 
class="na">declare</span><span class="o">(</span><span class="k">new</span> 
<span class="n">Fields</span><span class="o">(</span><span 
class="s">"id"</span><span class="o">,</span> <span 
class="s">"result"</span><span class="o">));</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-
-<span class="kd">public</span> <span class="kd">static</span> <span 
class="kt">void</span> <span class="nf">main</span><span 
class="o">(</span><span class="n">String</span><span class="o">[]</span> <span 
class="n">args</span><span class="o">)</span> <span class="kd">throws</span> 
<span class="n">Exception</span> <span class="o">{</span>
-    <span class="n">LinearDRPCTopologyBuilder</span> <span 
class="n">builder</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">LinearDRPCTopologyBuilder</span><span class="o">(</span><span 
class="s">"exclamation"</span><span class="o">);</span>
-    <span class="n">builder</span><span class="o">.</span><span 
class="na">addBolt</span><span class="o">(</span><span class="k">new</span> 
<span class="n">ExclaimBolt</span><span class="o">(),</span> <span 
class="mi">3</span><span class="o">);</span>
-    <span class="c1">// ...</span>
-<span class="o">}</span>
-</code></pre></div>
-<p>As you can see, there&#39;s very little to it. When creating the 
<code>LinearDRPCTopologyBuilder</code>, you tell it the name of the DRPC 
function for the topology. A single DRPC server can coordinate many functions, 
and the function name distinguishes the functions from one another. The first 
bolt you declare will take in as input 2-tuples, where the first field is the 
request id and the second field is the arguments for that request. 
<code>LinearDRPCTopologyBuilder</code> expects the last bolt to emit an output 
stream containing 2-tuples of the form [id, result]. Finally, all intermediate 
tuples must contain the request id as the first field.</p>
-
-<p>In this example, <code>ExclaimBolt</code> simply appends a &quot;!&quot; to 
the second field of the tuple. <code>LinearDRPCTopologyBuilder</code> handles 
the rest of the coordination of connecting to the DRPC server and sending 
results back.</p>
-
-<h3 id="local-mode-drpc">Local mode DRPC</h3>
-
-<p>DRPC can be run in local mode. Here&#39;s how to run the above example in 
local mode:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="n">LocalDRPC</span> <span class="n">drpc</span> <span class="o">=</span> 
<span class="k">new</span> <span class="n">LocalDRPC</span><span 
class="o">();</span>
-<span class="n">LocalCluster</span> <span class="n">cluster</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">LocalCluster</span><span class="o">();</span>
-
-<span class="n">cluster</span><span class="o">.</span><span 
class="na">submitTopology</span><span class="o">(</span><span 
class="s">"drpc-demo"</span><span class="o">,</span> <span 
class="n">conf</span><span class="o">,</span> <span 
class="n">builder</span><span class="o">.</span><span 
class="na">createLocalTopology</span><span class="o">(</span><span 
class="n">drpc</span><span class="o">));</span>
-
-<span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">println</span><span class="o">(</span><span class="s">"Results for 
'hello':"</span> <span class="o">+</span> <span class="n">drpc</span><span 
class="o">.</span><span class="na">execute</span><span class="o">(</span><span 
class="s">"exclamation"</span><span class="o">,</span> <span 
class="s">"hello"</span><span class="o">));</span>
-
-<span class="n">cluster</span><span class="o">.</span><span 
class="na">shutdown</span><span class="o">();</span>
-<span class="n">drpc</span><span class="o">.</span><span 
class="na">shutdown</span><span class="o">();</span>
-</code></pre></div>
-<p>First you create a <code>LocalDRPC</code> object. This object simulates a 
DRPC server in process, just like how <code>LocalCluster</code> simulates a 
Storm cluster in process. Then you create the <code>LocalCluster</code> to run 
the topology in local mode. <code>LinearDRPCTopologyBuilder</code> has separate 
methods for creating local topologies and remote topologies. In local mode the 
<code>LocalDRPC</code> object does not bind to any ports so the topology needs 
to know about the object to communicate with it. This is why 
<code>createLocalTopology</code> takes in the <code>LocalDRPC</code> object as 
input.</p>
-
-<p>After launching the topology, you can do DRPC invocations using the 
<code>execute</code> method on <code>LocalDRPC</code>.</p>
-
-<h3 id="remote-mode-drpc">Remote mode DRPC</h3>
-
-<p>Using DRPC on an actual cluster is also straightforward. There&#39;s three 
steps:</p>
-
-<ol>
-<li>Launch DRPC server(s)</li>
-<li>Configure the locations of the DRPC servers</li>
-<li>Submit DRPC topologies to Storm cluster</li>
-</ol>
-
-<p>Launching a DRPC server can be done with the <code>storm</code> script and 
is just like launching Nimbus or the UI:</p>
-<div class="highlight"><pre><code class="language-" data-lang="">bin/storm drpc
-</code></pre></div>
-<p>Next, you need to configure your Storm cluster to know the locations of the 
DRPC server(s). This is how <code>DRPCSpout</code> knows from where to read 
function invocations. This can be done through the <code>storm.yaml</code> file 
or the topology configurations. Configuring this through the 
<code>storm.yaml</code> looks something like this:</p>
-<div class="highlight"><pre><code class="language-yaml" data-lang="yaml"><span 
class="s">drpc.servers</span><span class="pi">:</span>
-  <span class="pi">-</span> <span class="s2">"</span><span 
class="s">drpc1.foo.com"</span>
-  <span class="pi">-</span> <span class="s2">"</span><span 
class="s">drpc2.foo.com"</span>
-</code></pre></div>
-<p>Finally, you launch DRPC topologies using <code>StormSubmitter</code> just 
like you launch any other topology. To run the above example in remote mode, 
you do something like this:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="n">StormSubmitter</span><span class="o">.</span><span 
class="na">submitTopology</span><span class="o">(</span><span 
class="s">"exclamation-drpc"</span><span class="o">,</span> <span 
class="n">conf</span><span class="o">,</span> <span 
class="n">builder</span><span class="o">.</span><span 
class="na">createRemoteTopology</span><span class="o">());</span>
-</code></pre></div>
-<p><code>createRemoteTopology</code> is used to create topologies suitable for 
Storm clusters.</p>
-
-<h3 id="a-more-complex-example">A more complex example</h3>
-
-<p>The exclamation DRPC example was a toy example for illustrating the 
concepts of DRPC. Let&#39;s look at a more complex example which really needs 
the parallelism a Storm cluster provides for computing the DRPC function. The 
example we&#39;ll look at is computing the reach of a URL on Twitter.</p>
-
-<p>The reach of a URL is the number of unique people exposed to a URL on 
Twitter. To compute reach, you need to:</p>
-
-<ol>
-<li>Get all the people who tweeted the URL</li>
-<li>Get all the followers of all those people</li>
-<li>Unique the set of followers</li>
-<li>Count the unique set of followers</li>
-</ol>
-
-<p>A single reach computation can involve thousands of database calls and tens 
of millions of follower records during the computation. It&#39;s a really, 
really intense computation. As you&#39;re about to see, implementing this 
function on top of Storm is dead simple. On a single machine, reach can take 
minutes to compute; on a Storm cluster, you can compute reach for even the 
hardest URLs in a couple seconds.</p>
-
-<p>A sample reach topology is defined in storm-starter <a 
href="http://github.com/apache/storm/blob/v0.10.1/examples/storm-starter/src/jvm/storm/starter/ReachTopology.java";>here</a>.
 Here&#39;s how you define the reach topology:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="n">LinearDRPCTopologyBuilder</span> <span class="n">builder</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">LinearDRPCTopologyBuilder</span><span class="o">(</span><span 
class="s">"reach"</span><span class="o">);</span>
-<span class="n">builder</span><span class="o">.</span><span 
class="na">addBolt</span><span class="o">(</span><span class="k">new</span> 
<span class="n">GetTweeters</span><span class="o">(),</span> <span 
class="mi">3</span><span class="o">);</span>
-<span class="n">builder</span><span class="o">.</span><span 
class="na">addBolt</span><span class="o">(</span><span class="k">new</span> 
<span class="n">GetFollowers</span><span class="o">(),</span> <span 
class="mi">12</span><span class="o">)</span>
-        <span class="o">.</span><span class="na">shuffleGrouping</span><span 
class="o">();</span>
-<span class="n">builder</span><span class="o">.</span><span 
class="na">addBolt</span><span class="o">(</span><span class="k">new</span> 
<span class="n">PartialUniquer</span><span class="o">(),</span> <span 
class="mi">6</span><span class="o">)</span>
-        <span class="o">.</span><span class="na">fieldsGrouping</span><span 
class="o">(</span><span class="k">new</span> <span class="n">Fields</span><span 
class="o">(</span><span class="s">"id"</span><span class="o">,</span> <span 
class="s">"follower"</span><span class="o">));</span>
-<span class="n">builder</span><span class="o">.</span><span 
class="na">addBolt</span><span class="o">(</span><span class="k">new</span> 
<span class="n">CountAggregator</span><span class="o">(),</span> <span 
class="mi">2</span><span class="o">)</span>
-        <span class="o">.</span><span class="na">fieldsGrouping</span><span 
class="o">(</span><span class="k">new</span> <span class="n">Fields</span><span 
class="o">(</span><span class="s">"id"</span><span class="o">));</span>
-</code></pre></div>
-<p>The topology executes as four steps:</p>
-
-<ol>
-<li><code>GetTweeters</code> gets the users who tweeted the URL. It transforms 
an input stream of <code>[id, url]</code> into an output stream of <code>[id, 
tweeter]</code>. Each <code>url</code> tuple will map to many 
<code>tweeter</code> tuples.</li>
-<li><code>GetFollowers</code> gets the followers for the tweeters. It 
transforms an input stream of <code>[id, tweeter]</code> into an output stream 
of <code>[id, follower]</code>. Across all the tasks, there may of course be 
duplication of follower tuples when someone follows multiple people who tweeted 
the same URL.</li>
-<li><code>PartialUniquer</code> groups the followers stream by the follower 
id. This has the effect of the same follower going to the same task. So each 
task of <code>PartialUniquer</code> will receive mutually independent sets of 
followers. Once <code>PartialUniquer</code> receives all the follower tuples 
directed at it for the request id, it emits the unique count of its subset of 
followers.</li>
-<li>Finally, <code>CountAggregator</code> receives the partial counts from 
each of the <code>PartialUniquer</code> tasks and sums them up to complete the 
reach computation.</li>
-</ol>
-
-<p>Let&#39;s take a look at the <code>PartialUniquer</code> bolt:</p>
-<div class="highlight"><pre><code class="language-java" data-lang="java"><span 
class="kd">public</span> <span class="kd">class</span> <span 
class="nc">PartialUniquer</span> <span class="kd">extends</span> <span 
class="n">BaseBatchBolt</span> <span class="o">{</span>
-    <span class="n">BatchOutputCollector</span> <span 
class="n">_collector</span><span class="o">;</span>
-    <span class="n">Object</span> <span class="n">_id</span><span 
class="o">;</span>
-    <span class="n">Set</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">&gt;</span> <span 
class="n">_followers</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">HashSet</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">&gt;();</span>
-
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">prepare</span><span class="o">(</span><span class="n">Map</span> 
<span class="n">conf</span><span class="o">,</span> <span 
class="n">TopologyContext</span> <span class="n">context</span><span 
class="o">,</span> <span class="n">BatchOutputCollector</span> <span 
class="n">collector</span><span class="o">,</span> <span 
class="n">Object</span> <span class="n">id</span><span class="o">)</span> <span 
class="o">{</span>
-        <span class="n">_collector</span> <span class="o">=</span> <span 
class="n">collector</span><span class="o">;</span>
-        <span class="n">_id</span> <span class="o">=</span> <span 
class="n">id</span><span class="o">;</span>
-    <span class="o">}</span>
-
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">execute</span><span class="o">(</span><span class="n">Tuple</span> 
<span class="n">tuple</span><span class="o">)</span> <span class="o">{</span>
-        <span class="n">_followers</span><span class="o">.</span><span 
class="na">add</span><span class="o">(</span><span class="n">tuple</span><span 
class="o">.</span><span class="na">getString</span><span 
class="o">(</span><span class="mi">1</span><span class="o">));</span>
-    <span class="o">}</span>
-
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">finishBatch</span><span class="o">()</span> <span class="o">{</span>
-        <span class="n">_collector</span><span class="o">.</span><span 
class="na">emit</span><span class="o">(</span><span class="k">new</span> <span 
class="n">Values</span><span class="o">(</span><span class="n">_id</span><span 
class="o">,</span> <span class="n">_followers</span><span 
class="o">.</span><span class="na">size</span><span class="o">()));</span>
-    <span class="o">}</span>
-
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">declareOutputFields</span><span class="o">(</span><span 
class="n">OutputFieldsDeclarer</span> <span class="n">declarer</span><span 
class="o">)</span> <span class="o">{</span>
-        <span class="n">declarer</span><span class="o">.</span><span 
class="na">declare</span><span class="o">(</span><span class="k">new</span> 
<span class="n">Fields</span><span class="o">(</span><span 
class="s">"id"</span><span class="o">,</span> <span 
class="s">"partial-count"</span><span class="o">));</span>
-    <span class="o">}</span>
-<span class="o">}</span>
-</code></pre></div>
-<p><code>PartialUniquer</code> implements <code>IBatchBolt</code> by extending 
<code>BaseBatchBolt</code>. A batch bolt provides a first class API to 
processing a batch of tuples as a concrete unit. A new instance of the batch 
bolt is created for each request id, and Storm takes care of cleaning up the 
instances when appropriate. </p>
-
-<p>When <code>PartialUniquer</code> receives a follower tuple in the 
<code>execute</code> method, it adds it to the set for the request id in an 
internal <code>HashSet</code>. </p>
-
-<p>Batch bolts provide the <code>finishBatch</code> method which is called 
after all the tuples for this batch targeted at this task have been processed. 
In the callback, <code>PartialUniquer</code> emits a single tuple containing 
the unique count for its subset of follower ids.</p>
-
-<p>Under the hood, <code>CoordinatedBolt</code> is used to detect when a given 
bolt has received all of the tuples for any given request id. 
<code>CoordinatedBolt</code> makes use of direct streams to manage this 
coordination.</p>
-
-<p>The rest of the topology should be self-explanatory. As you can see, every 
single step of the reach computation is done in parallel, and defining the DRPC 
topology was extremely simple.</p>
-
-<h3 id="non-linear-drpc-topologies">Non-linear DRPC topologies</h3>
-
-<p><code>LinearDRPCTopologyBuilder</code> only handles &quot;linear&quot; DRPC 
topologies, where the computation is expressed as a sequence of steps (like 
reach). It&#39;s not hard to imagine functions that would require a more 
complicated topology with branching and merging of the bolts. For now, to do 
this you&#39;ll need to drop down into using <code>CoordinatedBolt</code> 
directly. Be sure to talk about your use case for non-linear DRPC topologies on 
the mailing list to inform the construction of more general abstractions for 
DRPC topologies.</p>
-
-<h3 id="how-lineardrpctopologybuilder-works">How LinearDRPCTopologyBuilder 
works</h3>
-
-<ul>
-<li>DRPCSpout emits [args, return-info]. return-info is the host and port of 
the DRPC server as well as the id generated by the DRPC server</li>
-<li>constructs a topology comprising of:
-
-<ul>
-<li>DRPCSpout</li>
-<li>PrepareRequest (generates a request id and creates a stream for the return 
info and a stream for the args)</li>
-<li>CoordinatedBolt wrappers and direct groupings</li>
-<li>JoinResult (joins the result with the return info)</li>
-<li>ReturnResult (connects to the DRPC server and returns the result)</li>
-</ul></li>
-<li>LinearDRPCTopologyBuilder is a good example of a higher level abstraction 
built on top of Storm&#39;s primitives</li>
-</ul>
-
-<h3 id="advanced">Advanced</h3>
-
-<ul>
-<li>KeyedFairBolt for weaving the processing of multiple requests at the same 
time</li>
-<li>How to use <code>CoordinatedBolt</code> directly</li>
-</ul>
-
-
-
-                 </div>
-              </div>
-         </div>
-<footer>
-    <div class="container-fluid">
-        <div class="row">
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Meetups</h5>
-                    <ul class="latest-news">
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Apache-Kafka/";>Apache Storm & Apache 
Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Apache Storm & Kafka 
Users</a> <span class="small">(Seattle, WA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/New-York-City-Storm-User-Group/";>NYC Storm User 
Group</a> <span class="small">(New York, NY)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Bay-Area-Stream-Processing";>Bay Area Stream 
Processing</a> <span class="small">(Emeryville, CA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/Boston-Storm-Users/";>Boston Realtime Data</a> <span 
class="small">(Boston, MA)</span></li>
-                        
-                        <li><a 
href="http://www.meetup.com/storm-london";>London Storm User Group</a> <span 
class="small">(London, UK)</span></li>
-                        
-                        <!-- <li><a 
href="http://www.meetup.com/Apache-Storm-Kafka-Users/";>Seatle, WA</a> <span 
class="small">(27 Jun 2015)</span></li> -->
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>About Storm</h5>
-                    <p>Storm integrates with any queueing system and any 
database system. Storm's spout abstraction makes it easy to integrate a new 
queuing system. Likewise, integrating Storm with database systems is easy.</p>
-               </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>First Look</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/Rationale.html">Rationale</a></li>
-                        <li><a 
href="/releases/current/Tutorial.html">Tutorial</a></li>
-                        <li><a 
href="/releases/current/Setting-up-development-environment.html">Setting up 
development environment</a></li>
-                        <li><a 
href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Storm 
project</a></li>
-                    </ul>
-                </div>
-            </div>
-            <div class="col-md-3">
-                <div class="footer-widget">
-                    <h5>Documentation</h5>
-                    <ul class="footer-list">
-                        <li><a 
href="/releases/current/index.html">Index</a></li>
-                        <li><a 
href="/releases/current/javadocs/index.html">Javadoc</a></li>
-                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
-                    </ul>
-                </div>
-            </div>
-        </div>
-        <hr/>
-        <div class="row">   
-            <div class="col-md-12">
-                <p align="center">Copyright © 2015 <a 
href="http://www.apache.org";>Apache Software Foundation</a>. All Rights 
Reserved. 
-                    <br>Apache Storm, Apache, the Apache feather logo, and the 
Apache Storm project logos are trademarks of The Apache Software Foundation. 
-                    <br>All other marks mentioned may be trademarks or 
registered trademarks of their respective owners.</p>
-            </div>
-        </div>
-    </div>
-</footer>
-<!--Footer End-->
-<!-- Scroll to top -->
-<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 
-
-</body>
-
-</html>
-

Reply via email to