[ 
https://issues.apache.org/jira/browse/DIRSERVER-1161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12624602#action_12624602
 ] 

Emmanuel Lecharny commented on DIRSERVER-1161:
----------------------------------------------

We have discussed the issue further with Alex this week, and we think that the 
problem should be fixed on ADS, not in MINA.

However, the fix won't be a quick and easy one. Here is what we discussed about 
:
- considering that if the client is slow, we may create as many Message stored 
in memory as we have entries to send back
- and that we don't want to block a thread waiting for a blocking queue, as we 
have a limited number of thread to process LDAP requests
- we have to find a way to be informed when the socket is ready to accept a new 
write, and then pick a thread in an executor to get the next entry to write 
(maybe the next N entries, to avoid some expensive calls to the executor)
- that also mean we must be able to push the cursor we have just created into a 
session container, and free the thread used to create this cursor

We have to think more about the details, now.

> search results are not streamed to the client until final done response is 
> queued
> ---------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-1161
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1161
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0
>         Environment: JDK 1.5.0_11 
>            Reporter: Norval Hope
>            Assignee: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 1.5.4
>
>         Attachments: apacheds_1.5.1_streaming.patch, 
> apacheds_1.5.1_streaming.patch, apacheds_1.5.1_streaming_log_output.txt, 
> installers_1.5.1_streaming.patch, installers_1.5.1_streaming.patch, 
> mina_1.1.2_streaming.patch, mina_1.1_trunk_streaming.patch, pom.xml, 
> streaming_log_output.txt, streaming_logging.patch
>
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> Search results accumulate in Events on the SessionBuffer.eventQueue within 
> ExecutorFilter.fireEvent() until final done response for the search is 
> written to the session and then all results for the search (possibly millions 
> depending on the search and state of the directory) are written out at once. 
> This is a big problem for scalability and I gather from previous 
> correspondence with Alex that this behaviour is unexpected.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to