Conversation
Wasn't closing the jetty client. No need to explicitly create it; we can use the cache which is closed.
…mark's correctness / health
Wasn't consuming the stream.
| @@ -132,13 +132,18 @@ public IntegerMaxCardinalitySolrGen(int maxCardinality, Gen<Integer> integers) { | |||
|
|
|||
| @Override | |||
| public Integer generate(SolrRandomnessSource in) { | |||
There was a problem hiding this comment.
can be called concurrently; needs to be thread-safe
| public static class BenchState { | ||
|
|
||
| @Param({CommonParams.JAVABIN, CommonParams.JSON, "cbor", "smile", "xml", "raw"}) | ||
| @Param({CommonParams.JAVABIN, CommonParams.JSON, "cbor", "smile", "xml"}) |
There was a problem hiding this comment.
"raw" is special; isn't working (NPE) in this scenario. Don't think it makes sense to benchmark it.
| throws SolrServerException, IOException { | ||
| return miniClusterState.client.request(benchState.q, collection); | ||
| NamedList<Object> response = miniClusterState.client.request(benchState.q, collection); | ||
| // consume the stream completely |
There was a problem hiding this comment.
this is necessary since otherwise the InputStreamResponseParser is left unconsumed and in fact it means the benchmark was mostly useless as nothing was transmitted since there was no consumer! wow
| logClusterDirectorySize(); | ||
|
|
||
| String orr = ObjectReleaseTracker.clearObjectTrackerAndCheckEmpty(); | ||
| if (orr != null) { |
There was a problem hiding this comment.
this helped track down 2 issues!
|
|
||
| <!-- for versioning --> | ||
| <field name="_version_" type="long" indexed="true" stored="true"/> | ||
| <field name="_version_" type="long" indexed="true" stored="true" docValues="true"/> |
There was a problem hiding this comment.
we need docValues on _version_. This ought to be a loud Solr error but it turned up here latently when a DBQ came in -- very weird.
dsmiley
left a comment
There was a problem hiding this comment.
gonna merge Monday night
# Conflicts: # solr/benchmark/src/java/org/apache/solr/bench/MiniClusterState.java # solr/benchmark/src/java/org/apache/solr/bench/search/FilterCache.java # solr/benchmark/src/java/org/apache/solr/bench/search/QueryResponseWriters.java # solr/benchmark/src/java/org/apache/solr/bench/search/StreamingSearch.java
Backport had some issues. (cherry picked from commit 9b0309d)
Our benchmark has some misc problems that have crept in because we don't have validation of them. We have a test but we don't run the benchmarks themselves. I'll separately work on getting a suitable CI job.
The following can be run in solr/benchmark, which runs all benchmarks with very dialed down settings, nearly as much as possible. Still; it does some work like indexing that can take time.
I ran that when done and examined stdout and stderr. a CI job will have to check the output for "Exception" since JMH often exits with status 0 when there were definitely problems.
I also found it necessary to use Java 25, as Java 21 on my machine was failing (at least 2x in a row) on ExitableDirectoryReaderSearch.