I was experimenting with slapd by adding a lot of entries then deleting them. What I found
is adding speed is not bad but deletion speed is lacking. With or without dbsync, delete
speed is around half of that of adding. Naively, I thought deleting should be easier than
adding, because in adding you actually need to pass and write whole entry of data, while
in delete you can just mark the database page as free? The DB file did not shrink after
massive deletion; which kind of suggest that deleting is only marking page as free, not
really return them to the OS. I am using the latest git tree and the mdb backend.
Another related idea is delete a whole branch from the DIT. LDAP is already hierarchical,
to delete all entries under a branch, one would assume that there must be an better way
than deleting entries with a client side script, like what I am doing? With SQL you can
drop a table. With LDAP, can I delete a whole branch?