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/12 23:41:03 UTC

svn commit: r1145782 - in /incubator/jena/Experimental/TxTDB/trunk: src-dev/tx/ src/main/java/com/hp/hpl/jena/tdb/transaction/ src/main/java/tdb/ src/main/java/tdb/cmdline/

Author: andy
Date: Tue Jul 12 21:41:03 2011
New Revision: 1145782

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

Added:
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java   (with props)
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java   (with props)
Modified:
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
    incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDB.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbconfig.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbloader.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbnode.java
    incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbstats.java

Modified: incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/DevTx.java Tue Jul 12 21:41:03 2011
@@ -5,8 +5,9 @@ public class DevTx
 {
     // --------
     // To do for release 0:
-    //   Journal left full when replayed. 
+    //   Journal left behind full when replayed. 
     //   Txn over block/commited transaction
+    //   Does the journal cope? with partial rplay - first part, not second?
     // --------
     
     // Tests

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=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src-dev/tx/TxMain.java Tue Jul 12 21:41:03 2011
@@ -8,7 +8,6 @@ package tx;
 
 import org.openjena.atlas.lib.Bytes ;
 import org.openjena.atlas.lib.FileOps ;
-import org.openjena.atlas.lib.Lib ;
 import org.openjena.atlas.logging.Log ;
 
 import com.hp.hpl.jena.graph.Graph ;
@@ -74,7 +73,6 @@ public class TxMain
         
         // Take a blocking read connection.
         DatasetGraphTxn dsgRead = sConn.begin(ReadWrite.READ) ;
-        dsgRead.close() ;
         
         DatasetGraphTxn dsg = sConn.begin(ReadWrite.WRITE) ;
         load("D.ttl", dsg) ;
@@ -90,6 +88,8 @@ public class TxMain
 //        dsg.close() ;
 
         dsgRead.close() ;   // Transaction can now write changes to the real DB.  
+        
+        query("DSG-R", "SELECT (count(*) AS ?C) { ?s ?p ?o }", dsgRead) ;
         exit(0) ;
     }
     

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/com/hp/hpl/jena/tdb/transaction/JournalControl.java Tue Jul 12 21:41:03 2011
@@ -149,6 +149,7 @@ public class JournalControl
             throw ex ;
         }
         finally { dsg.getLock().leaveCriticalSection() ; }
+        journal.truncate(0) ;
     }
 
     /** return true for "go on" */

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDB.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDB.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDB.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDB.java Tue Jul 12 21:41:03 2011
@@ -14,26 +14,21 @@ import java.util.Properties ;
 import org.apache.log4j.PropertyConfigurator ;
 import org.openjena.atlas.lib.StrUtils ;
 import org.openjena.riot.SysRIOT ;
-import arq.cmd.CmdException ;
-import arq.cmdline.ArgDecl ;
 import arq.cmdline.CmdARQ ;
 import arq.cmdline.ModSymbol ;
 
 import com.hp.hpl.jena.Jena ;
 import com.hp.hpl.jena.query.ARQ ;
 import com.hp.hpl.jena.query.Dataset ;
-import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.sparql.util.Utils ;
 import com.hp.hpl.jena.tdb.TDB ;
 import com.hp.hpl.jena.tdb.base.file.Location ;
 import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
