markrmiller opened a new pull request, #4487:
URL: https://github.com/apache/solr/pull/4487
Replaces the dual sequential/parallel branches in getDocListNC and
getDocListAndSetNC with a single private searchAndCollect helper that
internally selects between single-slice and multi-slice execution. The
top-level methods no longer fork on MultiThreadedSearcher.allowMT. Also makes
canceling a query when doing parallel segment search actually do something.
## Performance — this commit vs parent
1.5M docs / 150 segments, 300 samples per cell per build, combined from two
independent round-robin sessions (parent and this commit runs alternated within
each session against a single shared `solr-home`). 30 warmup + 30 timed runs
per cell per round. `sudo powermetrics --samplers cpu_power,thermal` ran in
parallel at 1s cadence for both sessions; thermal verification below.
```
cell parent
ms±se this commit ms±se delta% z
-----------------------------------------------------------------------------------------------------------------------------
match-all-top500 baseline mt_false 17.98±0.042
17.72±0.025 -1.4% -5.4
match-all-top500 baseline mt_true 17.85±0.039
17.73±0.026 -0.7% -2.7
match-all-top500 ste mt_false 10.19±0.027
10.09±0.022 -1.0% -2.8
match-all-top500 ste mt_true 10.13±0.021
10.10±0.023 -0.3% -0.8
match-all-top500 postfilter mt_false 25.54±0.045
25.78±0.083 +0.9% +2.5
match-all-top500 postfilter mt_true 25.41±0.045
25.62±0.033 +0.8% +3.8
match-all-top500 both mt_false 19.94±0.044
20.23±0.029 +1.5% +5.6
match-all-top500 both mt_true 20.12±0.080
20.23±0.035 +0.5% +1.2
big-bool-or-top1000 baseline mt_false 24.76±0.053
24.88±0.038 +0.5% +1.8
big-bool-or-top1000 baseline mt_true 26.31±0.046
26.31±0.038 -0.0% -0.1
big-bool-or-top1000 ste mt_false 5.66±0.036
5.58±0.020 -1.5% -2.1
big-bool-or-top1000 ste mt_true 5.61±0.027
5.49±0.020 -2.2% -3.6
big-bool-or-top1000 postfilter mt_false 30.49±0.040
30.55±0.040 +0.2% +1.0
big-bool-or-top1000 postfilter mt_true 30.47±0.041
30.58±0.036 +0.4% +2.0
big-bool-or-top1000 both mt_false 6.96±0.023
6.89±0.021 -1.0% -2.3
big-bool-or-top1000 both mt_true 6.89±0.037
6.98±0.022 +1.3% +2.1
sort-by-rank-top500 baseline mt_false 17.73±0.025
17.83±0.026 +0.6% +2.9
sort-by-rank-top500 baseline mt_true 17.76±0.025
17.78±0.027 +0.1% +0.6
sort-by-rank-top500 ste mt_false 17.40±0.021
17.37±0.024 -0.2% -0.9
sort-by-rank-top500 ste mt_true 17.39±0.022
17.37±0.024 -0.2% -0.9
sort-by-rank-top500 postfilter mt_false 25.86±0.065
25.67±0.034 -0.8% -2.7
sort-by-rank-top500 postfilter mt_true 25.74±0.030
25.79±0.080 +0.2% +0.6
sort-by-rank-top500 both mt_false 23.98±0.030
23.90±0.028 -0.3% -2.0
sort-by-rank-top500 both mt_true 23.93±0.027
23.96±0.030 +0.1% +0.7
big-bool-or-score-top500 baseline mt_false 54.93±0.070
55.05±0.110 +0.2% +0.9
big-bool-or-score-top500 baseline mt_true 53.37±0.063
53.54±0.088 +0.3% +1.5
big-bool-or-score-top500 ste mt_false 19.49±0.072
19.60±0.112 +0.5% +0.8
big-bool-or-score-top500 ste mt_true 19.52±0.161
19.50±0.073 -0.1% -0.1
big-bool-or-score-top500 postfilter mt_false 59.68±0.167
59.63±0.065 -0.1% -0.3
big-bool-or-score-top500 postfilter mt_true 59.42±0.056
59.69±0.102 +0.4% +2.3
big-bool-or-score-top500 both mt_false 20.41±0.174
20.66±0.252 +1.2% +0.8
big-bool-or-score-top500 both mt_true 20.15±0.039
20.20±0.044 +0.2% +0.8
```
Negative delta = this commit faster than parent.
`sudo powermetrics --samplers cpu_power,thermal -i 1000` ran in parallel for
both sessions (~13 min each).
| build | sessions | runs | P-cluster avg MHz | CPU_W avg | thermal
pressure |
|---|---:|---:|---:|---:|---|
| parent | 2 | 10 | P0 3041, P1 3060 | 8.27 | Nominal (every sample) |
| patched | 2 | 10 | P0 3051, P1 3055 | 8.25 | Nominal (every sample) |
No `Fair`/`Serious`/`Critical` events for any sample in any run across
either session.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]