Context
While experimenting with ways to reduce noise in the PR benchmark data, Claude found a number of bugs in the existing benchmark code:
- benchmarkSingleInsert always uses the smallData file instead of the source param, meaning BenchmarkLargeDocInsertOne and BenchmarkSmallDocInsertOne use the same fixture file.
- benchmarkSingleInsert doesn't call ResetTimer, so the benchmark erroneously measures the test setup time as well as the benchmark loop.
- testdataDir has a buggy file traversal termination condition and is generally unnecessary. It can be replaced by a path constant.
- setupBench never calls the CancelFunc for the Context used to Ping.
- The "benchmark" task in the Taskfile references a package that no longer exists.
- The test fixtures are only downloaded if the benchmarks are invoked via TestRunAllBenchmarks. If the benchmarks are run any other way, the fixtures are not downloaded.
Definition of done
- Fix all bugs listed above.
Pitfalls
What should the implementer watch out for? What are the risks?
- related to
-
GODRIVER-3860 Improve performance monitoring and alerting
-
- Backlog
-