[ 
https://issues.apache.org/jira/browse/SOLR-16531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17656156#comment-17656156
 ] 

Jason Gerlowski edited comment on SOLR-16531 at 1/9/23 5:48 PM:
----------------------------------------------------------------

bq. The problem is, as there is a known perf degradation , nobody can do any 
test of perf on any commits.

As I said - if Ishan still holds his veto, I will roll back the changes whether 
I "understand" or not, because that's the timeline that was agreed to.

But I have to admit that I've never really understood this point about the 
JAX-RS integration making it somehow impossible to measure performance on 
branch_9x, and I would really like to.

Performance measurement is inherently a relative exercise: take a baseline 
measurement, make a change, measure again, and compute the delta.  If the 
JAX-RS integration has introduced some slowdown - well that's accounted for in 
the baseline, so the measured "delta" is still meaningful. And if you're 
worried that the JAX-RS integration might obscure some other 
performance-impacting change - there's a feature flag to disable it in your 
perf testing.

bq. What are the gaps with app-per-ConfigSet?

I think the gaps depend on what design/scope we want to shoot for.  For cores 
using the same configset: do we only want to share Jersey apps?  What about v2 
ApiBags and v1 requestHandlers?  What about other solrconfig.xml-configured 
plugins?  If we want cores to share a set of requestHandlers, how would metrics 
be handled since those currently live at the requestHandler level? etc.

I'm going to start in on a more involved spike that attempts to share Jersey 
apps, ApiBags, and requestHandlers with the goal of flushing out any 
hangups/blockers and figuring out how metrics will need to be handled.  So 
hopefully that'll help inform some of those questions above. But the answers 
probably need to come from community-need too.  (e.g. Maybe some multi-tenant 
usecases don't want to share rH's across cores. etc.). I'll file a ticket for 
this effort today so we have a dedicated place for app-per-configset 
discussion. *EDIT*: see SOLR-16615


was (Author: gerlowskija):
bq. The problem is, as there is a known perf degradation , nobody can do any 
test of perf on any commits.

As I said - if Ishan still holds his veto, I will roll back the changes whether 
I "understand" or not, because that's the timeline that was agreed to.

But I have to admit that I've never really understood this point about the 
JAX-RS integration making it somehow impossible to measure performance on 
branch_9x, and I would really like to.

Performance measurement is inherently a relative exercise: take a baseline 
measurement, make a change, measure again, and compute the delta.  If the 
JAX-RS integration has introduced some slowdown - well that's accounted for in 
the baseline, so the measured "delta" is still meaningful. And if you're 
worried that the JAX-RS integration might obscure some other 
performance-impacting change - there's a feature flag to disable it in your 
perf testing.

bq. What are the gaps with app-per-ConfigSet?

I think the gaps depend on what design/scope we want to shoot for.  For cores 
using the same configset: do we only want to share Jersey apps?  What about v2 
ApiBags and v1 requestHandlers?  What about other solrconfig.xml-configured 
plugins?  If we want cores to share a set of requestHandlers, how would metrics 
be handled since those currently live at the requestHandler level? etc.

I'm going to start in on a more involved spike that attempts to share Jersey 
apps, ApiBags, and requestHandlers with the goal of flushing out any 
hangups/blockers and figuring out how metrics will need to be handled.  So 
hopefully that'll help inform some of those questions above. But the answers 
probably need to come from community-need too.  (e.g. Maybe some multi-tenant 
usecases don't want to share rH's across cores. etc.). I'll file a ticket for 
this effort today so we have a dedicated place for app-per-configset discussion.

> Performance degradation due to introduction of JAX-RS
> -----------------------------------------------------
>
>                 Key: SOLR-16531
>                 URL: https://issues.apache.org/jira/browse/SOLR-16531
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Ishan Chattopadhyaya
>            Priority: Blocker
>             Fix For: 9.2
>
>         Attachments: Screenshot from 2022-11-09 11-20-44.png, 
> jaxrs-integration-with-app-per-configset-flamegraph.html, 
> results-with-patch.tar.gz, vanilla-jaxrs-integration-flamegraph.html
>
>
> During performance benchmarking on branch_9x, I observed a slowdown in 
> restart performance since commits in SOLR-16347. See attached screenshot.
> CC [~gerlowskija].
> http://mostly.cool/cluster-test-with-patch.html
> The benchmark is here: 
> https://github.com/fullstorydev/solr-bench/blob/ishan/repeatable-jenkins/suites/cluster-test.json.
>  This suite was run after retro-actively applying the parallelStream patch 
> from SOLR-16414: 
> https://github.com/apache/solr/commit/b33161d0cdd976fc0c3dc78c4afafceb4db671cf.diff
>  
> Effort to automate these benchmarks is WIP and tracked here: SOLR-16525.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to