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/12/02 16:38:55 UTC

svn commit: r1209537 - in /incubator/jena: Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/ Scratch/AFS/Jena-Dev/trunk/src/dev/

Author: andy
Date: Fri Dec  2 15:38:55 2011
New Revision: 1209537

URL: http://svn.apache.org/viewvc?rev=1209537&view=rev
Log: (empty)

Modified:
    incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java
    incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
    incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena163_TDBDifferentIds.java

Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java?rev=1209537&r1=1209536&r2=1209537&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/NodeTableTrans.java Fri Dec  2 15:38:55 2011
@@ -192,7 +192,7 @@ public class NodeTableTrans implements N
     /** Copy from the journal file to the real file */
     /*package*/ void append()
     {
-        //debug("append: %s",label) ;
+        //debug(">> append: %s",label) ;
         
         // Assumes all() is in order from low to high.
         Iterator<Pair<NodeId, Node>> iter = nodeTableJournal.all() ;
@@ -215,6 +215,7 @@ public class NodeTableTrans implements N
                 throw new TDBException(msg) ;
             }
         }
+        //debug("<< append: %s",label) ;
     }
     
     private void dump()
@@ -225,6 +226,8 @@ public class NodeTableTrans implements N
         System.err.println("offset = "+offset) ;
         System.err.println("journalStartOffset = "+journalObjFileStartOffset) ;
         System.err.println("journal = "+journalObjFile.getLabel()) ;
+        if ( true )
+            return ;
         
         System.err.println("nodeTableJournal >>>") ;
         Iterator<Pair<NodeId, Node>> iter = nodeTableJournal.all() ;
@@ -262,7 +265,7 @@ public class NodeTableTrans implements N
     @Override
     public void commitPrepare(Transaction txn)
     {
-        //debug("commitPrepare: %s", label) ;
+        debug(">> commitPrepare: %s", label) ;
         // The node table is append-only so it can be written during prepare.
         // The index isn't written (via the transaction journal) until enact.
         if ( nodeTableJournal == null )
@@ -274,7 +277,7 @@ public class NodeTableTrans implements N
             long x = journalObjFile.length() ;
             throw new TDBTransactionException("journalObjFile not cleared ("+x+")") ;
         }
-        
+        debug("<< commitPrepare: %s", label) ;
     }
     
     @Override

Modified: incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java?rev=1209537&r1=1209536&r2=1209537&view=diff
==============================================================================
--- incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java (original)
+++ incubator/jena/Jena2/TDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/TransactionManager.java Fri Dec  2 15:38:55 2011
@@ -192,11 +192,16 @@ public class TransactionManager
         {
             txn.getBaseDataset().getLock().leaveCriticalSection() ;
 
+            // This is so important, it shouldn't be in a TSM.
             if ( activeReaders.get() == 0 )
             {
                 // Can commit immediately.
                 // Ensure the queue is empty though.
                 // Could simply add txn to the commit queue and do it that way.  
+                if ( log() ) log("Commit immediately", txn) ; 
+                
+                // Right after reply?
+                
                 processDelayedReplayQueue(txn) ;
                 enactTransaction(txn) ;
                 JournalControl.replay(txn) ;
@@ -206,7 +211,7 @@ public class TransactionManager
                 // Can't write back to the base database at the moment.
                 commitedAwaitingFlush.add(txn) ;
                 maxQueue = Math.max(commitedAwaitingFlush.size(), maxQueue) ;
-                log("Queue commit flush", txn) ; 
+                if ( log() ) log("Add to pending queue", txn) ; 
                 queue.add(txn) ;
             }
         }
@@ -248,7 +253,7 @@ public class TransactionManager
         new TSM_Counters() ,           // Must be first.
         new TSM_Logger() ,
         (recordHistory ? new TSM_Record() : null ) ,
-        new TSM_WriteBackEndTxn()        // Write back policy.
+        new TSM_WriteBackEndTxn()        // Write back policy. Must be last.
     } ;
     
     public TransactionManager(DatasetGraphTDB dsg)
@@ -404,18 +409,18 @@ public class TransactionManager
         if ( activeReaders.get() != 0 || activeWriters.get() != 0 )
         {
             if ( queue.size() > 0 && log() )
-            {
-                if ( txn != null )
-                    log(format("Pending transactions: R=%s / W=%s", activeReaders, activeWriters), txn) ;
-                else
-                    logger().debug(format("Pending transactions: R=%s / W=%s", activeReaders, activeWriters)) ;
-            }
+                log(format("Pending transactions: R=%s / W=%s", activeReaders, activeWriters), txn) ;
             return ;
         }
 
         if ( tmpDebugNoteActions &&  queue.size() > 0 ) 
             System.out.print("!"+queue.size()+"!") ;
         
+        if ( log() )
+        {
+            log("Start flush delayed commits", txn) ;
+        }
+        
         while ( queue.size() > 0 )
         {
             // Currently, replay is replay everything
@@ -426,7 +431,8 @@ public class TransactionManager
                 Transaction txn2 = queue.take() ;
                 if ( txn2.getMode() == ReadWrite.READ )
                     continue ;
-                log("Flush delayed commit", txn2) ;
+                if ( log() )
+                    log("Flush delayed commit of "+txn.getLabel(), txn) ;
                 // This takes a Write lock on the  DSG - this is where it blocks.
                 checkReplaySafe() ;
                 enactTransaction(txn2) ;
@@ -443,6 +449,8 @@ public class TransactionManager
         JournalControl.replay(journal, baseDataset) ;
         
         checkReplaySafe() ;
+        if ( log() )
+            log("End flush delayed commits", txn) ;
     }
 
     private void checkReplaySafe()
@@ -543,7 +551,10 @@ public class TransactionManager
     {
         if ( ! log() )
             return ;
-        logger().debug(txn.getLabel()+": "+msg) ;
+        if ( txn == null )
+            logger().debug("<No txn>: "+msg) ;
+        else
+            logger().debug(txn.getLabel()+": "+msg) ;
     }
 
     private Logger logger()

Modified: incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena163_TDBDifferentIds.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena163_TDBDifferentIds.java?rev=1209537&r1=1209536&r2=1209537&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena163_TDBDifferentIds.java (original)
+++ incubator/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena163_TDBDifferentIds.java Fri Dec  2 15:38:55 2011
@@ -331,7 +331,8 @@ public class Jena163_TDBDifferentIds
                     }
                     SysTxnState state = sConn.getTransMgrState() ;
                     log.debug(state.toString()) ;
-                    log.debug("writer finish "+id+"/"+i) ;                
+                    log.debug("writer finish "+id+"/"+i) ;  
+                    Lib.sleep(20) ;
                     dsg.end() ;
                     dsg = null ;
                 }