Hi guys, as I'm up early, I was thinking about the search issue again.
AFAICT, the only possible option we have here is to grab everything from the server when doing a search, before sending back anything to the client. FTR, a while back (2008 ?), we were doing that but it was an accident : as we were not waiting for the client to be ready, we were injecting into MINA all the read entries. It ended with frequent OOM when the search request was big.
We changed that so the results are only returned when the client is ready to read more data.
But back to my initial thoughts : if we were relying on a MVCC capable backend (MVCC BTree), then we won't have to gather all the entries, we can rely on the backend to return the entries one by one, assuming the backend keeps each valid version on disk.
Of course, teh problem is that we have many backends to deal with, so the current implementation still holds.
In the ong run, I wonder if using in-memory MVCC Btree for Ldif partitions and rely on a MVCC JDBM ould not be a viable solution...
thoughts ? -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com
