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 2014/09/08 16:32:58 UTC

svn commit: r1623410 - in /jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb: base/block/BlockMgrFactory.java setup/BuildDB.java setup/DatasetBuilder.java setup/DatasetBuilderStd.java

Author: andy
Date: Mon Sep  8 14:32:57 2014
New Revision: 1623410

URL: http://svn.apache.org/r1623410
Log:
Fix in-memeory DSG creation

Modified:
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/BlockMgrFactory.java Mon Sep  8 14:32:57 2014
@@ -44,11 +44,13 @@ public class BlockMgrFactory {
     }
 
     public static BlockMgr create(FileSet fileSet, String ext, BlockParams params) {
-        return createFile(fileSet.filename(ext), params) ;
+        return create(fileSet, ext,
+                      params.getFileMode(),
+                      params.getBlockSize(),
+                      params.getBlockReadCacheSize(),
+                      params.getBlockWriteCacheSize()) ;
     }
     
-    // XXX Build then add cache.
-    // XXX Deprecate?
     public static BlockMgr create(FileSet fileSet, String ext, int blockSize, int readBlockCacheSize, int writeBlockCacheSize) {
         return create(fileSet, ext, null, blockSize, readBlockCacheSize, writeBlockCacheSize) ;
     }

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/BuildDB.java Mon Sep  8 14:32:57 2014
@@ -59,38 +59,15 @@ public class BuildDB
     }
     
     public static DatasetPrefixesTDB makePrefixes(Location location, DatasetControl policy) {
-        return DatasetBuilderStd.stdBuilder().makePrefixTable(location, policy) ;
+        return DatasetBuilderStd.stdBuilder().makePrefixTable(location, policy, params) ;
     }
-//        
-//        // The index using for Graph+Prefix => URI
-//        String indexPrefixes = params.getIndexPrefix() ;
-//        String primary = params.getPrimaryIndexPrefix() ;
-//        String indexes[] = params.getPrefixIndexes() ;
-//
-//        TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{indexPrefixes}) ;
-//        if ( prefixIndexes.length != indexes.length )
-//            error(log, "Wrong number of triple table tuples indexes: "+prefixIndexes.length) ;
-//
-//        // The nodetable.
-//        String pnNode2Id = params.getPrefixNode2Id() ;
-//        String pnId2Node = params.getPrefixId2Node() ;
-//
-//        // No cache - the prefix mapping is a cache
-//        NodeTable prefixNodes = makeNodeTable(location, pnNode2Id, -1, pnId2Node, -1, -1)  ;
-//        NodeTupleTable prefixTable = new NodeTupleTableConcrete(primary.length(),
-//                                                                prefixIndexes,
-//                                                                prefixNodes, policy) ;
-//        DatasetPrefixesTDB prefixes = new DatasetPrefixesTDB(prefixTable) ; 
-//        log.debug("Prefixes: "+StrUtils.strjoin(", ", indexes)) ;
-//        return prefixes ;
-//      }
 
     public static NodeTable makeNodeTable(Location location) {
         return makeNodeTable(location, params) ;
     }
 
     public static NodeTable makeNodeTable(Location location, SystemParams params) {
-        DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder(params) ;
+        DatasetBuilderStd dbBuild = DatasetBuilderStd.stdBuilder() ;
         return dbBuild.makeNodeTable(location, params) ; 
     }
     

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilder.java Mon Sep  8 14:32:57 2014
@@ -29,5 +29,5 @@ public interface DatasetBuilder
      * Build a new Java object for a dataset.
      * Location may already contains files for the state, or may need initializing.  
      */
-    public DatasetGraphTDB build(Location location) ;
+    public DatasetGraphTDB build(Location location, SystemParams params) ;
 }

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java?rev=1623410&r1=1623409&r2=1623410&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java Mon Sep  8 14:32:57 2014
@@ -63,7 +63,7 @@ public class DatasetBuilderStd implement
     private TupleIndexBuilder           tupleIndexBuilder ;
 
     // XXX Should not be an object field. 
-    private SystemParams                params ;
+    //private SystemParams                params ;
 
     private Map<FileRef, BlockMgr>      blockMgrs      = new HashMap<>() ;
     private Map<FileRef, BufferChannel> bufferChannels = new HashMap<>() ;
@@ -71,9 +71,9 @@ public class DatasetBuilderStd implement
 
     public static DatasetGraphTDB create(Location location) {
         SystemParams params = paramsForLocation(location) ;
-        DatasetBuilderStd x = new DatasetBuilderStd(params) ;
+        DatasetBuilderStd x = new DatasetBuilderStd() ;
         x.standardSetup() ;
-        return x.build(location) ;
+        return x.build(location, params) ;
     }
 
     public static DatasetGraphTDB create() {
@@ -81,30 +81,30 @@ public class DatasetBuilderStd implement
     }
 
     public static DatasetBuilderStd stdBuilder() {
-        DatasetBuilderStd x = new DatasetBuilderStd(SystemParams.getDftSystemParams()) ;
+        DatasetBuilderStd x = new DatasetBuilderStd() ;
         x.standardSetup() ;
         return x ;
     }
 
