Mark Robert Miller created SOLR-18272:
-----------------------------------------
Summary: Unify SolrIndexSearcher paths with CollectorManager
integration
Key: SOLR-18272
URL: https://issues.apache.org/jira/browse/SOLR-18272
Project: Solr
Issue Type: Improvement
Reporter: Mark Robert Miller
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.
h2. 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.
{noformat}
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
{noformat}
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 message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]