[OPENAM-5623] CTS uses inefficient search for coreTokenId= Created: 05/Mar/15 Updated: 20/Nov/16 Resolved: 12/Mar/15
|Fix Version/s:||12.0.1, 13.0.0|
|Reporter:||Ian Packer [X] (Inactive)||Assignee:||Peter Major [X] (Inactive)|
|Remaining Estimate:||Not Specified|
|Original Estimate:||Not Specified|
|Sprint:||Sprint 78 - Sustaining|
|Support Ticket IDs:|
The CTS codebase regularly looks up tokens by ID from the directory server
Usually, since the coreTokenID is the RDN of the entry and the base below this is known, this is done as a very efficient search similar to the following:
It seems there may be a few places where tokens are looked up differently, using a search similar to the following:
coreTokenId is not indexed as part of cts-indices.ldif, or mentioned in the documentation for setting up CTS:
So in a system with lots of tokens this search could be a significant performance hit.
The optimal solution is probably not to index this attribute, but to change these searches to use the baseObject search instead.
This might be a new problem in 12.0.0 as I cannot find any examples of this search in 11.
hasSession in CTSOperations.java looks like one possible candidate:
|Comment by Peter Major [X] (Inactive) [ 06/Mar/15 ]|
After discussing this issue with Rob, it appears that this hasSession check is actually now redundant, because update operations are still performing crosstalk (in the early versions it was using CTS for updates as well, but that approach had some problems). The solution will be to simply remove hasSession.
|Comment by Peter Major [X] (Inactive) [ 12/Mar/15 ]|
Fixed with R12984 and R1986