koralium / flowtide

Streaming integration engine
https://koralium.github.io/flowtide/
Apache License 2.0
28 stars 2 forks source link

Improve comparison performance #485

Closed Ulimo closed 3 months ago

Ulimo commented 3 months ago

This change tries to give better performance to comparisons.

Here are the benchmarks before and after the change:

Before:

| Method                     | Mean     | Error    | StdDev   | Processed Events / s |
|--------------------------- |---------:|---------:|---------:|---------------------:|
| InnerJoin                  | 960.4 ms | 17.93 ms | 11.86 ms |               529634 |
| LeftJoin                   | 969.5 ms | 17.80 ms |  2.75 ms |               773708 |
| ProjectionAndNormalization | 202.1 ms | 12.52 ms |  8.28 ms |               989398 |
| SumAggregation             | 208.0 ms | 11.78 ms |  7.79 ms |               961596 |

After:

| Method                     | Mean     | Error    | StdDev   | Processed Events / s |
|--------------------------- |---------:|---------:|---------:|---------------------:|
| InnerJoin                  | 854.2 ms | 10.15 ms |  1.57 ms |               594604 |
| LeftJoin                   | 884.2 ms | 50.27 ms | 33.25 ms |               850477 |
| ProjectionAndNormalization | 189.3 ms |  8.88 ms |  5.88 ms |              1056273 |
| SumAggregation             | 199.9 ms |  8.92 ms |  5.90 ms |              1000366 |
sonarcloud[bot] commented 3 months ago

Quality Gate Failed Quality Gate failed

Failed conditions
5.6% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud