[jboss-cvs] JBoss Messaging SVN: r7236 - in trunk: src/config/common/schema and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Jun 7 05:54:49 EDT 2009
Author: timfox
Date: 2009-06-07 05:54:48 -0400 (Sun, 07 Jun 2009)
New Revision: 7236
Modified:
trunk/examples/core/perf/server0/jbm-configuration.xml
trunk/src/config/common/schema/jbm-configuration.xsd
trunk/src/main/org/jboss/messaging/core/config/Configuration.java
trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
trunk/src/main/org/jboss/messaging/core/journal/Journal.java
trunk/src/main/org/jboss/messaging/core/journal/TestableJournal.java
trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
Log:
added perf blast
Modified: trunk/examples/core/perf/server0/jbm-configuration.xml
===================================================================
--- trunk/examples/core/perf/server0/jbm-configuration.xml 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/examples/core/perf/server0/jbm-configuration.xml 2009-06-07 09:54:48 UTC (rev 7236)
@@ -22,6 +22,7 @@
<journal-min-files>20</journal-min-files>
<journal-aio-buffer-timeout>20000</journal-aio-buffer-timeout>
<log-journal-write-rate>true</log-journal-write-rate>
+ <perf-blast-pages>5000</perf-blast-pages>
<queues>
Modified: trunk/src/config/common/schema/jbm-configuration.xsd
===================================================================
--- trunk/src/config/common/schema/jbm-configuration.xsd 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/config/common/schema/jbm-configuration.xsd 2009-06-07 09:54:48 UTC (rev 7236)
@@ -213,6 +213,9 @@
<xsd:element name="journal-max-aio" type="xsd:positiveInteger"
maxOccurs="1" minOccurs="0">
</xsd:element>
+ <xsd:element name="perf-blast-pages" type="xsd:positiveInteger"
+ maxOccurs="1" minOccurs="0">
+ </xsd:element>
<xsd:element name="large-messages-directory"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -215,6 +215,10 @@
boolean isLogJournalWriteRate();
void setLogJournalWriteRate(boolean rate);
+
+ int getJournalPerfBlastPages();
+
+ void setJournalPerfBlastPages(int pages);
// Paging Properties --------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -102,6 +102,8 @@
public static final int DEFAULT_JOURNAL_AIO_BUFFER_SIZE = 128 * 1024;
public static final boolean DEFAULT_JOURNAL_LOG_WRITE_RATE = false;
+
+ public static final int DEFAULT_JOURNAL_PERF_BLAST_PAGES = -1;
public static final boolean DEFAULT_WILDCARD_ROUTING_ENABLED = true;
@@ -244,6 +246,8 @@
protected int journalAIOBufferSize = DEFAULT_JOURNAL_AIO_BUFFER_SIZE;
protected boolean logJournalWriteRate = DEFAULT_JOURNAL_LOG_WRITE_RATE;
+
+ protected int journalPerfBlastPages = DEFAULT_JOURNAL_PERF_BLAST_PAGES;
protected boolean wildcardRoutingEnabled = DEFAULT_WILDCARD_ROUTING_ENABLED;
@@ -617,7 +621,17 @@
{
this.logJournalWriteRate = logJournalWriteRate;
}
+
+ public int getJournalPerfBlastPages()
+ {
+ return journalPerfBlastPages;
+ }
+ public void setJournalPerfBlastPages(int journalPerfBlastPages)
+ {
+ this.journalPerfBlastPages = journalPerfBlastPages;
+ }
+
public boolean isCreateBindingsDir()
{
return createBindingsDir;
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -306,6 +306,8 @@
journalMaxAIO = getInteger(e, "journal-max-aio", journalMaxAIO);
logJournalWriteRate = getBoolean(e, "log-journal-write-rate", DEFAULT_JOURNAL_LOG_WRITE_RATE);
+
+ journalPerfBlastPages = getInteger(e, "perf-blast-pages", DEFAULT_JOURNAL_PERF_BLAST_PAGES);
wildcardRoutingEnabled = getBoolean(e, "wild-card-routing-enabled", wildcardRoutingEnabled);
Modified: trunk/src/main/org/jboss/messaging/core/journal/Journal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/Journal.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/journal/Journal.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -86,5 +86,7 @@
long load(List<RecordInfo> committedRecords, List<PreparedTransactionInfo> preparedTransactions) throws Exception;
int getAlignment() throws Exception;
+
+ void perfBlast(int pages) throws Exception;
}
Modified: trunk/src/main/org/jboss/messaging/core/journal/TestableJournal.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/TestableJournal.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/journal/TestableJournal.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -70,5 +70,7 @@
void setAutoReclaim(boolean autoReclaim);
boolean isAutoReclaim();
+
+
}
Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -1576,6 +1576,11 @@
moveNextFile();
debugWait();
}
+
+ public void perfBlast(final int pages) throws Exception
+ {
+ new PerfBlast(pages).start();
+ }
// MessagingComponent implementation
// ---------------------------------------------------
@@ -1945,6 +1950,7 @@
return orderedFiles;
}
+
/**
* Note: This method will perform rwlock.readLock.lock();
@@ -2563,4 +2569,41 @@
}
+ private class PerfBlast extends Thread
+ {
+ private final int pages;
+
+ private PerfBlast(final int pages)
+ {
+ this.pages = pages;
+ }
+
+ public void run()
+ {
+ try
+ {
+ lock.lock();
+
+ byte[] bytes = new byte[128 * 1024];
+
+ for (int i = 0; i < pages; i++)
+ {
+ ByteBuffer bb = ByteBuffer.wrap(bytes);
+
+ bb.limit(bytes.length);
+
+ bb.position(0);
+
+ appendRecord(bb, false, null);
+ }
+
+ lock.unlock();
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to perf blast", e);
+ }
+ }
+ }
+
}
Modified: trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java 2009-06-07 07:50:19 UTC (rev 7235)
+++ trunk/src/main/org/jboss/messaging/core/persistence/impl/journal/JournalStorageManager.java 2009-06-07 09:54:48 UTC (rev 7236)
@@ -141,6 +141,8 @@
private final boolean syncTransactional;
private final boolean syncNonTransactional;
+
+ private final int perfBlastPages;
public JournalStorageManager(final Configuration config, final Executor executor)
{
@@ -219,6 +221,8 @@
checkAndCreateDir(largeMessagesDirectory, config.isCreateJournalDir());
largeMessagesFactory = new NIOSequentialFileFactory(config.getLargeMessagesDirectory());
+
+ perfBlastPages = config.getJournalPerfBlastPages();
}
public UUID getPersistentID()
@@ -700,6 +704,11 @@
}
loadPreparedTransactions(pagingManager, resourceManager, queues, preparedTransactions, duplicateIDMap);
+
+ if (perfBlastPages != -1)
+ {
+ messageJournal.perfBlast(perfBlastPages);
+ }
}
private void loadPreparedTransactions(final PagingManager pagingManager,
@@ -982,7 +991,7 @@
bindingsJournal.start();
messageJournal.start();
-
+
started = true;
}
More information about the jboss-cvs-commits
mailing list