[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