-import com.hp.hpl.jena.tdb.store.GraphTDB ;
 import com.hp.hpl.jena.tdb.sys.SetupTDB ;
 import com.hp.hpl.jena.tdb.sys.SystemTDB ;
 
 public abstract class CmdTDB extends CmdARQ
 {
-    private static final ArgDecl argNamedGraph          = new ArgDecl(ArgDecl.HasValue, "graph") ;
     protected final ModTDBDataset tdbDatasetAssembler   = new ModTDBDataset() ;
 
     private static final String log4Jsetup = StrUtils.strjoin("\n"
@@ -62,13 +57,10 @@ public abstract class CmdTDB extends Cmd
     ) ;
     private static boolean initialized = false ;
     
-    protected String graphName = null ;
-    
     protected CmdTDB(String[] argv)
     {
         super(argv) ;
         init() ;
-        super.add(argNamedGraph, "--graph=IRI", "Act on a named graph") ;
         super.addModule(tdbDatasetAssembler) ;
         super.modVersion.addClass(Jena.class) ;
         super.modVersion.addClass(ARQ.class) ;
@@ -110,23 +102,6 @@ public abstract class CmdTDB extends Cmd
     protected void processModulesAndArgs()
     {
         super.processModulesAndArgs() ;
-        if ( contains(argNamedGraph) )
-            graphName = getValue(argNamedGraph) ; 
-    }
-    
-    protected Model getModel()
-    {
-        Dataset ds = tdbDatasetAssembler.getDataset() ;
-        
-        if ( graphName != null )
-        {
-            Model m = ds.getNamedModel(graphName) ;
-            if ( m == null )
-                throw new CmdException("No such named graph (is this a TDB dataset?)") ;
-            return m ;
-        }
-        else
-            return ds.getDefaultModel() ;
     }
     
     protected Location getLocation()
@@ -134,14 +109,6 @@ public abstract class CmdTDB extends Cmd
         return tdbDatasetAssembler.getLocation() ;
     }
     
-    protected GraphTDB getGraph()
-    {
-        if ( graphName != null )
-            return (GraphTDB)tdbDatasetAssembler.getDataset().getNamedModel(graphName).getGraph() ;
-        else
-            return (GraphTDB)tdbDatasetAssembler.getDataset().getDefaultModel().getGraph() ;
-    }
-    
     protected DatasetGraphTDB getDatasetGraph()
     {
         return (DatasetGraphTDB)getDataset().asDatasetGraph() ;

Added: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java?rev=1145782&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java (added)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java Tue Jul 12 21:41:03 2011
@@ -0,0 +1,92 @@
+/*
+ * (c) Copyright 2008, 2009 Hewlett-Packard Development Company, LP
+ * All rights reserved.
+ * [See end of file]
+ */
+
+package tdb.cmdline;
+
+import arq.cmd.CmdException ;
+import arq.cmdline.ArgDecl ;
+
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.sparql.util.Utils ;
+import com.hp.hpl.jena.tdb.store.GraphTDB ;
+
+public abstract class CmdTDBGraph extends CmdTDB
+{
+    private static final ArgDecl argNamedGraph          = new ArgDecl(ArgDecl.HasValue, "graph") ;
+    protected String graphName = null ;
+    
+    protected CmdTDBGraph(String[] argv)
+    {
+        super(argv) ;
+        super.add(argNamedGraph, "--graph=IRI", "Act on a named graph") ;
+    }
+    
+    @Override
+    protected void processModulesAndArgs()
+    {
+        super.processModulesAndArgs() ;
+        if ( contains(argNamedGraph) )
+            graphName = getValue(argNamedGraph) ; 
+    }
+    
+    protected Model getModel()
+    {
+        Dataset ds = tdbDatasetAssembler.getDataset() ;
+        
+        if ( graphName != null )
+        {
+            Model m = ds.getNamedModel(graphName) ;
+            if ( m == null )
+                throw new CmdException("No such named graph (is this a TDB dataset?)") ;
+            return m ;
+        }
+        else
+            return ds.getDefaultModel() ;
+    }
+    
+    protected GraphTDB getGraph()
+    {
+        if ( graphName != null )
+            return (GraphTDB)tdbDatasetAssembler.getDataset().getNamedModel(graphName).getGraph() ;
+        else
+            return (GraphTDB)tdbDatasetAssembler.getDataset().getDefaultModel().getGraph() ;
+    }
+    
+    @Override
+    protected String getCommandName()
+    {
+        return Utils.className(this) ;
+    }
+    
+}
+
+/*
+ * (c) Copyright 2008, 2009 Hewlett-Packard Development Company, LP
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
\ No newline at end of file

Propchange: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/cmdline/CmdTDBGraph.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbconfig.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbconfig.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbconfig.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbconfig.java Tue Jul 12 21:41:03 2011
@@ -13,6 +13,7 @@ import java.util.Map ;
 import org.openjena.atlas.io.IndentedWriter ;
 import tdb.cmdline.CmdSub ;
 import tdb.cmdline.CmdTDB ;
+import tdb.cmdline.CmdTDBGraph ;
 import arq.cmdline.CmdARQ ;
 import arq.cmdline.ModVersion ;
 
@@ -140,7 +141,7 @@ public class tdbconfig extends CmdSub
         }
     }
     
-    static class SubStats extends CmdTDB
+    static class SubStats extends CmdTDBGraph
     {
         public SubStats(String ... argv)
         {

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbloader.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbloader.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbloader.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbloader.java Tue Jul 12 21:41:03 2011
@@ -10,7 +10,7 @@ package tdb;
 import java.util.List ;
 
 import org.openjena.riot.Lang ;
-import tdb.cmdline.CmdTDB ;
+import tdb.cmdline.CmdTDBGraph ;
 import tdb.cmdline.ModModel ;
 
 import com.hp.hpl.jena.query.ARQ ;
@@ -18,7 +18,7 @@ import com.hp.hpl.jena.tdb.TDB ;
 import com.hp.hpl.jena.tdb.TDBLoader ;
 import com.hp.hpl.jena.tdb.store.GraphTDB ;
 
-public class tdbloader extends CmdTDB
+public class tdbloader extends CmdTDBGraph
 {
 //    private static final ArgDecl argGraphDeafult = new ArgDecl(ArgDecl.NoValue, "default") ;
     

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbnode.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbnode.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbnode.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbnode.java Tue Jul 12 21:41:03 2011
@@ -6,20 +6,19 @@
 
 package tdb;
 
-import java.util.Iterator;
+import java.util.Iterator ;
 
 import org.openjena.atlas.lib.Bytes ;
 import org.openjena.atlas.logging.Log ;
+import tdb.cmdline.CmdTDB ;
 
-import tdb.cmdline.CmdTDB;
-
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.tdb.lib.NodeLib;
-import com.hp.hpl.jena.tdb.nodetable.NodeTable;
-import com.hp.hpl.jena.tdb.store.GraphTDB;
-import com.hp.hpl.jena.tdb.store.Hash;
-import com.hp.hpl.jena.tdb.store.NodeId;
-import com.hp.hpl.jena.tdb.sys.SystemTDB;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.tdb.lib.NodeLib ;
+import com.hp.hpl.jena.tdb.nodetable.NodeTable ;
+import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
+import com.hp.hpl.jena.tdb.store.Hash ;
+import com.hp.hpl.jena.tdb.store.NodeId ;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
 
 public class tdbnode extends CmdTDB
 {
@@ -44,8 +43,8 @@ public class tdbnode extends CmdTDB
     @Override
     protected void exec()
     {
-        GraphTDB graph = getGraph() ;
-        NodeTable nodeTable = graph.getNodeTupleTable().getNodeTable() ;
+        DatasetGraphTDB dsg = getDatasetGraph() ;
+        NodeTable nodeTable = dsg.getTripleTable().getNodeTupleTable().getNodeTable() ;
         Iterator<String> iter = super.getPositional().iterator() ;
         if ( ! iter.hasNext() )
         {

Added: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java?rev=1145782&view=auto
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java (added)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java Tue Jul 12 21:41:03 2011
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tdb;
+
+import org.openjena.atlas.logging.Log ;
+import tdb.cmdline.CmdTDB ;
+
+import com.hp.hpl.jena.tdb.TDB ;
+import com.hp.hpl.jena.tdb.store.DatasetGraphTDB ;
+import com.hp.hpl.jena.tdb.transaction.JournalControl ;
+
+public class tdbrecovery extends CmdTDB
+{
+    static public void main(String... argv)
+    { 
+        TDB.setOptimizerWarningFlag(false) ;
+        Log.setLog4j() ;
+        new tdbrecovery(argv).mainRun() ;
+    }
+
+    protected tdbrecovery(String[] argv)
+    {
+        super(argv) ;
+    }
+
+    @Override
+    protected String getSummary()
+    {
+        return null ;
+    }
+
+    @Override
+    protected void exec()
+    {
+        DatasetGraphTDB dsg = super.getDatasetGraph() ;
+        JournalControl.recovery(dsg) ;
+    }
+}
+

Propchange: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbrecovery.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbstats.java
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbstats.java?rev=1145782&r1=1145781&r2=1145782&view=diff
==============================================================================
--- incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbstats.java (original)
+++ incubator/jena/Experimental/TxTDB/trunk/src/main/java/tdb/tdbstats.java Tue Jul 12 21:41:03 2011
@@ -7,7 +7,7 @@
 package tdb;
 
 import org.openjena.atlas.logging.Log ;
-import tdb.cmdline.CmdTDB ;
+import tdb.cmdline.CmdTDBGraph ;
 
 import com.hp.hpl.jena.tdb.TDB ;
 import com.hp.hpl.jena.tdb.solver.stats.Stats ;
@@ -15,7 +15,7 @@ import com.hp.hpl.jena.tdb.solver.stats.
 import com.hp.hpl.jena.tdb.store.GraphTDB ;
 
 
-public class tdbstats extends CmdTDB
+public class tdbstats extends CmdTDBGraph
 {
     // tdbconfig?
     static public void main(String... argv)