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/11/16 15:24:05 UTC

jena git commit: Use a small footprint setup for the system database.

Repository: jena
Updated Branches:
  refs/heads/master 45985afb3 -> 7d17f2d5e


Use a small footprint setup for the system database.

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

Branch: refs/heads/master
Commit: 7d17f2d5e33caea93731c42c7419ff57144f4141
Parents: 45985af
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 16 14:22:40 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 16 14:22:40 2014 +0000

----------------------------------------------------------------------
 .../apache/jena/fuseki/server/FusekiServer.java |  3 +--
 .../apache/jena/fuseki/server/SystemState.java  | 24 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/7d17f2d5/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
index bb651b4..17f1da6 100644
--- a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
+++ b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
@@ -62,8 +62,7 @@ public class FusekiServer
     public static Path FUSEKI_BASE = null ;
     
     public static final boolean isWindows = SystemTDB.isWindows ;
-        
-    
+ 
     /** Unused */
     //public static final String DFT_FUSEKI_HOME  = 
     //    isWindows ? /*What's correct here?*/ "/usr/share/fuseki" : "/usr/share/fuseki" ;

http://git-wip-us.apache.org/repos/asf/jena/blob/7d17f2d5/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
index ff5775d..74117c9 100644
--- a/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
+++ b/jena-fuseki2/src/main/java/org/apache/jena/fuseki/server/SystemState.java
@@ -20,11 +20,15 @@ package org.apache.jena.fuseki.server;
 
 import org.apache.jena.atlas.lib.FileOps ;
 import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.fuseki.Fuseki ;
 
 import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.tdb.StoreConnection ;
 import com.hp.hpl.jena.tdb.TDB ;
 import com.hp.hpl.jena.tdb.TDBFactory ;
+import com.hp.hpl.jena.tdb.base.block.FileMode ;
 import com.hp.hpl.jena.tdb.base.file.Location ;
+import com.hp.hpl.jena.tdb.setup.StoreParams ;
 import com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction ;
 
 public class SystemState {
@@ -50,6 +54,21 @@ public class SystemState {
         init$() ;
     }
     
+    /** Small footprint database.  The system database records the server state.
+     * It should not be performance critical, mainly being used for system admin
+     * functions.
+     * <p>Direct mode so that it is not competing for OS file cache space.
+     * <p>Small caches - 
+     */
+    private static final StoreParams systemDatabaseParams = StoreParams.builder()
+        .fileMode(FileMode.direct)
+        .blockReadCacheSize(20)
+        .blockWriteCacheSize(20)
+        .node2NodeIdCacheSize(5000)
+        .nodeId2NodeCacheSize(5000)
+        .nodeMissCacheSize(100)
+        .build() ;
+    
     public /* for testing */ static void init$() {
         if ( initialized )
             return ;
@@ -61,6 +80,11 @@ public class SystemState {
         if ( ! location.isMem() )
             FileOps.ensureDir(location.getDirectoryPath()) ;
         
+        // Force it into the store connection as a low footprint
+        if ( StoreConnection.getExisting(location) != null )
+            Fuseki.serverLog.warn("System database already in the StoreConnection cache") ;
+        StoreConnection.make(location, systemDatabaseParams) ;
+        
         dataset = TDBFactory.createDataset(location) ;
         dsg     = (DatasetGraphTransaction)(dataset.asDatasetGraph()) ;
         dsg.getContext().set(TDB.symUnionDefaultGraph, false) ;