You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2011/06/16 23:44:15 UTC

svn commit: r1136694 - in /activemq/activemq-apollo/trunk: apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java apollo-website/src/documentation/architecture.md apollo-website/src/documentation/user-manual.md apollo-website/src/index.page

Author: chirino
Date: Thu Jun 16 21:44:15 2011
New Revision: 1136694

URL: http://svn.apache.org/viewvc?rev=1136694&view=rev
Log:
Doc improvements.

Modified:
    activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java
    activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md
    activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md
    activemq/activemq-apollo/trunk/apollo-website/src/index.page

Modified: activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java (original)
+++ activemq/activemq-apollo/trunk/apollo-dto/src/main/java/org/apache/activemq/apollo/dto/QueueDTO.java Thu Jun 16 21:44:15 2011
@@ -54,7 +54,7 @@ public class QueueDTO extends StringIdDT
     public Integer queue_buffer;
 
     /**
-     *  The amount of memory buffer space to use per subscription.
+     *  The amount of memory buffer space to use per consumer.
      */
     @XmlAttribute(name="consumer_buffer")
     public Integer consumer_buffer;
@@ -74,7 +74,7 @@ public class QueueDTO extends StringIdDT
 
     /**
      * The number max number of swapped queue entries to load
-     * from the store at a time.  Not that swapped entries are just
+     * from the store at a time.  Note that swapped entries are just
      * reference pointers to the actual messages.  When not loaded,
      * the batch is referenced as sequence range to conserve memory.
      */

Modified: activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/documentation/architecture.md Thu Jun 16 21:44:15 2011
@@ -99,3 +99,37 @@ services.
 See the [Management API](management-api.html) documentation for
 details.
 
+### Message Swapping
+
+Apollo can very efficiently work with both large and small queues due to
+the way it implements message swapping. If you have a large queue with
+millions of messages, and are slowly processing them, then it makes no
+sense to keep all those messages in memory. They just need to be loaded
+when the consumers are ready to receive them.
+
+A queue in apollo has a configuration entry called `consumer_buffer` which
+is the amount of memory dedicated to that consumer for prefetching into
+memory the next set of messages that consumer will need. The queue will
+asynchronously load messages from the message store so that they will be
+in memory by the time the consumer is ready to receive the the message.
+
+The rate of consumption/position of the consumers in the queue will also
+affect how newly enqueued messages are handled. If no consumers are near
+the tail of the queue where new messages are placed, then the message gets
+swapped out of memory asap. If they consumers are near the tail of the
+queue, then the message is retained in memory for as long as possible in
+hopes that you can avoid a swap out and then back in.
+
+When a message is swapped out of memory, it can be in one of 2 swapped out
+states: 'swapped' or 'swapped range'. A message in 'swapped' state still
+has a small reference node in the list of messages the queue maintains.
+This small reference holds onto some accounting information about the
+message and how to quickly retrieve the message from the message store.
+Once a queue builds up many adjacent messages (defaults to 10,000) that
+are in the 'swapped' state, it will replace all those individual reference
+node entires in memory with a single range reference node. Once that
+happens, the message is in a 'swapped range'.  
+
+
+
+

Modified: activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/documentation/user-manual.md Thu Jun 16 21:44:15 2011
@@ -49,9 +49,20 @@ following files.
 * `etc/groups.properties` : Holds groups to users mappings so that you can
   simplify access control lists (ACL) by using group instead listing individual
   users.
- 
+* `black-list.txt` : A list of IP address which are banned from connecting 
+  to the broker.
+
 [login.conf]: http://download.oracle.com/javase/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html
 
+### Automatic Configuration Reloading
+
+Once a broker is started, you can edit any of the configuration files in
+the `etc` directory and your changes will be automatically be reloaded.  The
+configuration update will be applied in the least non-disruptive way possible.
+For example, if you removed a connector, the port that connector was listening
+on will be released an no new connections will be accepted.  But connections
+that were previously accepted by that connector will continue to operate normally.
+
 ### Adjusting JVM Settings
 
 You can define the following environment variables in the `bin/apollo-broker`
@@ -72,6 +83,10 @@ unix script.
 
 ### Understanding the `apollo.xml` File
 
+There are many XSD aware XML editors which make editing XML configuration
+file less error prone.  If your using one of these editors, you can 
+configure it to use this [apollo.xsd](schema/apollo.xsd) file.
+
 The simplest valid `apollo.xml` defines a single virtual host and a
 single connector.
 
@@ -136,9 +151,8 @@ and port to determine to which local int
 The TCP URI also supports several query parameters to fine tune the
 settings used on the socket.  The supported parameters are:
 
-* `receive_buffer_size` : Sets the size of the internal socket receive buffer 
-   and the size of the TCP receive window that is advertised to the remote 
-   peer.  Defaults to 65536 (64k)
+* `buffer_size` : Sets the size of the internal socket send and 
+   receive buffers.  Defaults to 65536 (64k)
 
 * `traffic_class` : Sets traffic class or type-of-service octet in the IP 
   header for packets sent from the transport.  Defaults to `8` which
@@ -155,7 +169,7 @@ settings used on the socket.  The suppor
 Example which uses a couple of options:
 
 {pygmentize:: xml}
-<connector id="tcp" bind="tcp://0.0.0.0:61613?receive_buffer_size=1024&amp;max_read_rate=65536"/>
+<connector id="tcp" bind="tcp://0.0.0.0:61613?buffer_size=1024&amp;max_read_rate=65536"/>
 {pygmentize}
 
 Note that `&amp;` was used to separate the option values instead of just `&` since the 

Modified: activemq/activemq-apollo/trunk/apollo-website/src/index.page
URL: http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-website/src/index.page?rev=1136694&r1=1136693&r2=1136694&view=diff
==============================================================================
--- activemq/activemq-apollo/trunk/apollo-website/src/index.page (original)
+++ activemq/activemq-apollo/trunk/apollo-website/src/index.page Thu Jun 16 21:44:15 2011
@@ -43,17 +43,17 @@ ActiveMQ 5.x JMS clients.
 * [Queue Browsers](documentation/user-manual.html#Browsing_Subscriptions)
 * [Durable Subscriptions on Topics](documentation/user-manual.html#Topic_Durable_Subscriptions)
 * [Reliable Messaging](documentation/user-manual.html#Reliable_Messaging)
-* Message swapping
+* [Message Swapping](documentation/architecture.html#Message_Swapping)
 * [Message Selectors](documentation/user-manual.html#Message_Selectors)
 * [JAAS Authentication](documentation/user-manual.html#Authentication)
-* [ACL Authorization](documentation/user-manual.html#Authorization)
-* [SSL/TLS Support](documentation/user-manual.html#Using_SSL_TLS)
-* [REST Based Management](documentation/architecture.html#REST_Based_Management)
+* [ACL based Authorization](documentation/user-manual.html#Authorization)
+* [SSL/TLS Support](documentation/user-manual.html#Using_SSL_TLS) and Certificate based Authentication
+* [REST Management API](documentation/management-api.html)
+
 
 ## Documentation
 
  * [Getting Started Guide](documentation/getting-started.html)
  * [User Manual](documentation/user-manual.html)
- * [Management API](documentation/management-api.html)
- 
+