Le 04/02/15 12:53, John Peter a écrit : > Hi, > > I'm using apacheds 2.0.0 M_19 > > ApacheDS has 11 group entries and some of them have 26 000 member > attributes. > > I'm using a qucik search via apache directory studio: > (&(member=uid=john,uid=1.2.246.1.1.1111.10.0,ou=users,dc=test,dc=fi)(objectClass=groupOfNames)) > Using a stopwatch I can see a 5 second delay before the result is visible. > > Some other queries perform instantaneously. > Below is a snipet from the apacheDS log. It shows the search operation took > only 7070312ns or 7ms. After that apacheDS does something and the next log > entry is 5 seconds later. > > Any idea's what is happening?
First of all, is the 'member' attribute indexed ? If not, please do so, restart your server, and restart. Regarding the way ApacheDS works : o the search request will use the index which has the lowest number of candidates. In this case, I suppose it's the ObjctClass index that matches (it should match 5 candidates). That is obviously fast. o then, it has to check every of those 5 candidates to see if it macthes the full filter, where teh 'member' attribute is given. This is where it takes time, as we use a sub-index to store such attribute when there are more than a number of elements (and with 26 000 'member' value, you bet this is the case). If the 'member' attribute is not indexed, we will do a full scan of this sub-index, which will take a lot of time, thus the 5 seconds you get. I can assume that indexing 'member' would speed-up the test. If it's not the case, then there is a bug we need to get fixed (and this should not be a huge thing to do) Can you try the indexing approach, and if it does not make the server retrieving the results fast enough, then fill a JIRA ? Many thanks !
