You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/11/10 11:51:36 UTC

[37/50] [abbrv] jena git commit: Put in default StoreParams calls

Put in default StoreParams calls


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/906be05b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/906be05b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/906be05b

Branch: refs/heads/hadoop-rdf
Commit: 906be05b1f491c96eadba008c494b8faa72cdf81
Parents: 74b75f3
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Nov 5 16:36:12 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Nov 5 16:36:12 2014 +0000

----------------------------------------------------------------------
 .../com/hp/hpl/jena/tdb/StoreConnection.java    |  4 +-
 .../hpl/jena/tdb/setup/DatasetBuilderStd.java   | 37 +++++++++++++-----
 .../com/hp/hpl/jena/tdb/setup/StoreParams.java  | 41 +++++++++++++++++---
 .../hp/hpl/jena/tdb/setup/StoreParamsConst.java | 27 +++++++++++++
 .../store/bulkloader2/CmdNodeTableBuilder.java  |  2 +-
 .../com/hp/hpl/jena/tdb/store/TestLoader.java   |  2 +-
 6 files changed, 94 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
index 91b333e..5935a9a 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/StoreConnection.java
@@ -230,12 +230,12 @@ public class StoreConnection
         return sConn ;
     }
 
-    @Deprecated
+    /** Make a StoreConnection based on any StoreParams at eh location or the system defaults. */
     public static StoreConnection make(Location location) {
         return make(location, null) ;
     }
 
-                                                    /**
+    /**
      * Return the StoreConnection if one already exists for this location, else
      * return null
      */

