Environment
Situation
A customer has made a complaint that the LDAP client does not release until all of the events have been written to the tao file. This is evidenced by the fact that the problem goes away if they disable all of the drivers. The delay reduces after each driver is disabled. I understand that there are a lot of I/O stuff going on but shouldn't the LDAP client not have to wait for all the tao files to be written to before it completes it's operation?
In the trace the delay is seen up until the last tao file is written too...
(12:45:23 AM): 10:30:52 794 DirXML: DSML EV: Committing 433 bytes to cache 39124.TAO
10:30:52 794 Buff: Reply - (0)
10:30:52 794 ClBuf: Client Reply - Context: 52110009, NDAPAddEntry, Size:0, succeeded
10:30:52 794 NCPCli: request NDAPAddEntry by context 52110009 succeeded
Resolution
The client must wait until the TAO files are written, because the change isn't committed to eDir's database until the transaction is completed, and writing to the .TAO files is part of the transaction processing. Nothing we can do about that without compromising data integrity in the event of a crash.
Windows seems to have the slowest file system performance of any OS we run on; I suspect they will either have to live with the performance, decrease the number of drivers per server, get a faster disk, or switch to Linux.