-    /** Create a building : if database settings already at the  location,
-     * use those otherwiese use the provided defaults.  
-     */
-    public static DatasetBuilderStd stdBuilder(SystemParams dftParams) {
-        DatasetBuilderStd x = new DatasetBuilderStd(dftParams) ;
-        x.standardSetup() ;
-        return x ;
-    }
+//    /** Create a building : if database settings already at the  location,
+//     * use those otherwiese use the provided defaults.  
+//     */
+//    public static DatasetBuilderStd stdBuilder(SystemParams dftParams) {
+//        DatasetBuilderStd x = new DatasetBuilderStd(dftParams) ;
+//        x.standardSetup() ;
+//        return x ;
+//    }
 
     protected DatasetBuilderStd() {
-        this(SystemParams.getDftSystemParams()) ;
-    }
-
-    // XXX Take params out of constructor.  They are location sensitive.
-    protected DatasetBuilderStd(SystemParams params) {
-        //Objects.requireNonNull(params) ;
-        if ( params == null )
-            params = SystemParams.getDftSystemParams() ;
-        this.params = params ;
+//        this(SystemParams.getDftSystemParams()) ;
+//    }
+//
+//    // XXX Take params out of constructor.  They are location sensitive.
+//    protected DatasetBuilderStd(SystemParams params) {
+//        //Objects.requireNonNull(params) ;
+//        if ( params == null )
+//            params = SystemParams.getDftSystemParams() ;
+//        this.params = params ;
     }
 
     // Used by DatasetBuilderTxn
@@ -189,7 +189,7 @@ public class DatasetBuilderStd implement
     }
 
     @Override
