gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] storm/doc/pegboard/storm_with_tapestry--hemppah...


From: Hermanni Hyytiälä
Subject: [Gzz-commits] storm/doc/pegboard/storm_with_tapestry--hemppah...
Date: Mon, 21 Jul 2003 07:59:58 -0400

CVSROOT:        /cvsroot/storm
Module name:    storm
Branch:         
Changes by:     Hermanni Hyytiälä <address@hidden>      03/07/21 07:59:58

Modified files:
        doc/pegboard/storm_with_tapestry--hemppah: peg.rst 

Log message:
        something about config files + twids

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/storm/storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst.diff?tr1=1.25&tr2=1.26&r1=text&r2=text

Patches:
Index: storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst
diff -u storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst:1.25 
storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst:1.26
--- storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst:1.25        Fri Jul 
18 03:50:05 2003
+++ storm/doc/pegboard/storm_with_tapestry--hemppah/peg.rst     Mon Jul 21 
07:59:58 2003
@@ -5,8 +5,8 @@
 
 :Authors:  Hermanni Hyytiälä
 :Date-Created: 2003-07-03
-:Last-Modified: $Date: 2003/07/18 07:50:05 $
-:Revision: $Revision: 1.25 $
+:Last-Modified: $Date: 2003/07/21 11:59:58 $
+:Revision: $Revision: 1.26 $
 :Status:   Incomplete
 
 .. :Stakeholders:
@@ -101,6 +101,7 @@
 has approximately 57000 lines of code and shares some code with Oceanstore's
 code base.
 
+
 Overview of SEDA
 ================
 
@@ -118,6 +119,7 @@
 phase, a stage specifies which event and messages it wants to "listen" to. For 
 Storm, the Tapestry application stage is the most important. 
 
+SEDA version 2.0 is included within the Tapestry 2.0 release.
 
 Overview of Tapestry API
 ========================
@@ -249,7 +251,7 @@
      block being sent to a original requester
      
      
-Please notice that the above classes provide only basic functionality in a
+Please notice that the above message classes provide only basic functionality 
in a
 Tapestry overlay, i.e., a Storm peer is able to perform lookups based
 on Storm Block ID, get lookup results (optional), get error messages
 (optional) and get a a requested Storm block. If needed, other messages
@@ -459,7 +461,213 @@
                // this method.
                }
        }
+       
+
+Appendix A
+==========
+
+Sandstorm configuration files for Storm
+--------------------------------------
+
+According to the `Tapestry programmer's guide`_, we have to have
+three different config files for a Storm peer:
+
+1. A config file for a federation Storm peer:
+
+The federation peer is responsible for synchonizing and stabilizing the 
+initial Tapestry network.
+
+2. A config file for a static Storm peer(s)
+
+Number of static peers are required for bootstrapping a Tapestry network. A 
static
+peer uses the TClient stage for routing table operations.
+
+3. A config file for a dynamic Storm peer
+
+This is a 'normal' Storm peer. These kind of peers can join and leave a network
+dynamically. A dynamic peer uses DTClient stage for routing table operations.
+
+Once the initial static network is stabilized, dynamic peers can join the 
network.
+
+For more information how a Tapestry network is bootstrapped and stabilized, 
please
+see the `Tapestry programmer's guide`_. Here's an example config file for a 
+dynamic Storm peer as the config file includes the DTClient stage:
+
+- - -
+
+# Example Sandstorm configuration file for Storm/Tapestry.
+#
+# !!! Please notice that the documentation of this file is based
+# on a config file distributed within the Tapestry/SEDA 2.0 release. Some
+# parts of this config file are edited to provide better idea which parts
+# 'Storm specific', mandatory/optional &c  !!!
+#
+# The '#' starts a comment which extends to the end of the line
+# This file uses an XML-like format consisting of nested sections.
+# 
+# Most of the sections of this file are optional. The complete set of
+# options is given here just to document their use, and leaving options 
+# unspecified causes them to use their default values. In general it is
+# a good idea to just use the defaults.
+
+# The outermost section in the file must be called 'sandstorm'.
+<sandstorm>
+
+  # Global options
+  <global>
+
+  # The default thread manager for stages. 
+  # Allowable values are 'TPSTM' (thread-per-stage) and 'TPPTM' 
+  # (thread-per-CPU). 
+  defaultThreadManager TPSTM   
+
+    # Options for TPSTM thread manager
+    <TPSTM>
+    # Enable the thread governor. This resizes the thread pool for each
+    # stage when the stage's incoming event queue reaches its threshold.
+    governor false
+    # The sampling delay (in milliseconds) for the thread governor.
+    governorDelay 2000
+    # The maximum number of threads allocated to each thread pool
+    governorMaxThreads 10
+    </TPSTM>
+
+    # Options for TPPTM thread manager
+    <TPPTM>
+    # The number of CPUs in the system. Eventually this will be
+    # determined automatically.
+    numCpus 1
+    # The maximum number of threads to allocate.
+    # In general this value should be equal to numCpus.
+    maxThreads 1
+    </TPPTM>
+
+    # The Sandstorm profiler is extremely valuable for understanding the 
+    # performance of applications, and for identifiying bottlenecks
+    <profile>
+      # specify whether the Sandstorm system profiler should be enabled.
+      enable false
+
+      # specify the samplying delay(in milliseconds) for the profiler.
+      # Default is 1000 ms.
+      delay 1000
+
+      # specify the filename that the profile will be written to.
+      # default is ./sandstorm-profile.txt
+      filename /tmp/sandstorm-profile.txt
+
+      # specify the graphfilename that the graph profile will be written to.
+      # default is ./sandstorm-graph.txt
+      graphfilename /tmp/sandstorm-graph.txt
+
+      # specify whether the profile should generate a graph of stage
+      # connectivity during runtime.  Default is false.
+      graph false
+      
+      # specify whether the outgoing queue length for sockets should be
+      # included in the profile.  Default value is false.
+      sockets false
     
