
|
If you were logged in you would be able to see more operations.
|
|
|
| Resolution Date: |
19/Aug/08 08:33 PM
|
|
We need to clean up the number of nested (wrappings of) SearchResultFilteringEnumerations. It's best if we relocate the code that wraps Partition specific Enumerations with this into the Nexus. There we can add Filters to a single SearchResultFilteringEnumeration. Right now a few interceptors wrap 3 layers of SearchResultFilteringEnumerations. Here are the offending interceptors:
(1) DefaultAuthorizationService
(2) SubentryService
(3) CollectiveAttributeService
Creating a new SearchResultFilteringEnumeration everytime costs us about 2% total of processing time in search operations. We could save a total of 4% and improve the code.
Regarding addFilter usage
------------------------------------------
Note that some interceptors, these 3, need to add filters at searh construction time rather than at interceptor service init time. These services can use the addFilter() interface of the SearchResultFilteringEnumeration but this interface must make sure the first prefetched entry is evaluated otherwise the first entry will be returned even if your filter rejects it.
|
|
Description
|
We need to clean up the number of nested (wrappings of) SearchResultFilteringEnumerations. It's best if we relocate the code that wraps Partition specific Enumerations with this into the Nexus. There we can add Filters to a single SearchResultFilteringEnumeration. Right now a few interceptors wrap 3 layers of SearchResultFilteringEnumerations. Here are the offending interceptors:
(1) DefaultAuthorizationService
(2) SubentryService
(3) CollectiveAttributeService
Creating a new SearchResultFilteringEnumeration everytime costs us about 2% total of processing time in search operations. We could save a total of 4% and improve the code.
Regarding addFilter usage
------------------------------------------
Note that some interceptors, these 3, need to add filters at searh construction time rather than at interceptor service init time. These services can use the addFilter() interface of the SearchResultFilteringEnumeration but this interface must make sure the first prefetched entry is evaluated otherwise the first entry will be returned even if your filter rejects it. |
Show » |
|