Benoit Tellier created JAMES-3263:
-------------------------------------

             Summary: GET /address/aliases/address/aliases is slow (9s +)
                 Key: JAMES-3263
                 URL: https://issues.apache.org/jira/browse/JAMES-3263
             Project: James Server
          Issue Type: Task
            Reporter: Benoit Tellier
         Attachments: Capture d’écran de 2020-06-23 09-24-17.png, 
Capture_d_écran_de_2020-06-23_09-21-12.png

Doing a slowtrace analysis for the webAdmin protocol on one of Linagora 
deployments:


{code:java}
Transaction type: Web
Transaction name: GET /address/aliases/address/aliases
Start: 2020-06-23 8:03:41.284 am (+07:00)
Duration: 9,639.2 milliseconds
Request http method: GET
Response code: 200
{code}

Listing all mappings, a common operation is slow.

Surprisingly, query executes really fast at the Cassandra levels, and some 
other processing seems to be taking time:

Capture_d_écran_de_2020-06-23_09-21-12.png demonstrate query timings and we can 
see Cassandra query takes less than 200 ms and the time is spent elsewhere.

Looking at the code, collection processing does a lot of immutable copies 
(MappingsImpl::build calls.

Better rewritting the reduce operation would certainly unlock a performance 
improvment.

The glowroot flame graph seems to correlate with this analysis (disclaimer: I 
had a look at it after doing this analysis)




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to