[jboss-cvs] JBoss Messaging SVN: r4959 - trunk/src/main/org/jboss/messaging/core/journal/impl.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Sep 16 17:34:32 EDT 2008
Author: clebert.suconic at jboss.com
Date: 2008-09-16 17:34:31 -0400 (Tue, 16 Sep 2008)
New Revision: 4959
Modified:
trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
Log:
Tweak on journal for performance on transactions and AIO
Modified: trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2008-09-16 21:33:07 UTC (rev 4958)
+++ trunk/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2008-09-16 21:34:31 UTC (rev 4959)
@@ -548,9 +548,11 @@
lock.acquire();
+ TransactionCallback callback = getTransactionCallback(txID);
+
try
{
- JournalFile usedFile = appendRecord(bb, syncTransactional, getTransactionCallback(txID));
+ JournalFile usedFile = appendRecord(bb, syncTransactional, callback);
tx.prepare(usedFile);
}
@@ -558,6 +560,12 @@
{
lock.release();
}
+
+ // We should wait this outside of the lock, to increase throuput
+ if (callback != null)
+ {
+ callback.waitCompletion();
+ }
}
/**
@@ -595,9 +603,11 @@
lock.acquire();
+ TransactionCallback callback = getTransactionCallback(txID);
+
try
{
- JournalFile usedFile = appendRecord(bb, syncTransactional, getTransactionCallback(txID));
+ JournalFile usedFile = appendRecord(bb, syncTransactional, callback);
transactionCallbacks.remove(txID);
@@ -607,6 +617,13 @@
{
lock.release();
}
+
+ // We should wait this outside of the lock, to increase throuput
+ if (callback != null)
+ {
+ callback.waitCompletion();
+ }
+
}
public void appendRollbackRecord(final long txID) throws Exception
@@ -634,9 +651,12 @@
lock.acquire();
+ TransactionCallback callback = getTransactionCallback(txID);
+
+
try
{
- JournalFile usedFile = appendRecord(bb, syncTransactional, getTransactionCallback(txID));
+ JournalFile usedFile = appendRecord(bb, syncTransactional, callback);
transactionCallbacks.remove(txID);
@@ -646,6 +666,14 @@
{
lock.release();
}
+
+ // We should wait this outside of the lock, to increase throuput
+ if (callback != null)
+ {
+ callback.waitCompletion();
+ }
+
+
}
/**
@@ -701,7 +729,7 @@
* <tr><td>FileID</td><td>Integer (4 bytes)</td></tr>
* <tr><td>TransactionID <i>(if record is transactional)</i></td><td>Long (8 bytes)</td></tr>
* <tr><td>RecordID</td><td>Long (8 bytes)</td></tr>
- * <tr><td>BodySize(only on Add and update)</td><td>Integer (4 bytes)</td></tr>
+ * <tr><td>BodySize(Add, update and delete)</td><td>Integer (4 bytes)</td></tr>
* <tr><td>UserDefinedRecordType (If add/update only)</td><td>Byte (1)</td</tr>
* <tr><td>RecordBody</td><td>Byte Array (size=BodySize)</td></tr>
* <tr><td>Check Size</td><td>Integer (4 bytes)</td></tr>
@@ -1877,11 +1905,6 @@
if (callback != null)
{
currentFile.getFile().write(bb, callback);
-
- if (sync)
- {
- callback.waitCompletion();
- }
}
else
{
More information about the jboss-cvs-commits
mailing list