* One of two initializers must be called to set up which type of tests is desired; {@code initDeephaven()} or * {@code initPython()}. Deephaven tests run queries inside of Deephaven like the standard benchmarks. Python tests use * Deephaven as an agent to run python scripts from the command line by first installing required pip modules in a * python virtual environment and then running each test from there. - *
+ ** Note: This runner requires test ordering, so it follows that tests in a single test class are meant to be run as a * group. This violates the standard Benchmark convention that every test be able to be run by itself. This is done for * practical purposes, though it is not ideal. diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/agg/AverageByTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/agg/AverageByTest.java index 7958127c..5a8ecacb 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/agg/AverageByTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/agg/AverageByTest.java @@ -10,9 +10,9 @@ * Product comparison tests for the average by group operation. Tests read the same parquet data. To avoid an unfair * advantage where some products may partition or group data during the read, parquet read time is included in the * benchmark results. - *
+ ** Each test calculates two new average columns and groups by a string and an integer. - *
+ ** Data generation only happens in the first tests, the Deephaven test. Tests can be run individually, but only after * the desired data has been generated. */ diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/distinct/DistinctTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/distinct/DistinctTest.java index cd1a57db..31cd7fff 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/distinct/DistinctTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/distinct/DistinctTest.java @@ -10,9 +10,9 @@ * Product comparison tests for the distinct (or select distinct) group operation. Tests read the same parquet data. To * avoid an unfair advantage where some products may partition or group data during the read, parquet read time is * included in the benchmark results. - *
+ ** Each test produces a table result that contains rows unique according to a string and an integer. - *
+ ** Data generation only happens in the first tests, the Deephaven test. Tests can be run individually, but only after * the desired data has been generated. */ diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/filter/FilterTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/filter/FilterTest.java index 33764b53..8330184a 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/filter/FilterTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/filter/FilterTest.java @@ -10,10 +10,10 @@ * Product comparison tests for filter (where) operations. Tests read the same parquet data. To avoid an unfair * advantage where some products may partition or group data during the read, parquet read time is included in the * benchmark results. - *
+ ** Each test produces a table result filtered by three criteria; value is an exact string, value > an integer, value < * an integer. - *
+ ** Data generation only happens in the first tests, the Deephaven test. Tests can be run individually, but only after * the desired data has been generated. */ diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/iterate/RowIteratorTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/iterate/RowIteratorTest.java index bb6eba2c..b591570a 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/iterate/RowIteratorTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/iterate/RowIteratorTest.java @@ -9,11 +9,11 @@ * Product comparison tests for iterating and summing table columns. Tests read the same parquet data. To avoid an * unfair advantage where some products may partition or group data during the read, parquet read time is included in * the benchmark results. - *
+ ** Each test produces a table result containing one row with one column that is the total of the result of the sum of * two columns for each row. ex. sum((r1c1 + r1c2)..(rNc1 + rNc2)). This is achieved without creating an extra column to * hold the column sums. - *
+ ** Data generation only happens in the first test, the Deephaven test. Tests can be run individually, but only after the * desired data has been generated. */ diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/join/InnerJoinTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/join/InnerJoinTest.java index 4fafdbb6..4dfc1376 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/join/InnerJoinTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/join/InnerJoinTest.java @@ -10,9 +10,9 @@ * Product comparison tests for inner join operations. Tests read the same parquet data. To avoid an unfair advantage * where some products may partition or group data during the read, parquet read time is included in the benchmark * results. - *
+ ** Each test produces a table that is the result of two tables intersected by a string and an integer. - *
+ ** Data generation only happens in the first tests, the Deephaven test. Tests can be run individually, but only after * the desired data has been generated. */ diff --git a/src/it/java/io/deephaven/benchmark/tests/compare/sort/SortTest.java b/src/it/java/io/deephaven/benchmark/tests/compare/sort/SortTest.java index c1c51841..35148889 100644 --- a/src/it/java/io/deephaven/benchmark/tests/compare/sort/SortTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/compare/sort/SortTest.java @@ -9,9 +9,9 @@ /** * Product comparison tests for sort operations. Tests read the same parquet data. To avoid an unfair advantage where * some products may partition or group data during the read, parquet read time is included in the benchmark results. - *
+ ** Each test sorts a table by a string and an integer. - *
+ *
* Data generation only happens in the first tests, the Deephaven test. Tests can be run individually, but only after
* the desired data has been generated.
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/experimental/ExperimentalTestRunner.java b/src/it/java/io/deephaven/benchmark/tests/experimental/ExperimentalTestRunner.java
index ff1c6c9a..70317470 100644
--- a/src/it/java/io/deephaven/benchmark/tests/experimental/ExperimentalTestRunner.java
+++ b/src/it/java/io/deephaven/benchmark/tests/experimental/ExperimentalTestRunner.java
@@ -14,7 +14,7 @@
* boilerplate logic like imports, parquet reads, time measurement logic, etc. Each test
runs two tests;
* one reading from a static parquet, and the other exercising ticking tables through the
* AutotuningIncrementalReleaseFilter
.
- *
* Note: This class is for running tests in the experimental
package. It will change as new experiments are
* added and may require external setup (i.e. parquet files) to work.
*/
@@ -112,7 +112,7 @@ public void table(String name, long rowCount) {
* Run the benchmark test according to the operation and the columns loaded from the source table. The name will
* show in the benchmark result output. The expected row count, since tests can scale, is an upper bound what result
* row count is expected.
- *
* This method assembles and runs two queries according to the settings provided previously: static and incremental
* release. Both runs are expected to produce the same resulting row count.
*
diff --git a/src/it/java/io/deephaven/benchmark/tests/experimental/mergescale/ScaleTestRunner.java b/src/it/java/io/deephaven/benchmark/tests/experimental/mergescale/ScaleTestRunner.java
index 89570eda..775406a9 100644
--- a/src/it/java/io/deephaven/benchmark/tests/experimental/mergescale/ScaleTestRunner.java
+++ b/src/it/java/io/deephaven/benchmark/tests/experimental/mergescale/ScaleTestRunner.java
@@ -12,7 +12,7 @@
* This tests a sort operation based on generated rows of data. The expected row count is achieved by fully generating
* the data to a parquet file or partially generating the data and merging that by tableFactor
to get row
* count.
- *
* Note: For best results, use base and row counts that are highly divisible and clear like 1,000,000 so that the
* tableFactor
is a whole number.
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/internal/examples/stream/JoinTablesFromKafkaStreamTest.java b/src/it/java/io/deephaven/benchmark/tests/internal/examples/stream/JoinTablesFromKafkaStreamTest.java
index 693dbf03..46192c0f 100644
--- a/src/it/java/io/deephaven/benchmark/tests/internal/examples/stream/JoinTablesFromKafkaStreamTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/internal/examples/stream/JoinTablesFromKafkaStreamTest.java
@@ -44,7 +44,7 @@ public void setup() {
*
* This test is identical to {@link #joinTwoTablesFromKafkaStream_Shorthand} except without the use of
* bench_api_
functions for Kafka consumers and table waiting.
- *
* Properties (e.g. ${kafka.consumer.addr}) are automatically filled in during query execution.
*/
@Test
@@ -116,7 +116,7 @@ with exclusive_lock(table):
*
* This test is identical to {@link #joinTwoTablesFromKafkaStream_Longhand} except without the use of
* bench_api_
functions for Kafka consumers and table waiting.
- *
* Properties (e.g. ${kafka.consumer.addr}) are automatically filled in during query execution.
*/
@Test
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/StandardTestRunner.java b/src/it/java/io/deephaven/benchmark/tests/standard/StandardTestRunner.java
index 1175a8e7..7ac925c2 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/StandardTestRunner.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/StandardTestRunner.java
@@ -51,7 +51,7 @@ public Bench api() {
* Generate the given pre-defined tables according to the default data distribution defined by the
* default.data.distribution
property. The first table name provided will be the main
* source
table.
- *
* This method should only be called once per test. * * @param names the table names @@ -81,7 +81,7 @@ public void table(String name, String distribution) { /** * Generate a pre-defined table and set a column grouping for the resulting table. The given table name will be used * as the main table used by subsequent queries. - *
+ ** * @param name the table name to generate * @param groups @@ -163,7 +163,7 @@ public void test(String name, String operation, String... loadColumns) { *
< scale.elapsed.time.target
, scale row count and do it again* * @param name the name of the test as it will show in the result file * @param expectedRowCount the max row count expected from the operation regardless of scale, or zero if the count diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/by/UngroupTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/by/UngroupTest.java index c39d502c..f20af151 100644 --- a/src/it/java/io/deephaven/benchmark/tests/standard/by/UngroupTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/standard/by/UngroupTest.java @@ -7,7 +7,7 @@ /** * Standard tests for the groupBy table operation. Ungroups column content. It is the inverse of groupBy. * Ungroup unwraps columns containing Deephaven arrays or vectors. - *
+ ** Note: These tests do group then ungroup, since the data generator does not support arrays */ public class UngroupTest { diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/formula/UserFormulaTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/formula/UserFormulaTest.java index 3b83b135..68cf5bc1 100644 --- a/src/it/java/io/deephaven/benchmark/tests/standard/formula/UserFormulaTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/standard/formula/UserFormulaTest.java @@ -6,10 +6,10 @@ /** * Standard tests for running user-defined functions. These tests are meant to be compared, and so use the same data. - *
+ ** Note: When scaling row count, vector size should not get bigger. That would cause more than one axis change and * invalidate any expected comparisons. - *
+ ** Note: The "No Hints" tests have casts to make them equivalent to the hints tests, otherwise the return value would * always be a PyObject and not really the same test. They use two formulas to achieve this, otherwise vectorization * would not happen on "No Hints" benchmarks. diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTickTest.java index 402bf0e9..85f3bbcc 100644 --- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTickTest.java +++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTickTest.java @@ -7,7 +7,7 @@ /** * Standard tests for the updateBy table operation. Calculates a tick-based exponential moving maximum for specified * columns and places the result into a new column for each row. - *
+ *
* Note: This test must contain benchmarks and decay_ticks
that are comparable to
* EmMaxTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTimeTest.java
index 3b568def..3f192207 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMaxTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a time-based exponential moving maximum for specified
* columns and places the result into a new column for each row.
- *
* Note: This test must contain benchmarks and decay_time
that are comparable to EmMaxTickTest
*/
public class EmMaxTimeTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTickTest.java
index bb08bbea..615be21d 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a tick-based exponential moving minimum for specified
* columns and places the result into a new column for each row. *
- *
* Note: This test must contain benchmarks and decay_time
that are comparable to EmMinTickTest
*/
public class EmMinTickTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTimeTest.java
index 63d0881b..488aa394 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmMinTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a time-based exponential moving minimum for specified
* columns and places the result into a new column for each row.
- *
* Note: This test must contain benchmarks and decay_ticks
that are comparable to
* EmMinTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTickTest.java
index 99b665ec..6091a754 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a tick-based exponential moving standard deviation for
* specified columns and places the result into a new column for each row. *
- *
* Note: This test must contain benchmarks and decay_ticks
that are comparable to
* EmStdTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTimeTest.java
index e15e8d88..2efe5064 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmStdTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a time-based exponential moving standard deviation for
* specified columns and places the result into a new column for each row. *
- *
* Note: This test must contain benchmarks and decay_time
that are comparable to EmStdTickTest
*/
public class EmStdTimeTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTickTest.java
index e0f67388..f648b4ba 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a tick-based exponential moving average for specified
* columns and places the result into a new column for each row.
- *
* Note: This test must contain benchmarks and decay_ticks
that are comparable to EmaTimeTest
*/
public class EmaTickTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTimeTest.java
index b44485ba..a2b54c13 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmaTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a time-based exponential moving average for specified
* columns and places the result into a new column for each row.
- *
* Note: This test must contain benchmarks and decay_time
that are comparable to EmaTickTest
*/
public class EmaTimeTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTickTest.java
index 54f89c14..2b1a8795 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a tick-based exponential moving sum for specified columns
* and places the result into a new column for each row. *
- *
* Note: This test must contain benchmarks and decay_ticks
that are comparable to EmsTimeTest
*/
public class EmsTickTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTimeTest.java
index ef011ea7..ff4542bd 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/EmsTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Calculates a time-based exponential moving average for specified
* columns and places the result into a new column for each row. *
- *
* Note: This test must contain benchmarks and decay_time
that are comparable to EmsTickTest
*/
public class EmsTimeTest {
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTickTest.java
index 2ed8a348..d90ca8f0 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling average. The result table contains
* additional columns with windowed rolling averages for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingAvgTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTimeTest.java
index 4451fd2a..d4c96409 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingAvgTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling average. The result table contains
* additional columns with windowed rolling averages for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingAvgTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTickTest.java
index 71307f24..5f010ad7 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling count. The result table contains
* additional columns with windowed rolling count1 for each specified column in the source table.
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingCountTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTimeTest.java
index bd3fbc57..f863e94b 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingCountTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling count. The result table contains
* additional columns with windowed rolling counts for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingCountTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTickTest.java
index 4a63a3f6..70a23eed 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling group. The result table contains
* additional columns with windowed rolling groups for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingGroupTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTimeTest.java
index 622cb0cd..b9189cf7 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingGroupTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling group. The result table contains
* additional columns with windowed rolling groups for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingGroupTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTickTest.java
index 2a377338..19809ddf 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling maximum. The result table contains
* additional columns with windowed rolling maximum for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingMaxTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTimeTest.java
index 0ac92c6e..e8f1c25d 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMaxTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling maximum. The result table contains
* additional columns with windowed rolling maximums for each specified column in the source table.
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingMaxTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTickTest.java
index 04bdd3ef..e5950ba4 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling minimum. The result table contains
* additional columns with windowed rolling minimums for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingMinTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTimeTest.java
index 04fd7112..6957e87b 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingMinTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling minimum. The result table contains
* additional columns with windowed rolling minimums for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingMinTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTickTest.java
index e30a5ad6..4074898f 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling product. The result table contains
* additional columns with windowed rolling product for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingProdTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTimeTest.java
index 37a41d33..cd4b6921 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingProdTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling product. The result table contains
* additional columns with windowed rolling products for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingProdTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTickTest.java
index 854d9ff5..2122a7be 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling standard deviation. The result table
* contains additional columns with windowed rolling standard deviations for each specified column in the source table.
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingStdTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTimeTest.java
index a9b586a0..27a58020 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingStdTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling standard deviation. The result table
* contains additional columns with windowed rolling standard deviations for each specified column in the source table.
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingStdTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTickTest.java
index 16e19308..4b7c5855 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling sum. The result table contains
* additional columns with windowed rolling sums for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingSumTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTimeTest.java
index fe6c32ec..ca64432f 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingSumTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling sum. The result table contains
* additional columns with windowed rolling sums for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingSumTickTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTickTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTickTest.java
index 9874a8ae..e11cd178 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTickTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTickTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a tick-based rolling weighted-average. The result table
* contains additional columns with windowed rolling weighted-averages for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_ticks/fwd_ticks
that are comparable to
* RollingWAvgTimeTest
*/
diff --git a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTimeTest.java b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTimeTest.java
index 2c6806ae..b3a09347 100644
--- a/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTimeTest.java
+++ b/src/it/java/io/deephaven/benchmark/tests/standard/updateby/RollingWAvgTimeTest.java
@@ -7,7 +7,7 @@
/**
* Standard tests for the updateBy table operation. Defines a time-based rolling weighted-average. The result table
* contains additional columns with windowed rolling weighted-averages for each specified column in the source table. *
- *
* Note: This test must contain benchmarks and rev_time/fwd_time
that are comparable to
* RollingWAvgTickTest
*/
diff --git a/src/main/java/io/deephaven/benchmark/api/Bench.java b/src/main/java/io/deephaven/benchmark/api/Bench.java
index ea1c5877..001494b7 100644
--- a/src/main/java/io/deephaven/benchmark/api/Bench.java
+++ b/src/main/java/io/deephaven/benchmark/api/Bench.java
@@ -17,19 +17,44 @@
/**
* The root accessor class for the API. Use Bench.create(this)
in a typical JUnit test to start things off
- *
* Bench API methods are not thread-safe, nor are they intended to be. It makes no sense to run benchmark tests in * parallel. If parallel tests are desired to shorten overall test time, use the standalone uber-jar and select separate * sets of test packages to run on different systems simultaneously. */ final public class Bench { + /** + * The root benchmark result directory + */ static final public Path rootOutputDir = Paths.get("results"); + /** + * The name of the benchmark results csv file + */ static final public String resultFileName = "benchmark-results.csv"; + /** + * The name of the benchmark metrics csv file + */ static final public String metricsFileName = "benchmark-metrics.csv"; + /** + * The name of the benchmark platform csv file + */ static final public String platformFileName = "benchmark-platform.csv"; + /** + * The profile that includes the properties defined in the properties file, system and startup + */ static final Profile profile = new Profile(); + /** + * The benchmark output directory for the current run + */ static final public Path outputDir = initializeOutputDirectory(); + + /** + * The starting point for the Bench API + * + * @param testInst the test case instance in operation + * @return the root of the Bench API for the given test + */ static public Bench create(Object testInst) { Bench v = new Bench(testInst.getClass()); v.setName(testInst.getClass().getSimpleName()); @@ -105,7 +130,7 @@ public boolean propertyAsBoolean(String name, String defaultValue) { /** * Get an integral property from the profile, System, Environment or return a default value. Values are specified to * match the following regular expression: - *
+ *
* [0-9]+ ( nanos | nano | millis | milli | seconds | second | minutes | minute )
*
* @param name the property name
diff --git a/src/main/java/io/deephaven/benchmark/api/BenchLog.java b/src/main/java/io/deephaven/benchmark/api/BenchLog.java
index df08eb71..3f4de79b 100644
--- a/src/main/java/io/deephaven/benchmark/api/BenchLog.java
+++ b/src/main/java/io/deephaven/benchmark/api/BenchLog.java
@@ -41,6 +41,7 @@ public void close() {
/**
* Add the log info that was collected during the test run
*
+ * @param origin where the log info came from
* @param info the log info (i.e. the docker log)
*/
public void add(String origin, String info) {
@@ -53,7 +54,7 @@ public void add(String origin, String info) {
/**
* Set the name of the current test. This will be used at the beginning and end of the test's log info.
- *
* Note: The symbol "#" is used is some components like QueryLog
to treat with special behavior. In
* this log it is removed and treated like any other test heading.
*
diff --git a/src/main/java/io/deephaven/benchmark/api/BenchPlatform.java b/src/main/java/io/deephaven/benchmark/api/BenchPlatform.java
index 234560a2..fa2b3ad0 100644
--- a/src/main/java/io/deephaven/benchmark/api/BenchPlatform.java
+++ b/src/main/java/io/deephaven/benchmark/api/BenchPlatform.java
@@ -48,6 +48,14 @@ public class BenchPlatform {
this.profileProps = profileProps;
}
+ /**
+ * Add a platform detail
+ *
+ * @param origin where the platform detail came from
+ * @param name name of the platform detail
+ * @param value value of the platform detail
+ * @return this instance
+ */
public BenchPlatform add(String origin, String name, Object value) {
benchApiAddProperty(properties, origin, name, value);
return this;
diff --git a/src/main/java/io/deephaven/benchmark/api/BenchResult.java b/src/main/java/io/deephaven/benchmark/api/BenchResult.java
index 610f0683..af5d9c00 100644
--- a/src/main/java/io/deephaven/benchmark/api/BenchResult.java
+++ b/src/main/java/io/deephaven/benchmark/api/BenchResult.java
@@ -36,7 +36,7 @@ final public class BenchResult {
/**
* Record a test rate for this result instance
*
- * @param the place where the measurement was collected
+ * @param origin the place where the measurement was collected
* @param timer a started timer measuring the test
* @param count the processed item count (e.g. rowCount)
* @return this result instance
@@ -50,7 +50,7 @@ public BenchResult test(String origin, Timer timer, long count) {
* Record a test rate for this result instance
*
* @param origin the place where the measurement was collected
- * @param timer a started timer measuring the test
+ * @param duration duration of the measured test
* @param count the processed item count (e.g. rowCount)
* @return this result instance
*/
diff --git a/src/main/java/io/deephaven/benchmark/api/BenchTable.java b/src/main/java/io/deephaven/benchmark/api/BenchTable.java
index 1a1bf20a..3bc9f46b 100644
--- a/src/main/java/io/deephaven/benchmark/api/BenchTable.java
+++ b/src/main/java/io/deephaven/benchmark/api/BenchTable.java
@@ -75,7 +75,7 @@ public BenchTable withRowCount(long generatedRowCount) {
/**
* Set column names to be used for grouping where applicable (ex. parquet generation)
*
- * @param columns the grouping column names
+ * @param columnNames the grouping column names
* @return this instance
*/
public BenchTable withColumnGrouping(String... columnNames) {
@@ -122,12 +122,12 @@ public BenchTable withCompression(String codec) {
/**
* Configure this table to use a row count based on the column data ranges rather than the
* scale.row.count
property.
- *
* Note: This property will be ignored if withRowCount()
is used or if no columns are defined with a
* descending
or ascending
distribution
*
* @param isFixed true to fix the row count, otherwise false (default)
- * @return
+ * @return this instance
*/
public BenchTable withFixedRowCount(boolean isFixed) {
this.isFixed = isFixed;
@@ -137,6 +137,7 @@ public BenchTable withFixedRowCount(boolean isFixed) {
/**
* Set a default column data distribution to use for columns that have no distribution set.
*
+ * @param distro the name of the generator distribution random | ascending | descending | runlength
* @return this instance
*/
public BenchTable withDefaultDistribution(String distro) {
diff --git a/src/main/java/io/deephaven/benchmark/api/Profile.java b/src/main/java/io/deephaven/benchmark/api/Profile.java
index 2d5e291e..c0a71f7f 100644
--- a/src/main/java/io/deephaven/benchmark/api/Profile.java
+++ b/src/main/java/io/deephaven/benchmark/api/Profile.java
@@ -106,7 +106,7 @@ boolean propertyAsBoolean(String name, String defaultValue) {
/**
* Get the value of the given property name as a Duration. Supported unit types are; nano, milli, second, minute.
* Fractional amounts are not supported.
- *
* ex. 100000 nanos, 10 millis, 1 second, 5 minutes * * @param name a property name diff --git a/src/main/java/io/deephaven/benchmark/api/QueryLog.java b/src/main/java/io/deephaven/benchmark/api/QueryLog.java index 37552dad..b14b615e 100644 --- a/src/main/java/io/deephaven/benchmark/api/QueryLog.java +++ b/src/main/java/io/deephaven/benchmark/api/QueryLog.java @@ -60,7 +60,7 @@ public void close() { /** * Set the name of the current test. The query log records queries for a test class and denotes queries according to * user-supplied test names. - *
+ *
* Note: The special character "#" is used to denote that this name is not a test name. This log uses it to denote
* test setup, while other file handlers, like BenchResult
, treat it as "skip recording results"
*
diff --git a/src/main/java/io/deephaven/benchmark/api/Snippets.java b/src/main/java/io/deephaven/benchmark/api/Snippets.java
index 98af5f60..f491db77 100644
--- a/src/main/java/io/deephaven/benchmark/api/Snippets.java
+++ b/src/main/java/io/deephaven/benchmark/api/Snippets.java
@@ -7,7 +7,7 @@
class Snippets {
/**
* Provides a consumer to a kafka topic according to the APIs properties (e.g. kafka.consumer.addr)
- *
* ex. mytable = bench_api_kafka_consume('mytopic', 'append') * * @param topic a kafka topic name @@ -35,7 +35,7 @@ def bench_api_kafka_consume(topic: str, table_type: str): /** * Captures table size every Deephaven ticking interval and does not allow advancement in the current query logic * until the given table size is reached - *
+ ** ex. bench_api_await_table_size(table, 1000000) * * @param table the table to monitor @@ -55,7 +55,7 @@ with exclusive_lock(table): /** * Captures the value of the first column in a table every Deephaven ticking interval and does not allow advancement * in the current query logic until that value is reached - *
+ ** ex. bench_api_await_column_value_limit(table, 'count', 1000000) * * @param table the table to monitor @@ -75,7 +75,7 @@ with exclusive_lock(table): /** * Initialize the container for storing benchmark metrics - *
+ ** ex. bench_api_metrics_init() */ static String bench_api_metrics_init = """ @@ -87,7 +87,7 @@ def bench_api_metrics_init(): /** * Captures the value of the first column in a table every Deephaven ticking interval and does not allow advancement * in the current query logic until that value is reached - *
+ ** ex. bench_api_metrics_add('docker', 'restart.secs', 5.1, 'restart duration in between tests') * * @param category the metric category @@ -104,7 +104,7 @@ def bench_api_metrics_add(category, name, value, note=''): /** * Collect any metrics and turn them into a Deephaven table that can be fetched from the bench api. - *
+ ** ex. bench_api_metrics_table = bench_api_metrics_collect() */ static String bench_api_metrics_collect = """ diff --git a/src/main/java/io/deephaven/benchmark/connect/BarrageConnector.java b/src/main/java/io/deephaven/benchmark/connect/BarrageConnector.java index e6be5d93..f8f68625 100644 --- a/src/main/java/io/deephaven/benchmark/connect/BarrageConnector.java +++ b/src/main/java/io/deephaven/benchmark/connect/BarrageConnector.java @@ -37,7 +37,7 @@ /** * Client that communicates with the Deephaven Server, allows queries to be executed, and results to be retrieved. At * present, this connector only supports python queries. - *
+ ** The typical workflow will be initialize connection, execute query, fetch results, close. Note: This class is meant to * be used through the Bench api rather than directly. */ diff --git a/src/main/java/io/deephaven/benchmark/connect/CachedResultTable.java b/src/main/java/io/deephaven/benchmark/connect/CachedResultTable.java index dae9519a..6f93f980 100644 --- a/src/main/java/io/deephaven/benchmark/connect/CachedResultTable.java +++ b/src/main/java/io/deephaven/benchmark/connect/CachedResultTable.java @@ -15,7 +15,7 @@ * Create an in-memory table from either CSV or a Deephaven table. Provides some basic accessors for getting column * values. No data typing is done on import of the data. Use typed methods like {@code getNumber()} to convert from * whatever row value came from the import. - *
+ *
* Note: This class is not a general purpose class for reading CSV or Deephaven Table data. It fits specific cases used
* by the Benchmark framework.
*/
@@ -27,7 +27,7 @@ public class CachedResultTable implements ResultTable {
* data types.
*
* @param csv basic csv with a header and columns
- * @param delim
+ * @param delim the delimeter to use between columns
* @return a cached result table instance
*/
static public ResultTable create(String csv, String delim) {
diff --git a/src/main/java/io/deephaven/benchmark/connect/ResultTable.java b/src/main/java/io/deephaven/benchmark/connect/ResultTable.java
index 154121f4..e1de7cf2 100644
--- a/src/main/java/io/deephaven/benchmark/connect/ResultTable.java
+++ b/src/main/java/io/deephaven/benchmark/connect/ResultTable.java
@@ -6,7 +6,7 @@
/**
* Table used to fetch during or after executing a query through a connector (e.g. BarrageConnector
) or
* through the Bench API
- *
* ex. api.query(query).fetchAfter("myTableName", table -> { // do something }).execute(); */ public interface ResultTable { @@ -65,7 +65,7 @@ public interface ResultTable { * Return values for the given columns in the order they are listed * * @param rowIndex the row position starting at 0 - * @param columNames the column names to use for value retrieval + * @param columnNames the column names to use for value retrieval * @return the column values for the row */ public List