[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