[jboss-svn-commits] JBL Code SVN: r36870 - labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 29 06:23:29 EDT 2011


Author: jhalliday
Date: 2011-03-29 06:23:29 -0400 (Tue, 29 Mar 2011)
New Revision: 36870

Modified:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBean.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBeanMBean.java
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalStore.java
Log:
Additional config options for HornetQ objectstore. JBTM-782


Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBean.java	2011-03-29 10:18:50 UTC (rev 36869)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBean.java	2011-03-29 10:23:29 UTC (rev 36870)
@@ -29,7 +29,7 @@
  *
  * Parameters on this file serve a similar role to their counterparts in HornetQ.
  * The HornetQ docs therefore provide relevant information on usage:
- * http://hornetq.sourceforge.net/docs/hornetq-2.1.1.Final/user-manual/en/html/persistence.html#configuring.message.journal.journal-type
+ * http://hornetq.sourceforge.net/docs/hornetq-2.1.2.Final/user-manual/en/html/persistence.html#configuring.message.journal.journal-type
  *
  * @author Jonathan Halliday (jonathan.halliday at redhat.com), 2010-03
  */
@@ -56,7 +56,13 @@
 
     private volatile boolean syncDeletes = true;
 
+    private volatile int bufferFlushesPerSecond = 500;
 
+    private volatile int bufferSize = 490 * 1024;
+
+    private volatile boolean logRates = false;
+
+
     /**
      * Returns the desired size in bytes of each log file.
      * Minimum 1024.
@@ -284,4 +290,72 @@
     {
         this.syncDeletes = syncDeletes;
     }
+
+    /**
+     * Returns the target number of timer based buffer flushes per second.
+     * Caution: this property is functionally equivalent to HornetQ's
+     * journal-buffer-timeout but uses different units.
+     *
+     * Default 500.
+     *
+     * @return the number of buffer flushes per second.
+     */
+    public int getBufferFlushesPerSecond()
+    {
+        return bufferFlushesPerSecond;
+    }
+
+    /**
+     * Sets the target number of timer based buffer flushes per second.
+     *
+     * @param bufferFlushesPerSecond the target number.
+     */
+    public void setBufferFlushesPerSecond(int bufferFlushesPerSecond)
+    {
+        this.bufferFlushesPerSecond = bufferFlushesPerSecond;
+    }
+
+    /**
+     * Returns the buffer size in bytes.
+     *
+     * Default: 490 KB.
+     *
+     * @return the size of the buffer.
+     */
+    public int getBufferSize()
+    {
+        return bufferSize;
+    }
+
+    /**
+     * Sets the buffer size in bytes.
+     *
+     * @param bufferSize the size of the buffer.
+     */
+    public void setBufferSize(int bufferSize)
+    {
+        this.bufferSize = bufferSize;
+    }
+
+    /**
+     * Returns the debug log mode for Journal throughput statistics.
+     *
+     * Default: false.
+     *
+     * @return true is rate logging is enabled, false otherwise.
+     */
+    public boolean isLogRates()
+    {
+        return logRates;
+    }
+
+    /**
+     * Sets the debug log mode for Journal throughput statistics.
+     *
+     * @param logRates true to enable logging of statistics, false to disable.
+     */
+    public void setLogRates(boolean logRates)
+    {
+        this.logRates = logRates;
+    }
 }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBeanMBean.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBeanMBean.java	2011-03-29 10:18:50 UTC (rev 36869)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalEnvironmentBeanMBean.java	2011-03-29 10:23:29 UTC (rev 36870)
@@ -46,4 +46,10 @@
     public boolean isSyncWrites();
 
     public boolean isSyncDeletes();
+
+    public int getBufferFlushesPerSecond();
+
+    public int getBufferSize();
+
+    public boolean isLogRates();
 }

Modified: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalStore.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalStore.java	2011-03-29 10:18:50 UTC (rev 36869)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/objectstore/hornetq/HornetqJournalStore.java	2011-03-29 10:23:29 UTC (rev 36870)
@@ -29,6 +29,7 @@
 
 import com.arjuna.ats.internal.arjuna.common.UidHelper;
 import org.hornetq.core.journal.*;
+import org.hornetq.core.journal.impl.AIOSequentialFile;
 import org.hornetq.core.journal.impl.JournalImpl;
 import org.hornetq.core.journal.impl.AIOSequentialFileFactory;
 import org.hornetq.core.journal.impl.NIOSequentialFileFactory;
@@ -112,9 +113,18 @@
 
         SequentialFileFactory sequentialFileFactory;
         if(AIOSequentialFileFactory.isSupported()) {
-            sequentialFileFactory = new AIOSequentialFileFactory(envBean.getStoreDir());
+            sequentialFileFactory = new AIOSequentialFileFactory(
+                    envBean.getStoreDir(),
+                    envBean.getBufferSize(),
+                    (int)(1000000000d / envBean.getBufferFlushesPerSecond()), // bufferTimeout nanos .000000001 second
+                    envBean.isLogRates());
         } else {
-            sequentialFileFactory = new NIOSequentialFileFactory(envBean.getStoreDir(), true);
+            sequentialFileFactory = new NIOSequentialFileFactory(
+                    envBean.getStoreDir(),
+                    true,
+                    envBean.getBufferSize(),
+                    (int)(1000000000d / envBean.getBufferFlushesPerSecond()), // bufferTimeout nanos .000000001 second
+                    envBean.isLogRates());
         }
 
         journal = new JournalImpl(envBean.getFileSize(), envBean.getMinFiles(), envBean.getCompactMinFiles(),



More information about the jboss-svn-commits mailing list