Skip to content
Snippets Groups Projects
Commit e7447d21 authored by Björn Vonheiden's avatar Björn Vonheiden
Browse files

Merge branch 'feature/theodolitePython' into feature/cliArgumentsTheodolite

parents 5e1aa821 44e97647
No related branches found
No related tags found
1 merge request!44Enhanced CLI arguments for theodolite
...@@ -46,7 +46,6 @@ checkstyle: ...@@ -46,7 +46,6 @@ checkstyle:
tags: tags:
- exec-docker - exec-docker
script: ./gradlew checkstyle --continue script: ./gradlew checkstyle --continue
allow_failure: true
artifacts: artifacts:
paths: paths:
- "*/build/reports/checkstyle/main.html" - "*/build/reports/checkstyle/main.html"
...@@ -58,7 +57,6 @@ pmd: ...@@ -58,7 +57,6 @@ pmd:
tags: tags:
- exec-docker - exec-docker
script: ./gradlew pmd --continue script: ./gradlew pmd --continue
allow_failure: true
artifacts: artifacts:
paths: paths:
- "*/build/reports/pmd/*.html" - "*/build/reports/pmd/*.html"
...@@ -70,7 +68,6 @@ spotbugs: ...@@ -70,7 +68,6 @@ spotbugs:
tags: tags:
- exec-docker - exec-docker
script: ./gradlew spotbugs --continue script: ./gradlew spotbugs --continue
allow_failure: true
artifacts: artifacts:
paths: paths:
- "*/build/reports/spotbugs/*.html" - "*/build/reports/spotbugs/*.html"
......
# Release Process # Release Process
We assume that we are creating the release `v0.1.1`. Please make sure to update We assume that we are creating the release `v0.1.1`. Please make sure to adjust
to modify the following steps according to the release, you are actually the following steps according to the release, you are actually performing.
performing.
1. Create a new branch `v0.1` if not already exists. This branch will never 1. Create a new branch `v0.1` if not already exists. This branch will never
again be merged into master. again be merged into master.
2. Checkout the `v0.1 branch. 2. Checkout the `v0.1` branch.
3. Update all references to Theodolite Docker images to tag `v0-1-1`. These are 3. Update all references to Theodolite Docker images to tag `v0.1.1`. These are
mainly the Kubernetes resource definitions in `execution` as well as the Docker mainly the Kubernetes resource definitions in `execution` as well as the Docker
Compose files in `docker-test`. Compose files in `docker-test`.
......
...@@ -167,7 +167,7 @@ The `./theodolite.py` is the entrypoint for all benchmark executions. Is has to ...@@ -167,7 +167,7 @@ The `./theodolite.py` is the entrypoint for all benchmark executions. Is has to
* `<commit-interval>`: Kafka Streams' commit interval in milliseconds. Optional. Default `100`. * `<commit-interval>`: Kafka Streams' commit interval in milliseconds. Optional. Default `100`.
* `<duration>`: Duration in minutes subexperiments should be executed for. Optional. Default `5`. * `<duration>`: Duration in minutes subexperiments should be executed for. Optional. Default `5`.
* `<domain-restriction>`: The domain restriction: `domain-restriction` to use domain restriction `no-domain-restriction` to not use domain restriction. Default `no-domain-restriction`. For more details see Section _Domain Restriction_. * `<domain-restriction>`: The domain restriction: `domain-restriction` to use domain restriction `no-domain-restriction` to not use domain restriction. Default `no-domain-restriction`. For more details see Section _Domain Restriction_.
* `<search-strategy>`: The benchmarking search strategy. Can be set to `check_all`, `linear-search` or `binary-search`. Default `default`. For more details see Section _Benchmarking Search Strategies_. * `<search-strategy>`: The benchmarking search strategy. Can be set to `check-all`, `linear-search` or `binary-search`. Default `check-all`. For more details see Section _Benchmarking Search Strategies_.
### Domain Restriction ### Domain Restriction
For dimension value, we have a domain of the amounts of instances. As a consequence, for each dimension value the maximum number of lag experiments is equal to the size of the domain. How the domain is determined is defined by the following domain restriction strategies. For dimension value, we have a domain of the amounts of instances. As a consequence, for each dimension value the maximum number of lag experiments is equal to the size of the domain. How the domain is determined is defined by the following domain restriction strategies.
...@@ -180,7 +180,7 @@ For dimension value, we have a domain of the amounts of instances. As a conseque ...@@ -180,7 +180,7 @@ For dimension value, we have a domain of the amounts of instances. As a conseque
### Benchmarking Search Strategies ### Benchmarking Search Strategies
There are the following benchmarking strategies: There are the following benchmarking strategies:
* `check_all`: For each dimension value, execute one lag experiment for all amounts of instances within the current domain. * `check-all`: For each dimension value, execute one lag experiment for all amounts of instances within the current domain.
* `linear-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is from the lowest number of instances to the highest amount of instances and the execution for each dimension value is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful. * `linear-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is from the lowest number of instances to the highest amount of instances and the execution for each dimension value is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful.
* `binary-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is in a binary-search-like manner. The execution is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful. * `binary-search`: A heuristic which works as follows: For each dimension value, execute one lag experiment for all number of instances within the current domain. The execution order is in a binary-search-like manner. The execution is stopped, when a suitable amount of instances is found or if all lag experiments for the dimension value were not successful.
{
"test_step_strategy.py": true
}
\ No newline at end of file
.cache
\ No newline at end of file
...@@ -32,7 +32,7 @@ cleanup.qualify_static_member_accesses_with_declaring_class=true ...@@ -32,7 +32,7 @@ cleanup.qualify_static_member_accesses_with_declaring_class=true
cleanup.qualify_static_method_accesses_with_declaring_class=false cleanup.qualify_static_method_accesses_with_declaring_class=false
cleanup.remove_private_constructors=true cleanup.remove_private_constructors=true
cleanup.remove_redundant_modifiers=false cleanup.remove_redundant_modifiers=false
cleanup.remove_redundant_semicolons=false cleanup.remove_redundant_semicolons=true
cleanup.remove_redundant_type_arguments=true cleanup.remove_redundant_type_arguments=true
cleanup.remove_trailing_whitespaces=true cleanup.remove_trailing_whitespaces=true
cleanup.remove_trailing_whitespaces_all=true cleanup.remove_trailing_whitespaces_all=true
......
...@@ -17,8 +17,6 @@ import org.apache.kafka.streams.kstream.Suppressed.BufferConfig; ...@@ -17,8 +17,6 @@ import org.apache.kafka.streams.kstream.Suppressed.BufferConfig;
import org.apache.kafka.streams.kstream.TimeWindows; import org.apache.kafka.streams.kstream.TimeWindows;
import org.apache.kafka.streams.kstream.Windowed; import org.apache.kafka.streams.kstream.Windowed;
import org.apache.kafka.streams.kstream.WindowedSerdes; import org.apache.kafka.streams.kstream.WindowedSerdes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import titan.ccp.common.kafka.avro.SchemaRegistryAvroSerdeFactory; import titan.ccp.common.kafka.avro.SchemaRegistryAvroSerdeFactory;
import titan.ccp.configuration.events.Event; import titan.ccp.configuration.events.Event;
import titan.ccp.configuration.events.EventSerde; import titan.ccp.configuration.events.EventSerde;
...@@ -38,7 +36,7 @@ public class TopologyBuilder { ...@@ -38,7 +36,7 @@ public class TopologyBuilder {
private final Duration emitPeriod; private final Duration emitPeriod;
private final Duration gracePeriod; private final Duration gracePeriod;
// SERDEs // Serdes
private final SchemaRegistryAvroSerdeFactory srAvroSerdeFactory; private final SchemaRegistryAvroSerdeFactory srAvroSerdeFactory;
private final StreamsBuilder builder = new StreamsBuilder(); private final StreamsBuilder builder = new StreamsBuilder();
......
allprojects {
repositories {
maven {
url 'https://packages.confluent.io/maven/'
}
}
}
dependencies {
compile('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT')
}
mainClassName = "theodolite.uc3.application.HistoryService" mainClassName = "theodolite.uc3.application.HistoryService"
allprojects {
repositories {
maven {
url 'https://packages.confluent.io/maven/'
}
}
}
dependencies {
compile('org.industrial-devops:titan-ccp-common-kafka:0.1.0-SNAPSHOT')
}
mainClassName = "theodolite.uc4.application.HistoryService" mainClassName = "theodolite.uc4.application.HistoryService"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment