summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-05-19 12:41:45 +0200
committerGeorgios Andreadis <info@gandreadis.com>2020-05-20 16:02:42 +0200
commit1c92520d86bc9d10143909844b46f610368d3333 (patch)
treedfa788049e08a9f5e51522cea929071919d52140
parent86cc481d6c28c32ee9b775edda4d3a956daa7938 (diff)
Add seeding
-rw-r--r--opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt13
1 files changed, 7 insertions, 6 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
index c381036b..e10baa61 100644
--- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
+++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/trace/Sc20TraceConverter.kt
@@ -42,8 +42,8 @@ import kotlin.math.min
* A script to convert a trace in text format into a Parquet trace.
*/
fun main(args: Array<String>) {
- if (args.size < 2) {
- println("error: expected <OUTPUT> <INPUT> <TRACE-TYPE>")
+ if (args.size < 3) {
+ println("error: expected <OUTPUT> <INPUT> <TRACE-TYPE> [<SEED>]")
return
}
@@ -100,7 +100,8 @@ fun main(args: Array<String>) {
val allFragments = if (traceType == "solvinity") {
readSolvinityTrace(traceDirectory, metaSchema, metaWriter)
} else {
- readAzureTrace(traceDirectory, metaSchema, metaWriter)
+ val seed = args[3].toLong()
+ readAzureTrace(traceDirectory, metaSchema, metaWriter, seed)
}
allFragments.sortWith(compareBy<Fragment> { it.tick }.thenBy { it.id })
println("Reading trace took ${(System.currentTimeMillis() - startTime) / 1000} seconds")
@@ -247,9 +248,10 @@ fun readSolvinityTrace(
fun readAzureTrace(
traceDirectory: File,
metaSchema: Schema,
- metaWriter: ParquetWriter<GenericData.Record>
+ metaWriter: ParquetWriter<GenericData.Record>,
+ seed: Long
): MutableList<Fragment> {
- val random = Random(0)
+ val random = Random(seed)
val fraction = 0.005
// Read VM table
@@ -308,7 +310,6 @@ fun readAzureTrace(
for (i in 1..195) {
val readingsFile = File(File(traceDirectory, "readings"), "readings-$i.csv")
var timestamp: Long
- var vmId: String
var cpuUsage: Double
BufferedReader(FileReader(readingsFile)).use { reader ->