You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/08/11 11:26:08 UTC

svn commit: r1156553 - in /incubator/jena/Experimental/TxTDB/trunk: src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/transaction/ src/test/java/com/hp/hpl/jena/tdb/transaction/

Author: andy
Date: Thu Aug 11 09:26:08 2011
New Revision: 1156553

URL: http://svn.apache.org/viewvc?rev=1156553&view=rev
Log:
Bug fix: abort was removing queued commits.

Modified:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/Transaction.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
    incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java?rev=1156553&r1=1156552&r2=1156553&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java Thu Aug 11 09:26:08 2011
@@ -69,6 +69,10 @@ public class DevTx
     // * B+Tree and caching root block.
     //   BPT created per transaction so safe (?).
    
+    // Design:
+    //   Writing journal during a transaction, not just in prepare (scale)
+    //   Write blobs via journal.
+    
     // Tidy up 
     //   See HACK (BPTreeNode)
     //   See [TxTDB:PATCH-UP]

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/Transaction.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/Transaction.java?rev=1156553&r1=1156552&r2=1156553&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/Transaction.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/Transaction.java Thu Aug 11 09:26:08 2011
@@ -112,8 +112,11 @@ public class Transaction
         
         for ( NodeTableTrans x : nodeTableTrans )
             x.abort(this) ;
-        // [TxTDB:TODO] : No - truncates a pending transaction.
-        journal.truncate(0) ;
+
+        // [TxTDB:TODO]
+        // journal.truncate to last commit 
+        // No need currently as the jounral is only written in prepare. 
+        
 
         state = TxnState.ABORTED ;
         txnMgr.notifyAbort(this) ;

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java?rev=1156553&r1=1156552&r2=1156553&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java Thu Aug 11 09:26:08 2011
@@ -62,6 +62,7 @@ public class TransactionManager
     // Transactions that have commited (and the journal is written) but haven't
     // writted back to the main database. 
     
+    int maxQueue = 0 ;
     List<Transaction> commitedAwaitingFlush = new ArrayList<Transaction>() ;    
     
     static AtomicLong transactionId = new AtomicLong(1) ;
@@ -191,6 +192,7 @@ public class TransactionManager
             {
                 // Can't make permanent at the moment.
                 commitedAwaitingFlush.add(txn) ;
+                maxQueue = Math.max(commitedAwaitingFlush.size(), maxQueue) ;
                 log("Queue commit flush", txn) ; 
                 queue.add(txn) ;
             }

Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java?rev=1156553&r1=1156552&r2=1156553&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/AbstractTestTransSeq.java Thu Aug 11 09:26:08 2011
@@ -243,11 +243,6 @@ public abstract class AbstractTestTransS
         StoreConnection sConn = getStoreConnection() ;
         DatasetGraphTxn dsgR1 = sConn.begin(ReadWrite.READ) ;
         
-        // IF 
-        // dsgR1.close() ;
-        // THEN it works.
-        // ==> deplay replay
-        
         DatasetGraphTxn dsgW1 = sConn.begin(ReadWrite.WRITE) ;
         dsgW1.add(q1) ;
         dsgW1.commit() ;
@@ -262,6 +257,9 @@ public abstract class AbstractTestTransS
 
         DatasetGraphTxn dsgW3 = sConn.begin(ReadWrite.WRITE) ;
         dsgW3.add(q3) ;
+        // Can see W1
+        assertTrue(dsgW3.contains(q1)) ;
+        assertFalse(dsgW3.contains(q2)) ;
         dsgW3.commit() ;
         dsgW3.close() ;
         assertFalse(dsgR1.contains(q3)) ;

Modified: incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java?rev=1156553&r1=1156552&r2=1156553&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/test/java/com/hp/hpl/jena/tdb/transaction/TestTransSystem.java Thu Aug 11 09:26:08 2011
@@ -47,12 +47,13 @@ import com.hp.hpl.jena.tdb.base.file.Loc
 /** System testing of the transactions. */
 public class TestTransSystem
 {
+    //static { SystemTDB.setFileMode(FileMode.direct) ; }
     static { org.openjena.atlas.logging.Log.setLog4j() ; }
     private static Logger log = LoggerFactory.getLogger(TestTransSystem.class) ;
 
-    static final int Iterations       = 10 ;
+    static final int Iterations             = 1000 ;
     // Output style.
-    static boolean inlineProgress           = false ; // (! log.isDebugEnabled()) && Iterations > 20 ;
+    static boolean inlineProgress           = true ; // (! log.isDebugEnabled()) && Iterations > 20 ;
     static boolean logging                  = ! inlineProgress ; // (! log.isDebugEnabled()) && Iterations > 20 ;
     
     /*
@@ -60,27 +61,27 @@ public class TestTransSystem
      * Others?
      */
     
-//    static final int numReaderTasks         = 5 ;   // Add some
+//    static final int numReaderTasks         = 5 ;
 //    static final int numWriterTasksA        = 1 ;
 //    static final int numWriterTasksC        = 5 ;
 //    
 //    static final int readerSeqRepeats       = 5 ;    
 //    static final int readerMaxPause         = 50 ;
 //    
-//    static final int writerAbortSeqRepeats  = 0 ;
+//    static final int writerAbortSeqRepeats  = 1 ;
 //    static final int writerCommitSeqRepeats = 5 ;
-    //    static final int writerMaxPause         = 20 ;
+//    static final int writerMaxPause         = 20 ;
 
-    static final int numReaderTasks         = 5 ;   // Add some
-    static final int numWriterTasksA        = 5 ;
+    static final int numReaderTasks         = 5 ;
+    static final int numWriterTasksA        = 2 ;   // PC had 5
     static final int numWriterTasksC        = 5 ;
 
-    static final int readerSeqRepeats       = 8 ;
-    static final int readerMaxPause         = 100 ;
+    static final int readerSeqRepeats       = 8 ;  //  PC had 8 
+    static final int readerMaxPause         = 25 ; // PC had 100
 
     static final int writerAbortSeqRepeats  = 4 ;
     static final int writerCommitSeqRepeats = 4 ;
-    static final int writerMaxPause         = 50 ;
+    static final int writerMaxPause         = 20 ;  // PC had 50
 
     
     public static void main(String...args)
@@ -94,8 +95,8 @@ public class TestTransSystem
         
         for ( i = 0 ; i < Iterations ; i++ )
         {
-            if (!logging)
-                log.info("Iteration: %d\n", i) ;
+            if (!inlineProgress && logging)
+                log.info(format("Iteration: %d\n", i)) ;
             if ( inlineProgress )
             {
                 if ( i%N == 0 )
@@ -113,8 +114,6 @@ public class TestTransSystem
             println() ;
             printf("DONE (%03d)\n",i) ;
         }
-        if (inlineProgress)
-            printf("DONE (%03d)\n",i) ;
         if (logging)
             log.info("FINISH ({})", i) ;
     }