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 2012/06/15 11:23:46 UTC
svn commit: r1350547 -
/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java
Author: andy
Date: Fri Jun 15 09:23:46 2012
New Revision: 1350547
URL: http://svn.apache.org/viewvc?rev=1350547&view=rev
Log: (empty)
Added:
jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java
Added: jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java
URL: http://svn.apache.org/viewvc/jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java?rev=1350547&view=auto
==============================================================================
--- jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java (added)
+++ jena/Scratch/AFS/Jena-Dev/trunk/src/dev/Jena256_TDBWritePerf.java Fri Jun 15 09:23:46 2012
@@ -0,0 +1,107 @@
+
+/* Original version: */
+/* ******************************************************************************
+ * Licensed Materials - Property of IBM
+ * (c) Copyright IBM Corporation 2011. All Rights Reserved.
+ *
+ * Note to U.S. Government Users Restricted Rights: Use,
+ * duplication or disclosure restricted by GSA ADP Schedule
+ * Contract with IBM Corp.
+ * *****************************************************************************/
+
+
+package dev ;
+
+import java.util.ArrayList ;
+import java.util.List ;
+
+import org.openjena.atlas.lib.FileOps ;
+
+import com.hp.hpl.jena.query.Dataset ;
+import com.hp.hpl.jena.query.ReadWrite ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.Property ;
+import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.tdb.TDBFactory ;
+import com.hp.hpl.jena.tdb.base.block.FileMode ;
+import com.hp.hpl.jena.tdb.sys.SystemTDB ;
+
+public class Jena256_TDBWritePerf {
+
+ private final static int TOTAL = 100;
+ final static String INDEX_INFO_SUBJECT = "http://test.net/xmlns/test/1.0/Triple-Indexer";
+ final static String TIMESTAMP_PREDICATE = "http://test.net/xmlns/test/1.0/lastProcessedTimestamp";
+ final static String URI_PREDICATE = "http://test.net/xmlns/test/1.0/lastProcessedUri";
+ final static String VERSION_PREDICATE = "http://test.net/xmlns/test/1.0/indexVersion";
+ final static String INDEX_SIZE_PREDICATE = "http://test.net/xmlns/test/1.0/indexSize";
+
+ /**
+ * @param args
+ */
+ public static void main(String[] args) {
+
+// if (args.length == 0) {
+// System.out.println("Provide index location");
+// return;
+// }
+
+ String location = "DBX" ;
+ FileOps.ensureDir(location) ;
+ FileOps.clearDirectory(location) ;
+
+ //Submitted without ....
+ if ( false )
+ SystemTDB.setFileMode(FileMode.direct) ;
+
+ //String location = args[0]; // + "/" + UUID.randomUUID().toString();
+
+ String baseGraphName = "com.ibm.test.graphNamePrefix.";
+
+ long totalExecTime = 0L;
+ long size = 0;
+ for (int i = 0; i < TOTAL; i++) {
+ List<String> lastProcessedUris = new ArrayList<String>();
+ for (int j = 0; j < i; j++) {
+ String lastProcessedUri = "http://test.net/xmlns/test/1.0/someUri" + j;
+ lastProcessedUris.add(lastProcessedUri);
+ }
+ Dataset dataset = TDBFactory.createDataset(location);
+ String graphName = baseGraphName + i;
+ long t = System.currentTimeMillis();
+
+ try {
+ dataset.begin(ReadWrite.WRITE);
+ Model m = dataset.getNamedModel(graphName);
+
+ m.removeAll();
+ Resource subject = m.createResource(INDEX_INFO_SUBJECT);
+ Property predicate = m.createProperty(TIMESTAMP_PREDICATE);
+ m.addLiteral(subject, predicate, System.currentTimeMillis());
+ predicate = m.createProperty(URI_PREDICATE);
+ for (String uri : lastProcessedUris) {
+ m.add(subject, predicate, m.createResource(uri));
+ }
+ predicate = m.createProperty(VERSION_PREDICATE);
+ m.addLiteral(subject, predicate, 1.0);
+
+ size += m.size() + 1;
+
+ predicate = m.createProperty(INDEX_SIZE_PREDICATE);
+ m.addLiteral(subject, predicate, size);
+
+ dataset.commit();
+ } catch (Throwable e) {
+ dataset.abort();
+ throw new RuntimeException(e);
+ } finally {
+ dataset.end();
+ long writeOperationDuration = System.currentTimeMillis() - t;
+ totalExecTime += writeOperationDuration;
+ System.out.println("Write operation " + i + " took " + writeOperationDuration + "ms");
+ }
+ }
+
+ System.out.println("All " + TOTAL + " write operations wrote " + size + " triples and took " + totalExecTime + "ms");
+ }
+
+}