When used opendj as embedded repo for IDM, Gatling Read request(GET) would timeout with dispatch rate 100 users/second over 300 second duration, while with JDBC repo, the read requests are fine with at least 300 users/second over 900 seconds period. IDM log has the following warning:
WARNING: The server is performing an unindexed internal search request with base DN 'ou=relationships,dc=openidm,dc=forgerock,dc=com', scope 'one', and filter '(|(&(fullobject=/firstId eq "managed/user/G-D-3073")(fullobject=/firstPropertyName eq "roles"))(&(fullobject=/secondId eq "managed/user/G-D-3073")(fullobject=/secondPropertyName eq "roles")))'. Unindexed internal searches are usually unexpected and could impact performance. Please verify that that backend's indexes are configured correctly for these search parameters
The complete logs are attached.
Note that The Read requests are fine with dispatch rate 20 users/second.
To reproduce using Pyforge:
1. change config/config.cfg to have correct IDM verion, and num_users as 100 in the Stress section.
2. Run command:
python -u run-pybot.py -c stress -i gatling -s idm.CrudManUsers -t IDM_Managed_User_Create_Put -t IDM_Managed_User_Read OpenIDM
3. Observe, the create PUT requests are fine but read requests timeout.