Hi all, I've been testing the search performance boost gained from indexing attributes before starting development on an optimization to improve index performance and in memory size. I thought I'd share these dramatic results of my pre-optimization tests with you since they clearly show the benefits of indices.
Before I do this let me list the characteristics of the hardware used and my configuration settings: ------------- Machine Setup ------------- CPU: Dual Athlon MP 1900 OS: Linux 2.6.15 Mem: 2GB 266Mhz -------------- ApacheDS Setup -------------- ApacheDS: Stock RC4 (to be released pre-image) w/ modifications - Using 1024MB Memory - Indexed st and initials ---------- Data Setup ---------- Wrote a simple tool to generate random values for descent sized entries. The data sort of looks like this for a user entry: dn: uid=user.1,ou=users,dc=example,dc=com uid: user.1 initials: yq description: cFocJATNuhlXisDCqGtY pager: FYyimqyZRW cn: HSGMzajYKmicUTe postalcode: WiXXA st: xy street: kpCCqmrsCzkpdtHXWMfY l: KqmAXFYTrI objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson sn: nuymgOwpm homephone: PERamkCtsv mobile: vkIviOGNTC telephonenumber: 7248889026 mail: pYvEoOjSnEymcWD givenname: IVHJZB postaladdress: crObexKoUTIFdzNHcZMr employeenumber: 1 userpassword:: cGFzc3dvcmQ= I started loading a partition up with these entries 100,000 of them at a time then performing the following searches for all entries with initials aa: (1) index on initials but no cached entries (2) index on initials with cached entries (3) no index without cached entries Here are the results at the various capacities: --------------- 100,000 Entries --------------- [cached] [indexed] [time (seconds)] (1) no yes 3.30 (2) yes yes 0.72 (3) no no 30.63 search results = 153 entries --------------- 200,000 Entries --------------- [cached] [indexed] [time (seconds)] (1) no yes 6.04 (2) yes yes 1.44 (3) no no 82 search results = 302 entries --------------- 300,000 Entries --------------- [cached] [indexed] [time (seconds)] (1) no yes 7.54 (2) yes yes 1.95 (3) no no 146 search results = 451 entries --------------- 400,000 Entries --------------- [cached] [indexed] [time (seconds)] (1) no yes 9.24 (2) yes yes 3.80 (3) no no 196 search results = 586 entries --------------- 500,000 Entries --------------- [cached] [indexed] [time (seconds)] (1) no yes 11.96 (2) yes yes 3.21 (3) no no 224 search results = 748 entries Alex