You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/11/18 23:21:49 UTC
git commit: separate thread for graph diagram
Updated Branches:
refs/heads/develop 65ca20d71 -> 47d05218b
separate thread for graph diagram
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/47d05218
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/47d05218
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/47d05218
Branch: refs/heads/develop
Commit: 47d05218bd908e1367629efa0a78f41c1494a27a
Parents: 65ca20d
Author: Sebastian Schaffert <ss...@apache.org>
Authored: Mon Nov 18 23:21:41 2013 +0100
Committer: Sebastian Schaffert <ss...@apache.org>
Committed: Mon Nov 18 23:21:41 2013 +0100
----------------------------------------------------------------------
.../kiwi/loader/generic/KiWiHandler.java | 104 ++++++++++---------
1 file changed, 57 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/47d05218/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/generic/KiWiHandler.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/generic/KiWiHandler.java b/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/generic/KiWiHandler.java
index 27258d5..ba16651 100644
--- a/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/generic/KiWiHandler.java
+++ b/libraries/kiwi/kiwi-loader/src/main/java/org/apache/marmotta/kiwi/loader/generic/KiWiHandler.java
@@ -227,11 +227,10 @@ public class KiWiHandler implements RDFHandler {
statLastDump = System.currentTimeMillis();
// start a sampler thread to run at the SAMPLE_INTERVAL
- statSampler = Executors.newScheduledThreadPool(1);
+ statSampler = Executors.newScheduledThreadPool(2);
statSampler.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
- long time = System.currentTimeMillis() / 1000;
long cacheMisses = 0, cacheHits = 0;
for(LoadingCache c : new LoadingCache[] { literalCache, uriCache, bnodeCache }) {
@@ -241,62 +240,73 @@ public class KiWiHandler implements RDFHandler {
}
try {
+ long time = System.currentTimeMillis() / 1000;
+
synchronized (statSample) {
statSample.setTime(time);
statSample.setValues(triples, nodes, nodesLoaded, cacheHits, cacheMisses);
statSample.update();
}
- if(System.currentTimeMillis() > statLastDump + TimeUnit.MINUTES.toMillis(5L)) {
- File gFile = new File(config.getStatisticsGraph());
-
- if(gFile.exists()) {
- gFile.delete();
- }
-
- // generate PNG diagram
- RrdGraphDef gDef = new RrdGraphDef();
- gDef.setFilename("-");
- gDef.setWidth(800);
- gDef.setHeight(600);
- gDef.setStartTime(start / 1000);
- gDef.setEndTime(System.currentTimeMillis() / 1000);
- gDef.setTitle("KiWiLoader Performance");
- gDef.setVerticalLabel("number/sec");
- gDef.setAntiAliasing(true);
-
-
- gDef.datasource("triples", "kiwiloader.rrd", "triples", ConsolFun.AVERAGE);
- gDef.datasource("nodes", "kiwiloader.rrd", "nodes", ConsolFun.AVERAGE);
- gDef.datasource("nodes-loaded", "kiwiloader.rrd", "nodes-loaded", ConsolFun.AVERAGE);
- gDef.datasource("cache-hits", "kiwiloader.rrd", "cache-hits", ConsolFun.AVERAGE);
- gDef.datasource("cache-misses", "kiwiloader.rrd", "cache-misses", ConsolFun.AVERAGE);
-
- gDef.line("triples", Color.BLUE, "Triples Written", 3F);
- gDef.line("nodes", Color.MAGENTA, "Nodes Written", 3F);
- gDef.line("nodes-loaded", Color.CYAN, "Nodes Loaded", 3F);
- gDef.line("cache-hits", Color.GREEN, "Node Cache Hits");
- gDef.line("cache-misses", Color.ORANGE, "Node Cache Misses");
-
-
- gDef.setImageFormat("png");
- gDef.print("triples", ConsolFun.AVERAGE, "average triples/sec: %,.0f");
- gDef.print("nodes", ConsolFun.AVERAGE, "average nodes/sec: %,.0f");
-
- RrdGraph graph = new RrdGraph(gDef);
- BufferedImage img = new BufferedImage(900,750, BufferedImage.TYPE_INT_RGB);
- graph.render(img.getGraphics());
- ImageIO.write(img,"png",gFile);
-
- log.info("updated statistics diagram generated in {}", config.getStatisticsGraph());
-
- statLastDump = System.currentTimeMillis();
- }
} catch (Exception e) {
log.warn("could not update statistics database: {}", e.getMessage());
}
}
},0, SAMPLE_INTERVAL, TimeUnit.SECONDS);
+
+ // create a statistics diagram every 5 minutes
+ statSampler.scheduleAtFixedRate(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ File gFile = new File(config.getStatisticsGraph());
+
+ if(gFile.exists()) {
+ gFile.delete();
+ }
+
+ // generate PNG diagram
+ RrdGraphDef gDef = new RrdGraphDef();
+ gDef.setFilename("-");
+ gDef.setWidth(800);
+ gDef.setHeight(600);
+ gDef.setStartTime(start / 1000);
+ gDef.setEndTime(System.currentTimeMillis() / 1000);
+ gDef.setTitle("KiWiLoader Performance");
+ gDef.setVerticalLabel("number/sec");
+ gDef.setAntiAliasing(true);
+
+
+ gDef.datasource("triples", "kiwiloader.rrd", "triples", ConsolFun.AVERAGE);
+ gDef.datasource("nodes", "kiwiloader.rrd", "nodes", ConsolFun.AVERAGE);
+ gDef.datasource("nodes-loaded", "kiwiloader.rrd", "nodes-loaded", ConsolFun.AVERAGE);
+ gDef.datasource("cache-hits", "kiwiloader.rrd", "cache-hits", ConsolFun.AVERAGE);
+ gDef.datasource("cache-misses", "kiwiloader.rrd", "cache-misses", ConsolFun.AVERAGE);
+
+ gDef.line("triples", Color.BLUE, "Triples Written", 3F);
+ gDef.line("nodes", Color.MAGENTA, "Nodes Written", 3F);
+ gDef.line("nodes-loaded", Color.CYAN, "Nodes Loaded", 3F);
+ gDef.line("cache-hits", Color.GREEN, "Node Cache Hits");
+ gDef.line("cache-misses", Color.ORANGE, "Node Cache Misses");
+
+
+ gDef.setImageFormat("png");
+ gDef.gprint("triples", ConsolFun.AVERAGE, "average triples/sec: %,.0f\\l");
+ gDef.gprint("nodes", ConsolFun.AVERAGE, "average nodes/sec: %,.0f\\l");
+
+ RrdGraph graph = new RrdGraph(gDef);
+ BufferedImage img = new BufferedImage(900,750, BufferedImage.TYPE_INT_RGB);
+ graph.render(img.getGraphics());
+ ImageIO.write(img,"png",gFile);
+
+ log.info("updated statistics diagram generated in {}", config.getStatisticsGraph());
+
+ statLastDump = System.currentTimeMillis();
+ } catch (Exception ex) {
+ log.warn("error creating statistics diagram: {}", ex.getMessage());
+ }
+ }
+ },0,5,TimeUnit.MINUTES);
} catch (IOException e) {
log.warn("could not initialize statistics database: {}",e.getMessage());
}