[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