You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by da...@apache.org on 2011/10/18 00:23:23 UTC

svn commit: r1185399 - in /incubator/jena/Jena2/SDB/trunk: ./ src/com/hp/hpl/jena/sdb/layout2/hash/ src/com/hp/hpl/jena/sdb/layout2/index/

Author: damian
Date: Mon Oct 17 22:23:23 2011
New Revision: 1185399

URL: http://svn.apache.org/viewvc?rev=1185399&view=rev
Log:
Enable safe concurrent updates by locking Nodes on pg, db2 and oracle

Modified:
    incubator/jena/Jena2/SDB/trunk/ChangeLog.txt
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashDB2.java
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashOracle.java
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashPGSQL.java
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexDB2.java
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexOracle.java
    incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexPGSQL.java

Modified: incubator/jena/Jena2/SDB/trunk/ChangeLog.txt
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/ChangeLog.txt?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/ChangeLog.txt (original)
+++ incubator/jena/Jena2/SDB/trunk/ChangeLog.txt Mon Oct 17 22:23:23 2011
@@ -6,6 +6,11 @@ Homepage:
 Documentation:
     http://jena.hpl.hp.com/wiki/SDB
 
+==== SDB v1.3.4-snapshot
+
++ Enable safe concurrent updates on postgresql, db2 and
+  oracle.
+
 ==== SDB v1.3.3
 
 + Upgraded to ARQ 2.8.6

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashDB2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashDB2.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashDB2.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashDB2.java Mon Oct 17 22:23:23 2011
@@ -16,44 +16,49 @@
  * limitations under the License.
  */
 
-package com.hp.hpl.jena.sdb.layout2.hash;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.hp.hpl.jena.sdb.layout2.TableDescNodes;
-import com.hp.hpl.jena.sdb.sql.SDBConnection;
-import com.hp.hpl.jena.sdb.store.TableDesc;
-
-public class TupleLoaderHashDB2 extends TupleLoaderHashBase {
-    
-    private static Logger log = LoggerFactory.getLogger(TupleLoaderHashDB2.class);
-    
-    public TupleLoaderHashDB2(SDBConnection connection, TableDesc tableDesc,
-            int chunkSize) {
-        super(connection, tableDesc, chunkSize);
-    }
-    
-    public String[] getNodeColTypes() {
-        return new String[] {"BIGINT", "CLOB", "VARCHAR(10)", "VARCHAR("+TableDescNodes.DatatypeUriLength+")", "INTEGER"};
-    }
-    
-    public String getTupleColType() {
-        return "BIGINT";
-    }
-    
-    public String[] getCreateTempTable() {
-        // Not temporary : may revisit but they do need (1) correct permissions and (2) DECLARE-ing 
-        return new String[] { "CREATE TABLE " , " CCSID UNICODE" };
-    }
-    
-    @Override
-    public String getClearTempNodes() {
-        return "DELETE FROM "+getNodeLoader()+" ";
-    }
-    
-    @Override
-    public String getClearTempTuples() {
-        return "DELETE FROM "+getTupleLoader()+" ";
-    }
+package com.hp.hpl.jena.sdb.layout2.hash;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.hp.hpl.jena.sdb.layout2.TableDescNodes;
+import com.hp.hpl.jena.sdb.sql.SDBConnection;
+import com.hp.hpl.jena.sdb.store.TableDesc;
+
+public class TupleLoaderHashDB2 extends TupleLoaderHashBase {
+    
+    private static Logger log = LoggerFactory.getLogger(TupleLoaderHashDB2.class);
+    
+    public TupleLoaderHashDB2(SDBConnection connection, TableDesc tableDesc,
+            int chunkSize) {
+        super(connection, tableDesc, chunkSize);
+    }
+    
+    public String[] getNodeColTypes() {
+        return new String[] {"BIGINT", "CLOB", "VARCHAR(10)", "VARCHAR("+TableDescNodes.DatatypeUriLength+")", "INTEGER"};
+    }
+    
+    public String getTupleColType() {
+        return "BIGINT";
+    }
+    
+    public String[] getCreateTempTable() {
+        // Not temporary : may revisit but they do need (1) correct permissions and (2) DECLARE-ing 
+        return new String[] { "CREATE TABLE " , " CCSID UNICODE" };
+    }
+    
+    @Override
+    public String getClearTempNodes() {
+        return "DELETE FROM "+getNodeLoader()+" ";
+    }
+    
+    @Override
+    public String getClearTempTuples() {
+        return "DELETE FROM "+getTupleLoader()+" ";
+    }
+    
+    @Override
+    public String getLoadNodes() {
+        return "LOCK TABLE Nodes IN EXCLUSIVE MODE; " + super.getLoadNodes();
+    }
 }

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashOracle.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashOracle.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashOracle.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashOracle.java Mon Oct 17 22:23:23 2011
@@ -48,4 +48,9 @@ public class TupleLoaderHashOracle exten
 	
 	@Override
 	public boolean clearsOnCommit() { return true; }
+        
+        @Override
+        public String getLoadNodes() {
+            return "LOCK TABLE Nodes IN EXCLUSIVE MODE; " + super.getLoadNodes();
+        }
 }

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashPGSQL.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashPGSQL.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashPGSQL.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/hash/TupleLoaderHashPGSQL.java Mon Oct 17 22:23:23 2011
@@ -54,4 +54,9 @@ public class TupleLoaderHashPGSQL extend
 	public String getTupleLoader() {
 		return super.getTupleLoader() + hashCode();
 	}
+        
+        @Override
+        public String getLoadNodes() {
+            return "LOCK TABLE Nodes; " + super.getLoadNodes();
+        }
 }

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexDB2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexDB2.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexDB2.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexDB2.java Mon Oct 17 22:23:23 2011
@@ -88,7 +88,8 @@ public class TupleLoaderIndexDB2 extends
 	@Override
 	public String getLoadNodes() {
 		StringBuilder stmt = new StringBuilder();
-		
+                
+                stmt.append("LOCK TABLE Nodes IN EXCLUSIVE MODE; ");
 		stmt.append("INSERT INTO Nodes \nSELECT (NEXT VALUE FOR nodeid) , "); // Autoindex thingy
 		for (int i = 0; i < getNodeColTypes().length; i++) {
 			if (i != 0) stmt.append(" , ");

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexOracle.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexOracle.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexOracle.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexOracle.java Mon Oct 17 22:23:23 2011
@@ -82,6 +82,7 @@ public class TupleLoaderIndexOracle exte
 	public String getLoadNodes() {
 		StringBuilder stmt = new StringBuilder();
 		
+                stmt.append("LOCK TABLE Nodes IN EXCLUSIVE MODE; ");
 		stmt.append("INSERT INTO Nodes \nSELECT nodeid.nextval , "); // Autoindex thingy
 		for (int i = 0; i < getNodeColTypes().length; i++) {
 			if (i != 0) stmt.append(" , ");

Modified: incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexPGSQL.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexPGSQL.java?rev=1185399&r1=1185398&r2=1185399&view=diff
==============================================================================
--- incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexPGSQL.java (original)
+++ incubator/jena/Jena2/SDB/trunk/src/com/hp/hpl/jena/sdb/layout2/index/TupleLoaderIndexPGSQL.java Mon Oct 17 22:23:23 2011
@@ -54,4 +54,9 @@ public class TupleLoaderIndexPGSQL exten
 	public String getTupleLoader() {
 		return super.getTupleLoader() + hashCode();
 	}
+        
+        @Override
+        public String getLoadNodes() {
+            return "LOCK TABLE Nodes; " + super.getLoadNodes();
+        }
 }