From: <lor...@us...> - 2010-12-14 07:04:53
|
Revision: 2558 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2558&view=rev Author: lorenz_b Date: 2010-12-14 05:34:05 +0000 (Tue, 14 Dec 2010) Log Message: ----------- Added monitor to query cache. Added more metrics for evaluation. Modified Paths: -------------- trunk/autosparql/src/main/java/org/dllearner/autosparql/server/evaluation/EvaluationScript.java trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java Modified: trunk/autosparql/src/main/java/org/dllearner/autosparql/server/evaluation/EvaluationScript.java =================================================================== --- trunk/autosparql/src/main/java/org/dllearner/autosparql/server/evaluation/EvaluationScript.java 2010-12-14 05:13:15 UTC (rev 2557) +++ trunk/autosparql/src/main/java/org/dllearner/autosparql/server/evaluation/EvaluationScript.java 2010-12-14 05:34:05 UTC (rev 2558) @@ -96,8 +96,8 @@ PreparedStatement ps = conn.prepareStatement("INSERT INTO evaluation (" + "id, original_query, learned_query, triple_pattern_count," + "examples_needed, pos_examples_needed, neg_examples_needed," + - "total_time_in_ms, query_time_in_ms, lgg_time_in_ms, nbr_time_in_ms) " + - "VALUES(?,?,?,?,?,?,?,?,?,?,?)"); + "total_time_in_ms, query_time_in_ms, query_time_avg, lgg_time_in_ms, lgg_time_avg, nbr_time_in_ms, nbr_time_avg) " + + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); //fetch all queries from table 'tmp', where the number of results is lower than 2000 Statement st = conn.createStatement(); @@ -204,11 +204,14 @@ double queryTime = MonitorFactory.getTimeMonitor("Query").getTotal(); double lggTime = MonitorFactory.getTimeMonitor("LGG").getTotal(); double nbrTime = MonitorFactory.getTimeMonitor("NBR").getTotal(); + double queryTimeAvg = MonitorFactory.getTimeMonitor("Query").getAvg(); + double lggTimeAvg = MonitorFactory.getTimeMonitor("LGG").getAvg(); + double nbrTimeAvg = MonitorFactory.getTimeMonitor("NBR").getAvg(); double totalTime = queryTime + nbrTime + lggTime; write2DB(ps, id, query, learnedQuery, triplePatternCount, examplesCount, posExamplesCount, negExamplesCount, - totalTime, queryTime, lggTime, nbrTime); + totalTime, queryTime, queryTimeAvg, lggTime, lggTimeAvg, nbrTime, nbrTimeAvg); logger.info("Number of examples needed: " + (posExamples.size() + negExamples.size()) + "(+" + posExamples.size() + "/-" + negExamples.size() + ")"); @@ -223,17 +226,17 @@ } } logger.info("Learned " + learnedCnt + " of " + testedCnt + " queries"); - logger.info("Time to compute LGG(total): " + MonitorFactory.getTimeMonitor("LGG").getTotal()); - logger.info("Time to compute LGG(avg): " + MonitorFactory.getTimeMonitor("LGG").getAvg()); - logger.info("Time to compute LGG(min): " + MonitorFactory.getTimeMonitor("LGG").getMin()); - logger.info("Time to compute LGG(max): " + MonitorFactory.getTimeMonitor("LGG").getMax()); + logger.info(MonitorFactory.getTimeMonitor("Query")); + logger.info(MonitorFactory.getTimeMonitor("LGG")); + logger.info(MonitorFactory.getTimeMonitor("NBR")); } private static void write2DB(PreparedStatement ps, int id, String originalQuery, String learnedQuery, int triplePatternCount, int examplesCount, int posExamplesCount, int negExamplesCount, - double totalTime, double queryTime, double lggTime, double nbrTime){ + double totalTime, double queryTime, double queryTimeAvg, + double lggTime, double lggTimeAvg, double nbrTime, double nbrTimeAvg){ try { ps.setInt(1, id); ps.setString(2, originalQuery); @@ -244,8 +247,11 @@ ps.setInt(7, negExamplesCount); ps.setDouble(8, totalTime); ps.setDouble(9, queryTime); - ps.setDouble(10, lggTime); - ps.setDouble(11, nbrTime); + ps.setDouble(10, queryTimeAvg); + ps.setDouble(11, lggTime); + ps.setDouble(12, lggTimeAvg); + ps.setDouble(13, nbrTime); + ps.setDouble(14, nbrTimeAvg); ps.executeUpdate(); } catch (SQLException e) { 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-12-14 05:13:15 UTC (rev 2557) +++ trunk/components-core/src/main/java/org/dllearner/kb/sparql/ExtractionDBCache.java 2010-12-14 05:34:05 UTC (rev 2558) @@ -39,6 +39,8 @@ import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; +import com.jamonapi.Monitor; +import com.jamonapi.MonitorFactory; /** * The class is used to cache information about resources to a database. @@ -63,6 +65,8 @@ MessageDigest md5; + private Monitor mon = MonitorFactory.getTimeMonitor("Query"); + public ExtractionDBCache(String cacheDir) { databaseDirectory = cacheDir; try { @@ -95,6 +99,7 @@ } public Model executeConstructQuery(SparqlEndpoint endpoint, String query) throws SQLException, UnsupportedEncodingException { + mon.start(); byte[] md5 = md5(query); // Timestamp currTS = new Timestamp(new java.util.Date().getTime()); PreparedStatement ps=conn.prepareStatement("SELECT * FROM QUERY_CACHE WHERE QUERYHASH=? LIMIT 1"); @@ -151,7 +156,7 @@ ps2.setClob(3, new StringReader(modelStr)); ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); } - + mon.stop(); ps2.executeUpdate(); return m2; @@ -159,7 +164,10 @@ } public String executeSelectQuery(SparqlEndpoint endpoint, String query) { + try { + + mon.start(); byte[] md5 = md5(query); PreparedStatement ps=conn.prepareStatement("SELECT * FROM QUERY_CACHE WHERE QUERYHASH=? LIMIT 1"); ps.setBytes(1, md5); @@ -199,13 +207,15 @@ ps2.setClob(3, new StringReader(json)); ps2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime())); } - + mon.stop(); ps2.executeUpdate(); return json; } } catch(SQLException e) { e.printStackTrace(); return null; + } finally{ + mon.stop(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |