Fabian Groffen wrote:
On 18-11-2006 16:22:48 +0100, Martin Kersten wrote:
Hi Fabian, Johann
I can see the need for an asynchronous call. It works for applications that that don't care about the outcome of a transaction. It also seems relatively easy to implement in the Mapi server side. You have to trap the async query call and handle it in the context of a new server thread that discards the output (>/dev/null). The 'asynquery' can immediately return to the client with an ACK and terminate the session.
The what are the effects of a long running query? I don't see any advantage here. You can just pool between sockets with one "main" thread, and try to read every once in a while by checking if there is data available to be read in the (TCP) buffers. This is, however, with many connections a deadly situation.
Since Johann is working with a webserver, it sounds quite weird not to use threads in the first place to me anyway.
Well, that's a big discussion :) but using an event-driven state machine with single- or few-threaded servers is not really an uncommon thing, and has big advantages, e.g. the avoidance of context-switches. Lighttpd is a prominent example, which performs extremely well compared to, say, Apache. For really big amounts of concurrent connections the one-thread (or even one-process)-per-connection model really is a problem. Using epoll (or the new kevent) one can deal with thousands of simultaneous connections without problems, especially without having to waste lots of memory (one object/struct vs one thread) and cpu-time (context-switches + dealing with locking issues). When I have some time, I'll very likely give it a try in case of the MapiClient. Changing the io-model should not affect transactions, the asynchronous version will of course have to follow the same protocol that the synchronous version does. I just thought maybe monetdb supports this already, because in the TCP/IP module there are asynchronous methods. Anyway, thanks for this great product and regards, Johann
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Monetdb-developers mailing list Monetdb-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/monetdb-developers