Page 1 of 1

Multi threaded searching

Posted: Fri Aug 07, 2009 11:29 am
by ConvertFromOldNGs
by Scott Whitfield >> Tue, 9 Sep 2003 23:41:52 GMT

Hi all

Does anyone have any useful frameworks they have implemented around multi threaded searching?
I'm looking specifically at returning results to the user while still continuing the search.

Any thoughts would be appreciated.

Re: Multi threaded searching

Posted: Fri Aug 07, 2009 11:29 am
by ConvertFromOldNGs
by Allistar Melville >> Wed, 10 Sep 2003 2:22:30 GMT

Hi Scott,
I don;t have any framework available for this but it is not too difficult to implement. When you start the search you want to start it in another process (by calling startAppMethod). By using a shared transient object and a notification you will be able to communicate with the GUI process about the progress of the searching process.

You could go one step further and make the search process run on the server node (for increased performance). There is an overhead in spawning new threads, so you could have a pool of threads always running on the server and you could then get the next free one to performa search for the user.

Note that under Jade 6 there will be a licensing issue (as the spawned worker thread will use up a user license). In Jade 5.2 licensing is node based, and since the spawned thread is on the same node as the main GUI thread you won't use up any additional licenses.

Hope this helps,
Allistar.

------------------------------------------------------------------
Allistar Melville
Software Developer, Analyst allistar@silvermoon.co.nz
Auckland, NEW ZEALAND

Silvermoon Software
Specialising in JADE development and consulting
Visit us at: http://www.silvermoon.co.nz
*NEW* Simple web access to Jade at: www.silvermoon.co.nz/jhp.html ------------------------------------------------------------------

Re: Multi threaded searching

Posted: Fri Aug 07, 2009 11:29 am
by ConvertFromOldNGs
by Scott >> Fri, 12 Sep 2003 4:19:48 GMT

Thanks Allistar,

I've already implemented something similar to what you describe, although have not yet written any thread pooling logic.
The real trick seems to be dividing up the work in an effective fashion to maximise the additional threads.