In GKE ds-shared-repo there is a large throughput difference between the tests read-with-no-link-expansion and query-with-no-link-expansion:
The results in the attachment show:
These results should be similar. The data is the same. Only difference being that:
Grabbing the logs for each IDM request using transaction id from DJ access logs. Output in attachment.
This shows that for read there are 45 ldap operations and for query 4 ldap operations. Each ldap operation seems quick, but this *11 difference for read adds up both in response time on DS backend but also in the cost of processing on IDM side.
This shows that there is significant fan-out of operations for the read with no-link-expansion.
To reproduce it using PyRock:
and Check the PyRock report:
As a side note investigation of the same test with IDM using DS as an External Repo for read yields much better results: read-user-with-no-link-expansion has throughput 1259 vs. query-user-fileter-with-no-link-expansion with 1453.
Or from another aspect: No big throughput difference between read-user-no-link-expansion(136 from a different test) and read-user-with-all-link-expansion(135) in GKE. But we see big difference between the two tests: 1278 for read user with no link expansion and 85 for read user with all link expansion in ds as external repo
Running the read test on same object without the relationships, roles, manager also gives over 2.5K reads/sec on tps.