[jboss-cvs] JBoss Messaging SVN: r7211 - trunk/docs/user-manual/en.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 5 00:25:50 EDT 2009


Author: clebert.suconic at jboss.com
Date: 2009-06-05 00:25:49 -0400 (Fri, 05 Jun 2009)
New Revision: 7211

Modified:
   trunk/docs/user-manual/en/configuration-index.xml
   trunk/docs/user-manual/en/perf-tuning.xml
   trunk/docs/user-manual/en/persistence.xml
Log:
Documentation changes

Modified: trunk/docs/user-manual/en/configuration-index.xml
===================================================================
--- trunk/docs/user-manual/en/configuration-index.xml	2009-06-04 23:54:57 UTC (rev 7210)
+++ trunk/docs/user-manual/en/configuration-index.xml	2009-06-05 04:25:49 UTC (rev 7211)
@@ -265,49 +265,54 @@
                             <entry>true</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link linkend="configuring.message.journal.journal-directory"
                                     >journal-directory</link></entry>
                             <entry>String</entry>
                             <entry>the directory to store the journal files in</entry>
                             <entry>data/journal</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link linkend="configuring.message.journal.create-journal-dir"
                                     >create-journal-dir</link></entry>
                             <entry>Boolean</entry>
                             <entry>true means that the journal directory will be created</entry>
                             <entry>true</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
-                                >journal-type</link></entry>
+                            <entry><link linkend="configuring.message.journal.journal-type"
+                                    >journal-type</link></entry>
                             <entry>ASYNCIO|NIO</entry>
                             <entry>the type of journal to use</entry>
                             <entry>ASYNCIO</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link
+                                    linkend="configuring.message.journal.journal-aio-buffer-timeout"
+                                    >journal-aio-buffer-timeout</link></entry>
+                            <entry>Long</entry>
+                            <entry>The timeout used to flush internal buffers.</entry>
+                            <entry>500000</entry>
+                        </row>
+                        <row>
+                            <entry><link
+                                    linkend="configuring.message.journal.journal-aio-flush-on-sync"
                                     >journal-aio-flush-on-sync</link></entry>
                             <entry>Boolean</entry>
-                            <entry>TODO</entry>
+                            <entry>If true, transactions will ignore timeouts and be persisted
+                                immediately</entry>
                             <entry>False</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
-                                    >journal-aio-buffer-timeout</link></entry>
-                            <entry>Long</entry>
-                            <entry>TODO</entry>
-                            <entry>20000</entry>
-                        </row>
-                        <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link
+                                    linkend="configuring.message.journal.journal-aio-buffer-size"
                                     >journal-aio-buffer-size</link></entry>
                             <entry>Long</entry>
-                            <entry>TODO</entry>
+                            <entry>The size of the internal buffer on AIO.</entry>
                             <entry>128 MiB</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link
+                                    linkend="configuring.message.journal.journal-sync-transactional"
                                     >journal-sync-transactional</link></entry>
                             <entry>Boolean</entry>
                             <entry>if true wait for transaction data to be synchronized to the
@@ -315,7 +320,8 @@
                             <entry>true</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link
+                                    linkend="configuring.message.journal.journal-sync-non-transactional"
                                     >journal-sync-non-transactional</link></entry>
                             <entry>Boolean</entry>
                             <entry>if true wait for non transaction data to be synced to the journal
@@ -323,21 +329,21 @@
                             <entry>false</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link linkend="configuring.message.journal.journal-file-size"
                                     >journal-file-size</link></entry>
                             <entry>Long</entry>
                             <entry>the size (in bytes) of each journal file</entry>
                             <entry>128 * 1024</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link linkend="configuring.message.journal.journal-min-files"
                                     >journal-min-files</link></entry>
                             <entry>Integer</entry>
                             <entry>how many journal files to pre-create</entry>
                             <entry>2</entry>
                         </row>
                         <row>
-                            <entry><link linkend="configuring.message.journal"
+                            <entry><link linkend="configuring.message.journal.journal-max-aio"
                                     >journal-max-aio</link></entry>
                             <entry>Integer</entry>
                             <entry>the maximum number of write requests that can be in the AIO queue

Modified: trunk/docs/user-manual/en/perf-tuning.xml
===================================================================
--- trunk/docs/user-manual/en/perf-tuning.xml	2009-06-04 23:54:57 UTC (rev 7210)
+++ trunk/docs/user-manual/en/perf-tuning.xml	2009-06-05 04:25:49 UTC (rev 7211)
@@ -8,9 +8,9 @@
             <listitem>
                 <para>Minimum number of journal files. Set <literal>journal-min-files</literal> to a
                     number of files that would fit your average sustainable rate. If you see new
-                    files being created on the journal data directory too often you need to
-                    increase the minimal number of files, this way the journal would reuse more
-                    files instead of create new data files.</para>
+                    files being created on the journal data directory too often you need to increase
+                    the minimal number of files, this way the journal would reuse more files instead
+                    of create new data files.</para>
             </listitem>
             <listitem>
                 <para>Journal file size. The journal file size should be aligned to the capacity of
@@ -21,10 +21,16 @@
                 <para>Use AIO journal. If using Linux, try to keep your journal type as AIO.</para>
             </listitem>
             <listitem>
