I'm working on the search limits handling code now. I'm looking into the interaction between persistent search and these limiting parameters for size and time. I've made some judgment calls that are common sense based but I wanted to inform the list in case they may not be the correct decisions. Here's the current behavior I am coding in the SearchHandler.
non-persistent component :
The portion of search request processing that returns entries before
the listening for changes begins when the persistent search control
is present and it's changes only parameter is set to false.
persistent component :
The portion of search request processing that returns changes when the
persistent search control is present.
(1) A normal search request has search limits on time and size enforced.
(2) A persistent search request has search limits on time and size enforced on the non-persistent component of the request. The time and size limits do *NOT* apply to the persistent component of the request.
The reasoning behind this is simple. Search time and size limits were created in part to protect the server and in part the client from excessive processing and return results. The processing intensive component is the actual non-persistent part of the persistent search if changesOnly is false. The persistent component of the search is intended never to end so why restrict it by time or even size limits.
Microsoft gives you Windows, Linux gives you the whole house ...