diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-05-13 23:49:15 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-05-13 23:49:15 +0200 |
| commit | 0068fd4e3c47e9bfb2b61c7c90527a2ccda3952d (patch) | |
| tree | 6bef49b1be098dc6a7fcea56eeb5c6def9a21463 /opendc | |
| parent | efd62bbc3bbe236503095e5cb27af42423500d85 (diff) | |
perf: Do not share metric writers across experiments
Diffstat (limited to 'opendc')
3 files changed, 14 insertions, 9 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/ExperimentRunnerCli.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/ExperimentRunnerCli.kt index d5990c01..b072fb12 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/ExperimentRunnerCli.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/ExperimentRunnerCli.kt @@ -170,18 +170,23 @@ internal sealed class Reporter(name: String) : OptionGroup(name), ExperimentRepo } class Postgres : Reporter("Options for reporting using PostgreSQL") { - lateinit var hostWriter: PostgresHostMetricsWriter + lateinit var ds: DataSource override fun init(ds: DataSource) { - hostWriter = PostgresHostMetricsWriter(ds, batchSize) + this.ds = ds } - override fun createReporter(scenario: Long, run: Int): ExperimentReporter = - ExperimentPostgresReporter(scenario, run, hostWriter) - - override fun close() { - hostWriter.close() + override fun createReporter(scenario: Long, run: Int): ExperimentReporter { + val hostWriter = PostgresHostMetricsWriter(ds, batchSize) + val delegate = ExperimentPostgresReporter(scenario, run, hostWriter) + return object : ExperimentReporter by delegate { + override fun close() { + hostWriter.close() + } + } } + + override fun close() {} } } diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Portfolios.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Portfolios.kt index 04bddce3..f2ac84a1 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Portfolios.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/Portfolios.kt @@ -72,7 +72,7 @@ object HorVerPortfolio : AbstractSc20Portfolio("horizontal_vs_vertical") { // Workload("solvinity", 0.1), // Workload("solvinity", 0.25), // Workload("small-parquet", 0.5), - Workload("small-parquet", 0.5) + Workload("small-parquet", 1.0) ) override val operationalPhenomena = listOf( diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/PostgresMetricsWriter.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/PostgresMetricsWriter.kt index bfa89e3a..367a3a5a 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/PostgresMetricsWriter.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/reporter/PostgresMetricsWriter.kt @@ -43,7 +43,7 @@ public abstract class PostgresMetricsWriter<T>( /** * The queue of commands to process. */ - private val queue: BlockingQueue<Action> = ArrayBlockingQueue(12 * batchSize) + private val queue: BlockingQueue<Action> = ArrayBlockingQueue(4 * batchSize) /** * The thread for the actual writer. |