-    public DatasetGraphTDB build(Location location) {
+    public DatasetGraphTDB build(Location location, SystemParams params) {
         // Ensure that there is global synchronization
         synchronized (DatasetBuilderStd.class) {
             log.debug("Build database: "+location.getDirectoryPath()) ;
@@ -205,26 +205,17 @@ public class DatasetBuilderStd implement
     // Called by DatasetBuilderTxn
     // XXX Rework - provide a cloning constructor (copies maps).
     // Or "reset"
-    public synchronized DatasetGraphTDB _build(Location location, SystemParams _params, boolean writeable,
-                                               ReorderTransformation _transform) {
-        // This should create a new DatabseBuilderStd as a clone and use that!
-        SystemParams dftParams = params ;
-        try { 
-            if ( _params != null )
-                params = _params ;
-            init(location) ;
-            return buildWorker(location, writeable, _transform) ;
-        } finally {
-            params = dftParams ;
-        }
+    public DatasetGraphTDB _build(Location location, SystemParams params, boolean writeable, ReorderTransformation _transform) {
+        init(location) ;
+        return buildWorker(location, writeable, _transform, params) ;
     }
     
-    private DatasetGraphTDB buildWorker(Location location, boolean writeable, ReorderTransformation _transform) {
+    private DatasetGraphTDB buildWorker(Location location, boolean writeable, ReorderTransformation _transform, SystemParams params) {
         DatasetControl policy = createConcurrencyPolicy() ;
         NodeTable nodeTable = makeNodeTable(location, params) ;
-        TripleTable tripleTable = makeTripleTable(location, nodeTable, policy) ;
-        QuadTable quadTable = makeQuadTable(location, nodeTable, policy) ;
-        DatasetPrefixesTDB prefixes = makePrefixTable(location, policy) ;
+        TripleTable tripleTable = makeTripleTable(location, nodeTable, policy, params) ;
+        QuadTable quadTable = makeQuadTable(location, nodeTable, policy, params) ;
+        DatasetPrefixesTDB prefixes = makePrefixTable(location, policy, params) ;
 
         ReorderTransformation transform = (_transform == null) ? chooseReorderTransformation(location) : _transform ;
 
@@ -248,7 +239,7 @@ public class DatasetBuilderStd implement
     // ==== TODO makeNodeTupleTable.
 
     // ======== Dataset level
-    protected TripleTable makeTripleTable(Location location, NodeTable nodeTable, DatasetControl policy) {
+    protected TripleTable makeTripleTable(Location location, NodeTable nodeTable, DatasetControl policy, SystemParams params) {
         String primary = params.getPrimaryIndexTriples() ;
         String[] indexes = params.getTripleIndexes() ;
 
@@ -259,7 +250,7 @@ public class DatasetBuilderStd implement
         // indexes)) ;
         log.debug("Triple table: " + primary + " :: " + StrUtils.strjoin(",", indexes)) ;
 
-        TupleIndex tripleIndexes[] = makeTupleIndexes(location, primary, indexes) ;
+        TupleIndex tripleIndexes[] = makeTupleIndexes(location, primary, indexes, params) ;
 
         if ( tripleIndexes.length != indexes.length )
             error(log, "Wrong number of triple table tuples indexes: " + tripleIndexes.length) ;
@@ -267,7 +258,7 @@ public class DatasetBuilderStd implement
         return tripleTable ;
     }
 
-    protected QuadTable makeQuadTable(Location location, NodeTable nodeTable, DatasetControl policy) {
+    protected QuadTable makeQuadTable(Location location, NodeTable nodeTable, DatasetControl policy, SystemParams params) {
         String primary = params.getPrimaryIndexQuads() ;
         String[] indexes = params.getQuadIndexes() ;
 
@@ -279,18 +270,18 @@ public class DatasetBuilderStd implement
 
         log.debug("Quad table: " + primary + " :: " + StrUtils.strjoin(",", indexes)) ;
 
-        TupleIndex quadIndexes[] = makeTupleIndexes(location, primary, indexes) ;
+        TupleIndex quadIndexes[] = makeTupleIndexes(location, primary, indexes, params) ;
         if ( quadIndexes.length != indexes.length )
             error(log, "Wrong number of quad table tuples indexes: " + quadIndexes.length) ;
         QuadTable quadTable = new QuadTable(quadIndexes, nodeTable, policy) ;
         return quadTable ;
     }
 
-    protected DatasetPrefixesTDB makePrefixTable(Location location, DatasetControl policy) {
+    protected DatasetPrefixesTDB makePrefixTable(Location location, DatasetControl policy, SystemParams params) {
         String primary = params.getPrimaryIndexPrefix() ;
         String[] indexes = params.getPrefixIndexes() ;
 
-        TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{params.getIndexPrefix()}) ;
+        TupleIndex prefixIndexes[] = makeTupleIndexes(location, primary, indexes, new String[]{params.getIndexPrefix()}, params) ;
         if ( prefixIndexes.length != 1 )
             error(log, "Wrong number of triple table tuples indexes: " + prefixIndexes.length) ;
 
@@ -333,38 +324,32 @@ public class DatasetBuilderStd implement
     // }
 
 
-    // XXX Add params
-    private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames) {
-        return makeTupleIndexes(location, primary, indexNames, indexNames) ;
+    private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, SystemParams params) {
+        return makeTupleIndexes(location, primary, indexNames, indexNames, params) ;
     }
-    // XXX Add params
-    private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, String[] filenames) {
+    
+    private TupleIndex[] makeTupleIndexes(Location location, String primary, String[] indexNames, String[] filenames, SystemParams params) {
         if ( primary.length() != 3 && primary.length() != 4 )
             error(log, "Bad primary key length: " + primary.length()) ;
 
         int indexRecordLen = primary.length() * NodeId.SIZE ;
         TupleIndex indexes[] = new TupleIndex[indexNames.length] ;
         for ( int i = 0 ; i < indexes.length ; i++ )
-            indexes[i] = makeTupleIndex(location, filenames[i], primary, indexNames[i]) ;
+            indexes[i] = makeTupleIndex(location, filenames[i], primary, indexNames[i], params) ;
         return indexes ;
     }
 
-    // ----
-    // XXX Add params
-    protected TupleIndex makeTupleIndex(Location location, String name, String primary, String indexOrder) {
+    protected TupleIndex makeTupleIndex(Location location, String name, String primary, String indexOrder, SystemParams params) {
         // Commonly, name == indexOrder.
-        // FileSet
         FileSet fs = new FileSet(location, name) ;
         ColumnMap colMap = new ColumnMap(primary, indexOrder) ;
         return tupleIndexBuilder.buildTupleIndex(fs, colMap, indexOrder, params) ;
     }
 
-    // ----
-    public NodeTable makeNodeTable(Location location, SystemParams params2) {
-        // Note - uses different params.
-        FileSet fsNodeToId = new FileSet(location, params2.getIndexNode2Id()) ;
-        FileSet fsId2Node = new FileSet(location, params2.getIndexId2Node()) ;
-        NodeTable nt = nodeTableBuilder.buildNodeTable(fsNodeToId, fsId2Node, params2) ;
+    public NodeTable makeNodeTable(Location location, SystemParams params) {
+        FileSet fsNodeToId = new FileSet(location, params.getIndexNode2Id()) ;
+        FileSet fsId2Node = new FileSet(location, params.getIndexId2Node()) ;
+        NodeTable nt = nodeTableBuilder.buildNodeTable(fsNodeToId, fsId2Node, params) ;
         return nt ;
     }