http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
index 38173b5..3dd02e6 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/DatasetBuilderStd.java
@@ -67,28 +67,47 @@ public class DatasetBuilderStd implements DatasetBuilder {
     private TupleIndexBuilder   tupleIndexBuilder ;
     private Recorder            recorder = null ;   
     
-    @Deprecated
+    /**
+     * 
+     * @param location
+     * @return DatasetGraphTDB
+     */
     public static DatasetGraphTDB create(Location location) {
         return create(location, null) ;
     }
     
-    public static DatasetGraphTDB create(Location location, StoreParams $params) {
-        StoreParams params = paramsForLocation(location) ;
+    /**
+     * Create a {@linkplain DatasetGraphTDB} with a set of {@linkplain StoreParams}.
+     * The parameters for a store have 3 inputs: the parameters provided,
+     * any parameters 
+     * 
+     * 
+     * 
+     * @param location   Where to create the database.
+     * @param params     Store parameters to use (null means use default). 
+     * @return DatasetGraphTDB
+     */
+    public static DatasetGraphTDB create(Location location, StoreParams params) {
+        StoreParams $params = paramsForLocation(location) ;
         // ---- Experimental
-        if ( ! location.isMem() && $params != null ) {
+        if ( ! location.isMem() && params != null ) {
             if ( FileOps.existsAnyFiles(location.getDirectoryPath()) )
-                params = StoreParamsBuilder.modify(params, $params) ;
+                $params = StoreParamsBuilder.modify($params, params) ;
             else
-                params = $params ;
-            $params = null ;
+                $params = params ;
+            params = null ;
         }
 
         // ----
-        if ( $params != null )
+        if ( params != null )
             log.warn("StoreParams != null (experimental)") ;
         DatasetBuilderStd x = new DatasetBuilderStd() ;
         x.standardSetup() ;
-        return x.build(location, params) ;
+        DatasetGraphTDB dsg = x.build(location, $params) ;
+        // Write params.
+        //if ( params != StoreParams.getDftStoreParams() )
+        
+        return dsg ;
     }
 
     public static DatasetGraphTDB create(StoreParams params) {

http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
index 8790c9b..ee71b01 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParams.java
@@ -25,12 +25,25 @@ import org.apache.jena.atlas.lib.StrUtils ;
 import com.hp.hpl.jena.tdb.base.block.FileMode ;
 import com.hp.hpl.jena.tdb.index.IndexParams ;
 
-/** System parameters for a TDB database instance. */
+/** System parameters for a TDB database instance. 
+ * <p>
+ * Some parameters can be changed from run to run
+ * and some parameters can only be changed at the point the database is
+ * created.  
+ * <p>
+ * Getting paramters settings wrong can destroy a databse.   
+ * Alternating the block size is not encouraged and should only be
+ * done if necessary.  It can silently destroy a database if set
+ * to a different value than thatused to create the database.  The
+ * default value of 8Kbytes is good for almo
+ * 
+ * 
+ * 
+ * @see StoreParamsBuilder  for constructing StoreParams
+ * @see StoreParamsConst    for default values. 
+ */
 public class StoreParams implements IndexParams, StoreParamsDynamic
 {
-    // SystemParams are built with a SystemParamsBuilder
-    
-    private static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
     
     /* These are items you can change JVM to JVM */
     
@@ -89,9 +102,25 @@ public class StoreParams implements IndexParams, StoreParamsDynamic
         this.prefixNode2Id          = prefixNode2Id ;
         this.prefixId2Node          = prefixId2Node ;
     }
-
+    
+    /** The system default settings. This is the normal set to use.
+     *  It is the set of values used when no StoreParams is provided,
+     *  which is the normal usage.
+     */
     public static StoreParams getDftStoreParams() {
-        return dftStoreParams ;
+        return StoreParamsConst.dftStoreParams ;
+    }
+    
+    /** A {@code StoreParams} that provides a smaller
+     * in-JVM foot print.  This is compatible with
+     * any database but it it is wise to use this consistently,
+     * that is, use when created and when opened later.
+     * It reduces cache sizes and runs the database in "direct"
+     * file mode so as not to use memory mapped files
+     * in addition to the JVM space.
+     */
+    public static StoreParams getSmallStoreParams() {
+        return StoreParamsConst.smallStoreParams ;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
index 7f10450..70e6b6a 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/setup/StoreParamsConst.java
@@ -23,6 +23,33 @@ import com.hp.hpl.jena.tdb.sys.Names ;
 import com.hp.hpl.jena.tdb.sys.SystemTDB ;
 
 public class StoreParamsConst {
+    
+    // SystemParams are built with a SystemParamsBuilder
+    
+    /** The system default parameters for on-disk databases. */
+    static StoreParams dftStoreParams = StoreParamsBuilder.create().build() ;
+
+    /** The system default parameters for in-memory databases. */
+    static StoreParams dftMemStoreParams = StoreParamsBuilder.create()
+        .fileMode(FileMode.direct)
+        // Small block caches, mainly so it behaves like a direct on-disk database.  
+        .blockReadCacheSize(10)
+        .blockWriteCacheSize(10)
+        .node2NodeIdCacheSize(10000)
+        .nodeId2NodeCacheSize(10000)
+        .nodeMissCacheSize(100)
+        .build() ;
+    
+    /** The "small store" parameters. */
+    static StoreParams smallStoreParams = StoreParamsBuilder.create()
+        .fileMode(FileMode.direct)
+        .blockReadCacheSize(100)
+        .blockWriteCacheSize(100)
+        .node2NodeIdCacheSize(10000)
+        .nodeId2NodeCacheSize(10000)
+        .nodeMissCacheSize(100)
+        .build() ;
+
     // Initial values are the system defaults.
     
     /** Database and query configuration */ 

http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
index 1782de6..f6eabc5 100644
--- a/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
+++ b/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/store/bulkloader2/CmdNodeTableBuilder.java
@@ -142,7 +142,7 @@ public class CmdNodeTableBuilder extends CmdGeneral
         // Later - attach prefix table to parser.
         dsg.getPrefixes().close() ;
         
-        ProgressLogger monitor = new ProgressLogger(cmdLog, "Data", BulkLoader.DataTickPoint,BulkLoader.superTick) ;
+        ProgressLogger monitor = new ProgressLogger(cmdLog, "Data", BulkLoader.DataTickPoint, BulkLoader.superTick) ;
         OutputStream outputTriples = null ;
         OutputStream outputQuads = null ;
         

http://git-wip-us.apache.org/repos/asf/jena/blob/906be05b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
index 60ed84f..4284dde 100644
--- a/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
+++ b/jena-tdb/src/test/java/com/hp/hpl/jena/tdb/store/TestLoader.java
@@ -61,7 +61,7 @@ public class TestLoader extends BaseTest {
     }
 
     static DatasetGraphTDB fresh() {
-        return TDBMaker.createDatasetGraphTDB(Location.mem()) ;
+        return TDBMaker.createDatasetGraphTDB(Location.mem(), null) ;
     }
 
     @Test