From: <lor...@us...> - 2010-11-24 15:25:25
|
Revision: 2470 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2470&view=rev Author: lorenz_b Date: 2010-11-24 15:25:18 +0000 (Wed, 24 Nov 2010) Log Message: ----------- Fixed 2 bugs in ExtractionDBCache. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2010-11-24 12:47:43 UTC (rev 2469) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2010-11-24 15:25:18 UTC (rev 2470) @@ -57,7 +57,7 @@ private boolean autoServerMode = true; // specifies after how many seconds a cached result becomes invalid - private long freshnessSeconds = 15 * 24 * 60 * 60; // 15 days + private long freshnessInMilliseconds = 15 * 24 * 60 * 60 + 1000; // 15 days private Connection conn; @@ -102,7 +102,8 @@ ResultSet rs = ps.executeQuery(); // long startTime = System.nanoTime(); - boolean readFromCache = rs.next() && (rs.getTimestamp("STORE_TIME").getTime() - System.currentTimeMillis() < freshnessSeconds); + boolean entryExists = rs.next(); + boolean readFromCache = entryExists && (System.currentTimeMillis() - rs.getTimestamp("STORE_TIME").getTime() < freshnessInMilliseconds); // long runTime = System.nanoTime() - startTime; // System.out.println(Helper.prettyPrintNanoSeconds(runTime, true, true)); @@ -137,11 +138,20 @@ String modelStr = baos.toString("UTF-8"); // use a prepared statement, so that Java handles all the escaping stuff correctly automatically - PreparedStatement ps2=conn.prepareStatement("INSERT INTO QUERY_CACHE VALUES(?,?,?,?)"); - ps2.setBytes(1, md5); - ps2.setString(2, query); - ps2.setClob(3, new StringReader(modelStr)); - ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); + PreparedStatement ps2; + if(entryExists){ + ps2 = conn.prepareStatement("UPDATE QUERY_CACHE SET TRIPLES=?, STORE_TIME=? WHERE QUERYHASH=?"); + ps2.setClob(1, new StringReader(modelStr)); + ps2.setTimestamp(2, new java.sql.Timestamp(new java.util.Date().getTime())); + ps2.setBytes(3, md5); + } else { + ps2 = conn.prepareStatement("INSERT INTO QUERY_CACHE VALUES(?,?,?,?)"); + ps2.setBytes(1, md5); + ps2.setString(2, query); + ps2.setClob(3, new StringReader(modelStr)); + ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); + } + ps2.executeUpdate(); return m2; @@ -155,7 +165,8 @@ ps.setBytes(1, md5); ResultSet rs = ps.executeQuery(); - boolean readFromCache = rs.next() && (rs.getTimestamp("STORE_TIME").getTime() - System.currentTimeMillis() < freshnessSeconds); + boolean entryExists = rs.next(); + boolean readFromCache = entryExists && (System.currentTimeMillis() - rs.getTimestamp("STORE_TIME").getTime() < freshnessInMilliseconds); if(readFromCache) { // System.out.println("cache"); @@ -175,11 +186,20 @@ String json = SparqlQuery.convertResultSetToJSON(rs2); // use a prepared statement, so that Java handles all the escaping stuff correctly automatically - PreparedStatement ps2=conn.prepareStatement("INSERT INTO QUERY_CACHE VALUES(?,?,?,?)"); - ps2.setBytes(1, md5); - ps2.setString(2, query); - ps2.setClob(3, new StringReader(json)); - ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); + PreparedStatement ps2; + if(entryExists){ + ps2 = conn.prepareStatement("UPDATE QUERY_CACHE SET TRIPLES=?, STORE_TIME=? WHERE QUERYHASH=?"); + ps2.setClob(1, new StringReader(json)); + ps2.setTimestamp(2, new java.sql.Timestamp(new java.util.Date().getTime())); + ps2.setBytes(3, md5); + } else { + ps2 = conn.prepareStatement("INSERT INTO QUERY_CACHE VALUES(?,?,?,?)"); + ps2.setBytes(1, md5); + ps2.setString(2, query); + ps2.setClob(3, new StringReader(json)); + ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); + } + ps2.executeUpdate(); return json; } @@ -211,7 +231,7 @@ } public static void main(String[] args) throws ClassNotFoundException, SQLException, NoSuchAlgorithmException, UnsupportedEncodingException { - SparqlEndpoint endpoint = SparqlEndpoint.getEndpointLOCALDBpedia(); + SparqlEndpoint endpoint = SparqlEndpoint.getEndpointDBpediaLiveAKSW(); String resource = "http://dbpedia.org/resource/Leipzig"; String query = "CONSTRUCT { <"+resource+"> ?p ?o } WHERE { <"+resource+"> ?p ?o }"; System.out.println("query: " + query); @@ -219,9 +239,9 @@ ExtractionDBCache h2 = new ExtractionDBCache("cache"); long startTime = System.nanoTime(); Model m = h2.executeConstructQuery(endpoint, query); - for(int i=0; i<1000; i++) { - h2.executeConstructQuery(endpoint, query); - } +// for(int i=0; i<1000; i++) { +// h2.executeConstructQuery(endpoint, query); +// } long runTime = System.nanoTime() - startTime; System.out.println("Answer obtained in " + Helper.prettyPrintNanoSeconds(runTime)); System.out.println(ExtractionDBCache.toNTriple(m)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-01-12 15:26:33
|
Revision: 2610 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2610&view=rev Author: lorenz_b Date: 2011-01-12 15:26:27 +0000 (Wed, 12 Jan 2011) Log Message: ----------- Fixed bug in cache. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2011-01-12 15:16:54 UTC (rev 2609) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2011-01-12 15:26:27 UTC (rev 2610) @@ -59,7 +59,7 @@ private boolean autoServerMode = true; // specifies after how many seconds a cached result becomes invalid - private long freshnessInMilliseconds = 15 * 24 * 60 * 60 + 1000; // 15 days + private long freshnessInMilliseconds = 15 * 24 * 60 * 60 * 1000; // 15 days private Connection conn; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-01-18 21:04:22
|
Revision: 2624 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2624&view=rev Author: lorenz_b Date: 2011-01-18 21:04:16 +0000 (Tue, 18 Jan 2011) Log Message: ----------- Added setter for query execution timeout. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2011-01-18 16:35:14 UTC (rev 2623) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2011-01-18 21:04:16 UTC (rev 2624) @@ -61,6 +61,8 @@ // specifies after how many seconds a cached result becomes invalid private long freshnessInMilliseconds = 15 * 24 * 60 * 60 * 1000; // 15 days + private int maxExecutionTimeInSeconds = 0; + private Connection conn; MessageDigest md5; @@ -99,7 +101,7 @@ } public Model executeConstructQuery(SparqlEndpoint endpoint, String query) throws SQLException, UnsupportedEncodingException { - return executeConstructQuery(endpoint, query, 0); + return executeConstructQuery(endpoint, query, maxExecutionTimeInSeconds); } public Model executeConstructQuery(SparqlEndpoint endpoint, String query, int maxExecutionTimeInSeconds) throws SQLException, UnsupportedEncodingException { @@ -169,7 +171,7 @@ } public String executeSelectQuery(SparqlEndpoint endpoint, String query) { - return executeSelectQuery(endpoint, query, 0); + return executeSelectQuery(endpoint, query, maxExecutionTimeInSeconds); } public String executeSelectQuery(SparqlEndpoint endpoint, String query, int maxExecutionTimeInSeconds) { @@ -250,6 +252,10 @@ } } + public void setMaxExecutionTimeInSeconds(int maxExecutionTimeInSeconds){ + this.maxExecutionTimeInSeconds = maxExecutionTimeInSeconds; + } + public static void main(String[] args) throws ClassNotFoundException, SQLException, NoSuchAlgorithmException, UnsupportedEncodingException { SparqlEndpoint endpoint = SparqlEndpoint.getEndpointDBpediaLiveAKSW(); String resource = "http://dbpedia.org/resource/Leipzig"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2012-06-07 11:06:53
|
Revision: 3725 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3725&view=rev Author: kirdie Date: 2012-06-07 11:06:43 +0000 (Thu, 07 Jun 2012) Log Message: ----------- added new constructor to extraction db cache Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-06-01 09:27:59 UTC (rev 3724) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-06-07 11:06:43 UTC (rev 3725) @@ -69,6 +69,14 @@ private Monitor mon = MonitorFactory.getTimeMonitor("Query"); + public ExtractionDBCache(Connection conn) throws SQLException + { + this.conn=conn; + // create cache table if it does not exist + Statement stmt = conn.createStatement(); + stmt.execute("CREATE TABLE IF NOT EXISTS QUERY_CACHE(QUERYHASH BINARY PRIMARY KEY,QUERY VARCHAR(20000), TRIPLES CLOB, STORE_TIME TIMESTAMP)"); + } + public ExtractionDBCache(String cacheDir) { databaseDirectory = cacheDir; try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2012-06-07 13:57:58
|
Revision: 3727 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3727&view=rev Author: kirdie Date: 2012-06-07 13:57:47 +0000 (Thu, 07 Jun 2012) Log Message: ----------- added missing statement to new extractiondbcache constructor initialising md5. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-06-07 13:48:06 UTC (rev 3726) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-06-07 13:57:47 UTC (rev 3727) @@ -72,6 +72,8 @@ public ExtractionDBCache(Connection conn) throws SQLException { this.conn=conn; + try{md5 = MessageDigest.getInstance("MD5");} + catch(NoSuchAlgorithmException e) {throw new RuntimeException("Should never happen - MD5 not found.");} // create cache table if it does not exist Statement stmt = conn.createStatement(); stmt.execute("CREATE TABLE IF NOT EXISTS QUERY_CACHE(QUERYHASH BINARY PRIMARY KEY,QUERY VARCHAR(20000), TRIPLES CLOB, STORE_TIME TIMESTAMP)"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2012-08-23 05:27:59
|
Revision: 3829 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3829&view=rev Author: lorenz_b Date: 2012-08-23 05:27:53 +0000 (Thu, 23 Aug 2012) Log Message: ----------- Added method to configure cache time. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-08-22 13:41:04 UTC (rev 3828) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2012-08-23 05:27:53 UTC (rev 3829) @@ -110,6 +110,10 @@ } } + public void setFreshnessInMilliseconds(long freshnessInMilliseconds) { + this.freshnessInMilliseconds = freshnessInMilliseconds; + } + public Model executeConstructQuery(SparqlEndpoint endpoint, String query) throws SQLException, UnsupportedEncodingException { return executeConstructQuery(endpoint, query, maxExecutionTimeInSeconds); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |