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/07/25 16:55:14 UTC

svn commit: r1150733 - in /incubator/jena/Experimental/TxTDB/trunk: src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/index/ src/main/java/com/hp/hpl/jena/tdb/index/bplustree/ src/main/java/com/hp/hpl/jena/tdb/store/ src/main/java/com/hp/hpl/jena/tdb/trans...

Author: andy
Date: Mon Jul 25 14:55:12 2011
New Revision: 1150733

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

Modified:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleIndexBase.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleTable.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/bplustree/BPTreeNode.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java Mon Jul 25 14:55:12 2011
@@ -36,6 +36,7 @@ import com.hp.hpl.jena.sparql.util.Query
 import com.hp.hpl.jena.tdb.DatasetGraphTxn ;
 import com.hp.hpl.jena.tdb.ReadWrite ;
 import com.hp.hpl.jena.tdb.StoreConnection ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
 import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.base.record.Record ;
 import com.hp.hpl.jena.tdb.base.record.RecordFactory ;
@@ -72,6 +73,18 @@ public class TxMain
         // and one in-mem sConn DB
         
         initFS() ;
+        
+        String DATA = "/home/afs/Datasets/MusicBrainz/tracks.nt.gz" ;
+        
+        if ( false )
+        {
+            DatasetGraph dsg = TDBFactory.createDatasetGraph() ; 
+            Sink<Triple> sink = new SinkTriplesToGraph(dsg.getDefaultGraph()) ;
+            RiotReader.parseTriples(DATA, sink) ;
+            exit(0) ;
+        }
+        
+        
         // Named memory locations? OTT
         //StoreConnection sConn = StoreConnection.make(Location.mem()) ; 
         StoreConnection sConn = StoreConnection.make(Location.mem()) ;
@@ -84,7 +97,7 @@ public class TxMain
             //dsgRead = sConn.begin(ReadWrite.READ) ;
             DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
             // Duplicates.
-            load("tracks.nt", dsg) ;
+            load(DATA, dsg) ;
             
             /*
              * Exception during journal replay

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleIndexBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleIndexBase.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleIndexBase.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleIndexBase.java Mon Jul 25 14:55:12 2011
@@ -17,7 +17,7 @@ import com.hp.hpl.jena.tdb.store.NodeId 
 
 public abstract class TupleIndexBase implements TupleIndex
 {
-    private static final boolean Check = true ;
+    private static final boolean Check = false ;
 
     protected final ColumnMap colMap ;
     protected final int tupleLength ;

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleTable.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleTable.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleTable.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/TupleTable.java Mon Jul 25 14:55:12 2011
@@ -14,7 +14,6 @@ import java.io.IOException ;
 import java.io.OutputStream ;
 import java.util.Iterator ;
 
-import org.openjena.atlas.io.IO ;
 import org.openjena.atlas.io.IndentedWriter ;
 import org.openjena.atlas.lib.Closeable ;
 import org.openjena.atlas.lib.Sync ;
@@ -48,15 +47,31 @@ public class TupleTable implements Sync,
         
     }
     
+    int x = 0 ;
+    int added = 0 ;
+    
     /** Insert a tuple - return true if it was really added, false if it was a duplicate */
-    public boolean add( Tuple<NodeId> t) 
+    public boolean add(Tuple<NodeId> t) 
     { 
         if ( tupleLen != t.size() )
             throw new TDBException(format("Mismatch: inserting tuple of length %d into a table of tuples of length %d", t.size(), tupleLen)) ;
 
+        x++ ;
+        boolean thisOne = ( t.get(0).getId() == 0xD0 && t.get(1).getId() == 0x01 && t.get(2).getId() == 0x0C ) ;
+        
+        if ( thisOne )
+            System.err.printf("Target: %s (%d)\n",t, x) ;
+        
+        if ( thisOne )
+        {
+            if ( ! indexes[0].find(t).hasNext() )
+                System.err.printf("Absent[1]: @%d\n", x) ;
+        }
+
         for ( int i = 0 ; i < indexes.length ; i++ )
         {
             if ( indexes[i] == null ) continue ;
+            
             if ( ! indexes[i].add(t) )
             {
                 if ( i == 0 )
@@ -64,22 +79,51 @@ public class TupleTable implements Sync,
                     duplicate(t) ;
                     return false ;
                 }
-                try {
-                    OutputStream f = new FileOutputStream("LOG") ;
-                    IndentedWriter w = new IndentedWriter(f) ;
-                    ( (BPlusTree) ((TupleIndexRecord)indexes[i]).getRangeIndex() ).dump(w) ;
-                    w.flush() ;
-                    f.flush() ;
-                    f.close() ;
-                } catch ( IOException ex ) {}
+                unexpectedDuplicate(t, i) ;
                 throw new TDBException(format("Secondary index duplicate: %s -> %s",indexes[i].getLabel(), t)) ;
             }
+            
         }
