I am currently servicing about 50k records on a RH 7.1 dual P400/scsi raid box (it's an HP LPr) with 2.0.11, generic compile, and optimal indexing. I allow for a generous DB cache (192mb). Things seem to work well, top indicates slapd is using 140mb of ram and ~3% cpu utilization. I'm pulling around 25 reads/sec throughout the day; there's no slowdown or hesitation. This week, I'm doing a bit of writing to change some user records. (~1 per second). I'm finding some minor index corruption (about 1% of the records changed) after doing the writes.
I suspect I'm running into issues where the DB is locked for "reads" and is unable to be locked to complete "writes". My plan of action is to run a slave replication server which will service all "reads", hopefully freeing up the master so that "writes" are correctly implemented.
Does this theory & plan seem correct? Any pitfalls? Recommendations? Anyone else running 2.0.11 in a harsh environment? (Is my environment really harsh, or are other running openldap much harder?) Also, is there a "write" cache available/configurable to cache writes until they can be correctly stored?