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();
+ }
}