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

Alex Deparvu edited comment on SOLR-17040 at 10/18/23 6:29 PM:
---------------------------------------------------------------

I am making heavy use of the CloudIndexing benchmark and have some interesting 
(if not confusing) results to share.

In short: *without profiler enabled the change comes out a bit under main 
branch BUT with profiler enabled there is a 15% boost in throughput*. I am 
still trying to wrap my head around why this is happening and the results are 
not reproducible without profiling enabled

 * Regular benchmark run (main looks a bit better 32k vs 31k):

{noformat}
main
Benchmark               (nodeCount)  (numReplicas)  (numShards)  (preGenerate)  
(useSmallDocs)   Mode  Cnt      Score     Error  Units
CloudIndexing.indexDoc            1              1            1          50000  
          true  thrpt    4  32030.118 ± 449.769  ops/s
patch
Benchmark               (nodeCount)  (numReplicas)  (numShards)  (preGenerate)  
(useSmallDocs)   Mode  Cnt      Score     Error  Units
CloudIndexing.indexDoc            1              1            1          50000  
          true  thrpt    4  31215.091 ± 671.106  ops/s
{noformat}
 * Async profiler enabled (numbers basically reverse, patch looks a lot better 
26k vs 23k)

{noformat}
main
Benchmark                     (nodeCount)  (numReplicas)  (numShards)  
(preGenerate)  (useSmallDocs)   Mode  Cnt      Score      Error  Units
CloudIndexing.indexDoc                  1              1            1          
50000            true  thrpt    4  22988.945 ± 1699.597  ops/s
patch
Benchmark                     (nodeCount)  (numReplicas)  (numShards)  
(preGenerate)  (useSmallDocs)   Mode  Cnt      Score      Error  Units
CloudIndexing.indexDoc                  1              1            1          
50000            true  thrpt    4  26276.781 ± 1308.604  ops/s
{noformat}
 

benchmark command for reference:
{noformat}
./jmh.sh -f 1 -r 300s -to 450s CloudIndexing -p nodeCount=1 -p numShards=1 -p 
numReplicas=1 -jvmArgsAppend -Dsolr.http1=true
 {noformat}
 


was (Author: alex.parvulescu):
I am making heavy use of the CloudIndexing benchmark and have some interesting 
(if not confusing) results to share:
 * Regular benchmark run (main looks a bit better 32k vs 31k):

{noformat}
main
Benchmark               (nodeCount)  (numReplicas)  (numShards)  (preGenerate)  
(useSmallDocs)   Mode  Cnt      Score     Error  Units
CloudIndexing.indexDoc            1              1            1          50000  
          true  thrpt    4  32030.118 ± 449.769  ops/s
patch
Benchmark               (nodeCount)  (numReplicas)  (numShards)  (preGenerate)  
(useSmallDocs)   Mode  Cnt      Score     Error  Units
CloudIndexing.indexDoc            1              1            1          50000  
          true  thrpt    4  31215.091 ± 671.106  ops/s
{noformat}
 * Async profiler enabled (numbers basically reverse, patch looks a lot better 
26k vs 23k)

{noformat}
main
Benchmark                     (nodeCount)  (numReplicas)  (numShards)  
(preGenerate)  (useSmallDocs)   Mode  Cnt      Score      Error  Units
CloudIndexing.indexDoc                  1              1            1          
50000            true  thrpt    4  22988.945 ± 1699.597  ops/s
patch
Benchmark                     (nodeCount)  (numReplicas)  (numShards)  
(preGenerate)  (useSmallDocs)   Mode  Cnt      Score      Error  Units
CloudIndexing.indexDoc                  1              1            1          
50000            true  thrpt    4  26276.781 ± 1308.604  ops/s
{noformat}
in short: without profiler enabled the change comes out a bit under main branch 
BUT with profiler enabled there is a 15% boost in throughput.
I am still trying to wrap my head around why this is happening and the results 
are not reproducible without profiling enabled

 

benchmark command for reference:
{noformat}
./jmh.sh -f 1 -r 300s -to 450s CloudIndexing -p nodeCount=1 -p numShards=1 -p 
numReplicas=1 -jvmArgsAppend -Dsolr.http1=true
 {noformat}
 

> UpdateLog refactor to use read/write locks
> ------------------------------------------
>
>                 Key: SOLR-17040
>                 URL: https://issues.apache.org/jira/browse/SOLR-17040
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Alex Deparvu
>            Assignee: Alex Deparvu
>            Priority: Major
>         Attachments: jfr-locks-main.png, jfr-locks-patch.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Proposing a change to refactor the UpdateLog from all `synchronized (this)` 
> blocks to read/write locks.
> Will post some benchmark results for evaluation if this is a useful change or 
> not.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to