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 ;