+        
+        if ( thisOne )
+            added ++ ;
+
+        if ( added > 0 ) // && thisOne )
+        {
+            if ( ! indexes[0].find(t).hasNext() )
+                System.err.printf("Gone[2]: @%d\n", x) ;
+        }
+        
+        
+        
         return true ;
     }
 
     protected void duplicate(Tuple<NodeId> t)
-    { }
+    {
+        //System.err.printf("Duplicate on primary index: %s\n",t) ;
+    }
+    
+    protected void unexpectedDuplicate(Tuple<NodeId> t, int i)
+    { 
+        System.err.printf("Duplicate on secondary index: %s\n",t) ;
+        for ( TupleIndex index : indexes )
+        {
+            if ( index.find(t) != null )
+                System.err.printf("%s: Present\n",index.getLabel()) ;
+            else
+                System.err.printf("%s: Absent\n",index.getLabel()) ;
+        }
+        
+        try {
+            OutputStream f = new FileOutputStream("LOG") ;
+            IndentedWriter w = new IndentedWriter(f) ;
+            ( (BPlusTree) ((TupleIndexRecord)indexes[i]).getRangeIndex() ).dump(w) ;
+            w.flush() ;
+            f.flush() ;
+            f.close() ;
+        } catch ( IOException ex ) {}
+    }
 
     /** Delete a tuple - return true if it was deleted, false if it didn't exist */
     public boolean delete( Tuple<NodeId> t ) 

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/bplustree/BPTreeNode.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/bplustree/BPTreeNode.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/bplustree/BPTreeNode.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/index/bplustree/BPTreeNode.java Mon Jul 25 14:55:12 2011
@@ -473,8 +473,13 @@ public final class BPTreeNode extends BP
      */
     private void split(int idx, BPTreePage y)
     {
-        if ( logging() )
+        boolean logging = logging() ; 
+        //logging = true ;
+        if ( logging )
+        {
             log.debug(format("split >> y.id=%d  this.id=%d idx=%d", y.getId(), this.id, idx)) ;
+            log.debug("split --   "+y) ;
+        }
             
         internalCheckNode() ;
         if ( CheckingNode )
@@ -495,11 +500,11 @@ public final class BPTreeNode extends BP
         Record splitKey = y.getSplitKey() ;
         splitKey = keyRecord(splitKey) ;
         
-        if ( logging() )
+        if ( logging )
             log.debug(format("Split key: %s", splitKey)) ;
 
         BPTreePage z = y.split();
-        if ( logging() )
+        if ( logging )
         {
             log.debug(format("Split: %s", y)) ;
             log.debug(format("Split: %s", z)) ;
@@ -521,7 +526,7 @@ public final class BPTreeNode extends BP
         ptrs.add(idx+1, z.getId()) ;
         count++ ;
         
-        if ( logging() )
+        if ( logging )
         {
             log.debug("split <<   "+this) ;
             log.debug("split <<   "+y) ;

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/store/GraphTDBBase.java Mon Jul 25 14:55:12 2011
@@ -24,9 +24,9 @@ import com.hp.hpl.jena.graph.TripleMatch
 import com.hp.hpl.jena.graph.query.QueryHandler ;
 import com.hp.hpl.jena.shared.Lock ;
 import com.hp.hpl.jena.sparql.core.Quad ;
-import com.hp.hpl.jena.sparql.core.Reifier2 ;
 import com.hp.hpl.jena.sparql.engine.optimizer.reorder.ReorderTransformation ;
 import com.hp.hpl.jena.sparql.graph.GraphBase2 ;
+import com.hp.hpl.jena.sparql.graph.Reifier2 ;
 import com.hp.hpl.jena.tdb.TDB ;
 import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB ;

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java?rev=1150733&r1=1150732&r2=1150733&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java Mon Jul 25 14:55:12 2011
@@ -6,14 +6,12 @@
 
 package com.hp.hpl.jena.tdb.transaction;
 
-import java.nio.ByteBuffer ;
 import java.util.HashMap ;
 import java.util.HashSet ;
 import java.util.Iterator ;
 import java.util.Map ;
 import java.util.Set ;
 
-import org.openjena.atlas.lib.ByteBufferLib ;
 import org.openjena.atlas.logging.Log ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;