[tor-commits] [metrics-db/master] Run five data-processing modules in parallel.
karsten at torproject.org
karsten at torproject.org
Sat Oct 27 20:07:46 UTC 2012
commit 7db75dbedf2fc77a3855e4fdff051bcbdcccac5e
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date: Fri Oct 26 15:13:21 2012 -0400
Run five data-processing modules in parallel.
---
.../db/bridgedescs/SanitizedBridgesWriter.java | 19 ++++++++++++-------
.../BridgePoolAssignmentsProcessor.java | 8 +++++++-
.../ernie/db/exitlists/ExitListDownloader.java | 6 +++++-
src/org/torproject/ernie/db/main/Main.java | 14 +++++---------
.../ernie/db/relaydescs/ArchiveWriter.java | 12 ++++++++++--
.../ernie/db/torperf/TorperfDownloader.java | 10 ++++++++--
6 files changed, 47 insertions(+), 22 deletions(-)
diff --git a/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java b/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
index 10d2baa..cb08df1 100644
--- a/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
+++ b/src/org/torproject/ernie/db/bridgedescs/SanitizedBridgesWriter.java
@@ -43,7 +43,16 @@ import org.torproject.ernie.db.main.RsyncDataProvider;
* by the bridge to advertise their capabilities), and extra-info
* descriptors (published by the bridge, mainly for statistical analysis).
*/
-public class SanitizedBridgesWriter {
+public class SanitizedBridgesWriter extends Thread {
+
+ private Configuration config;
+
+ /**
+ * Initializes this class.
+ */
+ public SanitizedBridgesWriter(Configuration config) {
+ this.config = config;
+ }
/**
* Logger for this class.
@@ -71,12 +80,7 @@ public class SanitizedBridgesWriter {
private SecureRandom secureRandom;
- /**
- * Initializes this class.
- */
- public SanitizedBridgesWriter(Configuration config,
- File statsDirectory) {
-
+ public void run() {
File bridgeDirectoriesDirectory =
new File(config.getBridgeSnapshotsDirectory());
File sanitizedBridgesDirectory =
@@ -85,6 +89,7 @@ public class SanitizedBridgesWriter {
config.getReplaceIPAddressesWithHashes();
long limitBridgeSanitizingInterval =
config.getLimitBridgeDescriptorMappings();
+ File statsDirectory = new File("stats");
if (bridgeDirectoriesDirectory == null ||
sanitizedBridgesDirectory == null || statsDirectory == null) {
diff --git a/src/org/torproject/ernie/db/bridgepools/BridgePoolAssignmentsProcessor.java b/src/org/torproject/ernie/db/bridgepools/BridgePoolAssignmentsProcessor.java
index 3893495..d822d11 100644
--- a/src/org/torproject/ernie/db/bridgepools/BridgePoolAssignmentsProcessor.java
+++ b/src/org/torproject/ernie/db/bridgepools/BridgePoolAssignmentsProcessor.java
@@ -29,9 +29,15 @@ import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.torproject.ernie.db.main.Configuration;
import org.torproject.ernie.db.main.RsyncDataProvider;
-public class BridgePoolAssignmentsProcessor {
+public class BridgePoolAssignmentsProcessor extends Thread {
+
+ private Configuration config;
public BridgePoolAssignmentsProcessor(Configuration config) {
+ this.config = config;
+ }
+
+ public void run() {
File assignmentsDirectory =
new File(config.getAssignmentsDirectory());
File sanitizedAssignmentsDirectory =
diff --git a/src/org/torproject/ernie/db/exitlists/ExitListDownloader.java b/src/org/torproject/ernie/db/exitlists/ExitListDownloader.java
index f6f2865..bf67bb7 100644
--- a/src/org/torproject/ernie/db/exitlists/ExitListDownloader.java
+++ b/src/org/torproject/ernie/db/exitlists/ExitListDownloader.java
@@ -21,8 +21,12 @@ import java.util.logging.Logger;
import org.torproject.ernie.db.main.Configuration;
import org.torproject.ernie.db.main.RsyncDataProvider;
-public class ExitListDownloader {
+public class ExitListDownloader extends Thread {
+
public ExitListDownloader(Configuration config) {
+ }
+
+ public void run() {
Logger logger = Logger.getLogger(ExitListDownloader.class.getName());
try {
logger.fine("Downloading exit list...");
diff --git a/src/org/torproject/ernie/db/main/Main.java b/src/org/torproject/ernie/db/main/Main.java
index 093f002..88f2372 100644
--- a/src/org/torproject/ernie/db/main/Main.java
+++ b/src/org/torproject/ernie/db/main/Main.java
@@ -2,7 +2,6 @@
* See LICENSE for licensing information */
package org.torproject.ernie.db.main;
-import java.io.File;
import java.util.logging.Logger;
import org.torproject.ernie.db.bridgedescs.SanitizedBridgesWriter;
@@ -35,33 +34,30 @@ public class Main {
System.exit(1);
}
- // Define stats directory for temporary files
- File statsDirectory = new File("stats");
-
// Import/download relay descriptors from the various sources
if (config.getWriteDirectoryArchives()) {
- new ArchiveWriter(config, statsDirectory);
+ new ArchiveWriter(config).start();
}
// Sanitize bridge descriptors
if (config.getImportBridgeSnapshots() &&
config.getWriteSanitizedBridges()) {
- new SanitizedBridgesWriter(config, statsDirectory);
+ new SanitizedBridgesWriter(config).start();
}
// Download exit list and store it to disk
if (config.getDownloadExitList()) {
- new ExitListDownloader(config);
+ new ExitListDownloader(config).start();
}
// Process bridge pool assignments
if (config.getProcessBridgePoolAssignments()) {
- new BridgePoolAssignmentsProcessor(config);
+ new BridgePoolAssignmentsProcessor(config).start();
}
// Process Torperf files
if (config.getProcessTorperfFiles()) {
- new TorperfDownloader(config);
+ new TorperfDownloader(config).start();
}
// Remove lock file
diff --git a/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java b/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java
index a9cb604..5c3d2e9 100644
--- a/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java
+++ b/src/org/torproject/ernie/db/relaydescs/ArchiveWriter.java
@@ -27,17 +27,25 @@ import org.torproject.descriptor.impl.DescriptorParseException;
import org.torproject.ernie.db.main.Configuration;
import org.torproject.ernie.db.main.RsyncDataProvider;
-public class ArchiveWriter {
+public class ArchiveWriter extends Thread {
+
+ private Configuration config;
+
+ public ArchiveWriter(Configuration config) {
+ this.config = config;
+ }
+
private Logger logger;
private File outputDirectory;
private DescriptorParser descriptorParser;
private int storedConsensuses = 0, storedVotes = 0, storedCerts = 0,
storedServerDescriptors = 0, storedExtraInfoDescriptors = 0;
- public ArchiveWriter(Configuration config, File statsDirectory) {
+ public void run() {
File outputDirectory =
new File(config.getDirectoryArchivesOutputDirectory());
+ File statsDirectory = new File("stats");
this.logger = Logger.getLogger(ArchiveWriter.class.getName());
this.outputDirectory = outputDirectory;
diff --git a/src/org/torproject/ernie/db/torperf/TorperfDownloader.java b/src/org/torproject/ernie/db/torperf/TorperfDownloader.java
index 5f09038..ef67ae7 100644
--- a/src/org/torproject/ernie/db/torperf/TorperfDownloader.java
+++ b/src/org/torproject/ernie/db/torperf/TorperfDownloader.java
@@ -26,7 +26,13 @@ import org.torproject.ernie.db.main.RsyncDataProvider;
/* Download possibly truncated Torperf .data and .extradata files from
* configured sources, append them to the files we already have, and merge
* the two files into the .tpf format. */
-public class TorperfDownloader {
+public class TorperfDownloader extends Thread {
+
+ private Configuration config;
+
+ public TorperfDownloader(Configuration config) {
+ this.config = config;
+ }
private File torperfOutputDirectory = null;
private SortedMap<String, String> torperfSources = null;
@@ -34,7 +40,7 @@ public class TorperfDownloader {
private Logger logger = null;
private SimpleDateFormat dateFormat;
- public TorperfDownloader(Configuration config) {
+ public void run() {
File torperfOutputDirectory =
new File(config.getTorperfOutputDirectory());
More information about the tor-commits
mailing list