-                <para>Max IO. If using AIO, keep <literal>journal-max-aio</literal> accordingly to
-                    your disk capacity. If in a thread dump you see too many write requests waiting
-                    on <literal>AsynchronousFile.write</literal> you may be out of space on the
-                    Asynchronous IO queue. Increase the value on that case.</para>
+                <para><literal>journal-aio-flush-on-sync</literal>. If you don't have many producers
+                    in your system you may consider setting journal-aio-flush-on-sync to true. JBoss
+                    Messaging aways try to use most of the hardware resource considering the worst
+                    case where you have many producers. We try to concatenate multiple writes in
+                    single OS operations. However if that's not your case setting this option to
+                    true will give you a performance boost.</para>
+                <para>By the other hand when you have multiple producers, keeping <literal
+                        >journal-aio-flush-on-sync</literal> set to false will make your system to
+                    flush multiple syncs in a single OS call making your system to scale up much
+                    higher.</para>
             </listitem>
         </itemizedlist>
     </section>

Modified: trunk/docs/user-manual/en/persistence.xml
===================================================================
--- trunk/docs/user-manual/en/persistence.xml	2009-06-04 23:54:57 UTC (rev 7210)
+++ trunk/docs/user-manual/en/persistence.xml	2009-06-05 04:25:49 UTC (rev 7211)
@@ -108,7 +108,7 @@
         <para>The message journal is configured using the following attributes in <literal
                 >jbm-configuration.xml</literal></para>
         <itemizedlist>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-directory">
                 <para><literal>journal-directory</literal></para>
                 <para>This is the directory in which the message journal lives. The default value is
                         <literal>data/journal</literal>.</para>
@@ -121,14 +121,14 @@
                 <para>When the message journal is stored on a SAN we recommend each journal instance
                     that is stored on the SAN is given its own LUN (logical unit).</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.create-journal-dir">
                 <para><literal>create-journal-dir</literal></para>
                 <para>If this is set to <literal>true</literal> then the journal directory will be
                     automatically created at the location specified in <literal
                         >journal-directory</literal> if it does not already exist. The default value
                     is <literal>true</literal></para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-type">
                 <para><literal>journal-type</literal></para>
                 <para>Valid values are <literal>NIO</literal> or <literal>ASYNCIO</literal>.</para>
                 <para>Choosing <literal>NIO</literal> chooses the Java NIO journal. Choosing
@@ -137,25 +137,25 @@
                     libaio installed then JBoss Messaging will detect this and automatically fall
                     back to using <literal>NIO</literal>.</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-sync-transactional">
                 <para><literal>journal-sync-transactional</literal></para>
                 <para>If this is set to true then JBoss Messaging will wait for all transaction data
                     to be persisted to disk on a commit before sending a commit response OK back to
                     the client. The default value is <literal>true</literal>.</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-sync-non-transactional">
                 <para><literal>journal-sync-non-transactional</literal></para>
                 <para>If this is set to true then JBoss Messaging will wait for any non
                     transactional data to be persisted to disk on a send before sending the response
                     back to the client. The default value for this is <literal
                     >false</literal>.</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-file-size">
                 <para><literal>journal-file-size</literal></para>
                 <para>The size of each journal file in bytes. The default value for this is <literal
                         >10485760</literal> bytes (10MiB).</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-min-files">
                 <para><literal>journal-min-files</literal></para>
                 <para>The minimum number of files the journal will maintain. When JBoss Messaging
                     starts and there is no initial message data, JBoss Messaging will pre-create
@@ -167,7 +167,7 @@
                 <para>Depending on how much data you expect your queues to contain at steady state
                     you should tune this number of files to match that total amount of data.</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-max-aio">
                 <para><literal>journal-max-aio</literal></para>
                 <para>When using an AIO journal, write requests are queued up before being submitted
                     to AIO for execution. Then when AIO has completed them it calls JBoss Messaging
@@ -176,17 +176,31 @@
                     block until space is freed up. This parameter has no meaning when using the NIO
                     journal.</para>
             </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-aio-buffer-timeout">
+                <para><literal>journal-aio-buffer-timeout</literal></para>
+                <para>Flush period on the internal AIO timed buffer, configured in nanoSeconds. For
+                    performance reasons we buffer data before submiting it to the kernel writes,
+                    however we need flush in order to complete transactions. If the system is
+                    inactive for more than <literal>journal-aio-buffer-timeout</literal> we flush
+                    the buffer and complete the transactions. Also, if there are pending
+                    transactions we guarantee the data is flushed up to <literal
+                        >journal-aio-buffer-timeout</literal>.</para>
+            </listitem>
+            <listitem id="configuring.message.journal.journal-aio-flush-on-sync">
                 <para><literal>journal-aio-flush-on-sync</literal></para>
-                <para>TODO.</para>
+                <para>If this is set to true, the internal buffers are flushed right away when a
+                    transaction arrives.</para>
+                <para>JBoss Messaging was made to scale up to hundreds of producers. We try to use
+                    most of the hardware resources by scheduling multiple writes and scheduling
+                    multiple writes in a single OS call.</para>
+                <para>However in some use cases it may be better to not wait any data and just flush
+                    and write to the OS right away. For example if you have a single producer during
+                    several small transactions. On this case it would be better to aways
+                    flush-on-sync.</para>
             </listitem>
-            <listitem>
-                <para><literal>journal-aio-buffer-timeout</literal></para>
-                <para>TODO.</para>
-            </listitem>
-            <listitem>
+            <listitem id="configuring.message.journal.journal-aio-buffer-size">
                 <para><literal>journal-aio-buffer-size</literal></para>
-                <para>TODO.</para>
+                <para>The size of the timed buffer on AIO. The default value is 128MiB.</para>
             </listitem>
         </itemizedlist>
     </section>




More information about the jboss-cvs-commits mailing list