+    </profile>
+
+    <initargs>
+      # Global parameters are defined here, for instance, we could define
+      # my_node_id ip-address:port
+    </initargs>
+
+  </global>
+
+# Each stage is defined by a <stage> section
+
+  <stages>
+
+  # The name of the stage as registered with the system. Mandatory.
+  <Network>
+
+  # The fully-qualified classname of the stage's event handler. Mandatory.
+  class ostore.network.Network
+
+  # The size of the event queue threshold for this stage. Optional.
+  # The default is -1, which indicates an infinite threshold.
+  queueThreshold 1000
+
+    # Initial arguments to pass to the event handler's init() method
+    <initargs>
+    # Some parameters for this stage
+    </initargs>
+
+  </Network>
+
+  <Router>
+     class ostore.tapestry.impl.Router
+     queueThreshold 1000
+     <initargs>
+        # Some parameters for this stage
+       dynamic_route dynamic
+     </initargs>
+  </Router>                                                                   
+
+  # The name of the stage as registered with the system. Mandatory.
+  <DTClient>
+    # The fully-qualified classname of the stage's event handler. Mandatory.
+    class ostore.tapestry.impl.DynamicTClient
+
+    # The size of the event queue threshold for this stage. Optional.
+    # The default is -1, which indicates an infinite threshold.
+    queueThreshold 1000
+    # Initial arguments to pass to the event handler's init() method
+    <initargs>
+    # An IP address of a gateway peer which bootsraps us into a Tapestry 
network
+    # This is a mandatory for a dynamic Storm peer
+    gateway ${GatewayID}
+    # This parameter tells Tapestry to threat local routing tables dynamically
+    dynamic_route dynamic
+    </initargs>
+  </DTClient>
+
+  # This stage is not mandatory
+  # Patchwork stage can be used to monitor neighbor links' conditions &c   
+  <Patchwork>
+    class ostore.network.patchwork.Patchwork
+    <initargs>
+      # list here some arguments which we want to define
+    </initargs>                
+  </Patchwork>
+
+  # The name of the stage as registered with the system. Mandatory.
+  <StormTapestry>
+    class org.nongnu.storm.p2p.tapestry.StormTapestryManager
+    queueThreshold 1000
+
+    # Initial arguments to pass to the event handler's init() method
+    <initargs>
+    # list here some arguments which we want to define
+    </initargs>
+
+  </StormTapestry>
+  </stages>
+
+</sandstorm>  # End of the configuration file
+
+- - -
+
+Also, any parameter's value can be set using a command line arguments. For 
+more information about Sandstorm's config files, please refer to the 
documentation
+distributed with the SEDA/Sandstorm release (included with the Tapestry 2.0 
release).
+
+Running Storm with Tapestry
+---------------------------
+
+To run Tapestry with Storm, we must use the following syntax:
+
+  sandstorm <storm-configfile-name> 
+  
+where `sandstorm` is a script distributed within the Sandstorm package and
+`<storm-configfile-name>` is the Sandstorm configuration file for Storm.
+
+Also, we can use Perl scripts to handle more complex usage scenarios. In the
+Tapestry 2.0 release, Perl scripts are used to create `dynamic' configuration
+scripts for regression tests.    
 
 Changes
 =======




reply via email to

[Prev in Thread] Current Thread [Next in Thread]