You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(27) |
Jun
(8) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: Alexander M. <al...@gm...> - 2003-06-24 22:36:46
|
Hello, attached is a proposal written by Matthew which explains a more detailed description for the individual phases in processing a request. Further he is currently working on multipart requests. What we will then still need to get out the first release is a working CGI and directory index module. Some code for those was already written and is available via the CVS. Please have a look at the document and share your thoughts. Furthermore there would be the open position for reviewing respectively rewritting the CGI and dirindex module. Please let me know if you are interested in this task. Thanks, Alexander |
From: Matthew C. <mpc...@li...> - 2003-06-22 23:24:27
|
The importantant method is called sendMultipartStream This takes the inputstream, the outputstream and a vector of ranges (start / end values) |
From: Alexander M. <al...@gm...> - 2003-06-12 12:10:31
|
Hello, I have to admit I am slowly getting frustrated about the progress of the project. It is almost 2 months ago that the project was first checked in and since then there was almost no participation by the team members. There are currently 11 people on the developer mailinglist but the overall participation is rather non-existent. Some people told me they were busy because of their work or school and I understand that such things have priority and that one cannot fully participate in the project development during such a time. However I do not understand the complete silence here on the list. I asked two times for a review and comments about the module code but the only reply I got was from Matthew. If some of you do not have the time anymore to participate or simply do not want anymore then this isnt a problem but just let me know. Otherwise please feel invited to join the discussion. Thanks for your time and listening to my rant :), Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage! |
From: Alexander M. <al...@gm...> - 2003-06-02 09:53:19
|
> I was looking at the code for the insomnia23 project instead of the > insomnia-httpd project. Why are there two names for the same project? > > - Farhan. Because we renamed the project. Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage! |
From: Farhan A. <ah...@cs...> - 2003-06-01 23:53:57
|
I was looking at the code for the insomnia23 project instead of the insomnia-httpd project. Why are there two names for the same project? - Farhan. On Sun, 2003-06-01 at 10:27, Alexander Mueller wrote: > Are you sure you are using the latest version? What error message do you > get? There are no difficulities to compile to the current version of the CVS > code. Also adding the module prototype code shouldnt cause any troubles. > > Alexander |
From: Alexander M. <al...@gm...> - 2003-06-01 15:27:36
|
> Hi, > > I was looking through the source code for the project and I realized > that it would be much easier to follow the current development if I > could get hold of some kind of a project map that explains the various > branches of the threads. Some kind of abstract that deals with the > different aspects of the project and how we plan to implement it in > actual code. Please let me know if I could get that from somewhere, or > maybe someone can explain it roughly to me. Currently there is rather not much documentation. However most of the basic ideas should be explained by just going through the code. If you have any specific questions this is the right place to ask :). > > Regards, > > Farhan > > PS: Is there a working model for the project? The files in the CVS tree > do not seem to compile. Are you sure you are using the latest version? What error message do you get? There are no difficulities to compile to the current version of the CVS code. Also adding the module prototype code shouldnt cause any troubles. Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage! |
From: Matthew C. <mpc...@li...> - 2003-06-01 09:22:14
|
The files in HEAD that don't compile aren't needed to run Insomnia. > PS: Is there a working model for the project? The files in the CVS tree > do not seem to compile. > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: eBay > Get office equipment for less on eBay! > http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 > _______________________________________________ > insomnia-httpd-devel mailing list > ins...@li... > https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel > |
From: Farhan A. <ah...@cs...> - 2003-05-31 18:56:05
|
Hi, I was looking through the source code for the project and I realized that it would be much easier to follow the current development if I could get hold of some kind of a project map that explains the various branches of the threads. Some kind of abstract that deals with the different aspects of the project and how we plan to implement it in actual code. Please let me know if I could get that from somewhere, or maybe someone can explain it roughly to me. Regards, Farhan PS: Is there a working model for the project? The files in the CVS tree do not seem to compile. |
From: Alexander M. <al...@gm...> - 2003-05-25 10:08:34
|
Hello, I want to release the first alpha version of insomnia soon, but in order to make this happen we need to agree on the most basic things. Matthew is currently working on the code handling "partial requests". Once this is done it can be integrated into the module system. This leads me to the next issue. I would like everyone to comment and share your thoughts about the current implementation of the module system. Matthew mentioned in a previous email multiple phases in the request process for which each module can register a handler. Would you have any suggestions what these phases could be? The module system is not available via the CVS yet, but you can download the affected files at http://insomnia-httpd.sourceforge.net/insomnia.zip Just copy them over the latest CVS code. Once we have decided upon a module implementation and integrated the "partial request" code we have the base for a basic webserver and can start with testing and then release a public alpha version. Alexander |
From: Matthew C. <mpc...@li...> - 2003-05-23 15:51:22
|
It's not as bad as all that. Each connection is encapsulated into a "nio.Channel" object. You can attempt to write the entire response as we do now write() doesn't block in non-blocking mode so that isn't a problem (though if the write failes to write the whole content in one go you would need to remember how far the write got). However if your worried about one client with a large bandwidth connection hogging all your cpu time this may be possible that's why I expect most NIO solution still employ multiple threads just not in the order of magnitude you need in a high load apache system (one per client) Matt. > > You mean if there isnt any data to send we just iterate through the > loop again and check in the next round whether there is data waiting? > This would work, however it seems it would be rather difficult to > understand such a code as it would need many lists to keep track of > active connections with their associations to running applications. We > would need to split every outgoing data (regular files and CGI data) > into small pieces which would need to be transferred individually in > order to prevent that blocking. > > Does anyone have comments to that? > > Alexander > > |
From: Matthew C. <mpc...@li...> - 2003-05-23 15:26:39
|
These issues are all true. I don't propose jumping to a NIO solution. Just something worth keeping in mind as a potential performance improvement at a later date. Mike Li wrote: > > NIO is easier to work on for simple application, but is more complicated > for large application, which is also a reason that most of HTTP servers, > like Apache, still uses multi-thread context switching model. In a > complicated server, like HTTP server, multi-thread is always necessary. > However, NIO can be used to minimize the number of threads and to reduce > the overhead of thread context switching. The use of threads in NIO > server may be in a different way, for example, thread may be designed to > based on per task, not per request. Another benefit from using NIO is > that the context swiching can be done at application level, not TCP/IP > stack level. In application level, you can always have more control to > reduct the overhead of thread context switching. It sounds great so far, > but how to design a thread model to fit all you need is harder. If you > have any idea about NIO and multi-thread, please post here. > > > Mike. > >>> If an external applications hold the connection open the non-blocking IO >>> library will return immediately with 0 bytes on a read() therefore >>> the single >>> thread is free to continue processing other requests. >>> >> >> >> >> You mean if there isnt any data to send we just iterate through the >> loop again and check in the next round whether there is data waiting? >> This would work, however it seems it would be rather difficult to >> understand such a code as it would need many lists to keep track of >> active connections with their associations to running applications. We >> would need to split every outgoing data (regular files and CGI data) >> into small pieces which would need to be transferred individually in >> order to prevent that blocking. >> >> Does anyone have comments to that? >> >> Alexander >> >> >> >> ------------------------------------------------------- >> This SF.net email is sponsored by: ObjectStore. >> If flattening out C++ or Java code to make your application fit in a >> relational database is painful, don't do it! Check out ObjectStore. >> Now part of Progress Software. http://www.objectstore.net/sourceforge >> _______________________________________________ >> insomnia-httpd-devel mailing list >> ins...@li... >> https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel >> . >> >> >> > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: ObjectStore. > If flattening out C++ or Java code to make your application fit in a > relational database is painful, don't do it! Check out ObjectStore. > Now part of Progress Software. http://www.objectstore.net/sourceforge > _______________________________________________ > insomnia-httpd-devel mailing list > ins...@li... > https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel > |
From: Mike Li <mik...@ya...> - 2003-05-22 23:35:54
|
NIO is easier to work on for simple application, but is more complicated for large application, which is also a reason that most of HTTP servers, like Apache, still uses multi-thread context switching model. In a complicated server, like HTTP server, multi-thread is always necessary. However, NIO can be used to minimize the number of threads and to reduce the overhead of thread context switching. The use of threads in NIO server may be in a different way, for example, thread may be designed to based on per task, not per request. Another benefit from using NIO is that the context swiching can be done at application level, not TCP/IP stack level. In application level, you can always have more control to reduct the overhead of thread context switching. It sounds great so far, but how to design a thread model to fit all you need is harder. If you have any idea about NIO and multi-thread, please post here. Mike. >>If an external applications hold the connection open the non-blocking IO >>library will return immediately with 0 bytes on a read() therefore the single >>thread is free to continue processing other requests. >> >> > > >You mean if there isnt any data to send we just iterate through the >loop again and check in the next round whether there is data waiting? >This would work, however it seems it would be rather difficult to >understand such a code as it would need many lists to keep track of >active connections with their associations to running applications. We >would need to split every outgoing data (regular files and CGI data) >into small pieces which would need to be transferred individually in >order to prevent that blocking. > >Does anyone have comments to that? > >Alexander > > > >------------------------------------------------------- >This SF.net email is sponsored by: ObjectStore. >If flattening out C++ or Java code to make your application fit in a >relational database is painful, don't do it! Check out ObjectStore. >Now part of Progress Software. http://www.objectstore.net/sourceforge >_______________________________________________ >insomnia-httpd-devel mailing list >ins...@li... >https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel >. > > > |
From: Roman M. <rom...@re...> - 2003-05-22 19:49:26
|
> Does anyone have comments to that? yes i have ... you guys rock :-) great work you are doing there - hope i can participate more soon! keep the good work going roman |
From: Alexander M. <al...@gm...> - 2003-05-22 18:18:52
|
> If an external applications hold the connection open the non-blocking IO > library will return immediately with 0 bytes on a read() therefore the single > thread is free to continue processing other requests. You mean if there isnt any data to send we just iterate through the loop again and check in the next round whether there is data waiting? This would work, however it seems it would be rather difficult to understand such a code as it would need many lists to keep track of active connections with their associations to running applications. We would need to split every outgoing data (regular files and CGI data) into small pieces which would need to be transferred individually in order to prevent that blocking. Does anyone have comments to that? Alexander |
From: <mpc...@li...> - 2003-05-22 18:07:13
|
Example non-blocking server is available here: http://developer.java.sun.com/developer/technicalArticles/releases/nio/ |
From: <mpc...@li...> - 2003-05-22 17:17:00
|
If an external applications hold the connection open the non-blocking IO library will return immediately with 0 bytes on a read() therefore the si= ngle thread is free to continue processing other requests. >-- Original Message -- >From: Alexander Mueller <al...@gm...> >To: ins...@li... >Subject: Re: [insomnia-httpd-devel] Performance >Reply-To: ins...@li... >Date: Thu, 22 May 2003 17:37:46 +0200 (MEST) > > >> I've been looking at insomnia today as I was working a bit on the rang= e > responses. > > Has anyone considered the Java 1.4 NIO library? Under heavy load a > single threaded multiplexing Non-Blocking Server should perform > significantly fas >er than one that is context switching between Threads > like Apache. > > Also the memory overhead and thread startup costs could be massively > reduced. > > Matt. Hello Matthew, I did not work with NIO yet, so I cannot say much about it > However I wonder how a single threaded non-blocking version should work as we would need to cycle constantly through all open connections to see whether there is any= data and after receiving a full (and cached) request we would need to generate= th > output. However what would we do with external applications holding the= connection open? Did I missunderstand anything? Thanks, Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte l=E4cheln! Fotogalerie online mit GMX >hne eigene Homepage! ------------------------------------------------------- This SF.net email is sponsored by: ObjectStore. If flattening out C++ or Java code to make your application fit in a relational database is painful, don't do it! Che >k out ObjectStore. Now part of Progress Software. http://www.objectstore.net/sourceforge _______________________________________________ insomnia-httpd-devel mailing list ins...@li... https://lists.sourceforge.net/lis >s/listinfo/insomnia-httpd-devel |
From: Alexander M. <al...@gm...> - 2003-05-22 15:37:57
|
> I've been looking at insomnia today as I was working a bit on the range > responses. > > Has anyone considered the Java 1.4 NIO library? Under heavy load a > single threaded multiplexing Non-Blocking Server should perform > significantly faster than one that is context switching between Threads > like Apache. > > Also the memory overhead and thread startup costs could be massively > reduced. > > Matt. Hello Matthew, I did not work with NIO yet, so I cannot say much about it. However I wonder how a single threaded non-blocking version should work as we would need to cycle constantly through all open connections to see whether there is any data and after receiving a full (and cached) request we would need to generate the output. However what would we do with external applications holding the connection open? Did I missunderstand anything? Thanks, Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage! |
From: Matthew C. <mpc...@li...> - 2003-05-22 12:32:31
|
I've been looking at insomnia today as I was working a bit on the range responses. Has anyone considered the Java 1.4 NIO library? Under heavy load a single threaded multiplexing Non-Blocking Server should perform significantly faster than one that is context switching between Threads like Apache. Also the memory overhead and thread startup costs could be massively reduced. Matt. |
From: Alexander M. <al...@gm...> - 2003-05-14 23:36:12
|
> Not got much time to look now but maybe multiple passes over the modules > might be a good solution. modules needing to cause an internal redirect > could modify the url during an earlier phase. > say the "Request Manipulation" phase. (Modules could register an interest > in what phases they are interested in) > If the modules needing to do redirects could register interest in being > called during the request manipulation phase then no performance hit would > be taken for modules not needing to do internal redirects. > The advantage with this phase approach where you don't do everything in > one handle method - is that you wouldn't need to re-iterate the modules > if the last module needs to do a redirect because the real handling get's > done a later phase. > Later, > Matt. First of all, there is a new package of the prototype code at http://insomnia-httpd.sourceforge.net/insomnia.zip as I forgot to add the two module files :(. Thanks for notifying me Dana. Concerning this issue, having multiple phases sounds like a good idea, we just would need to define how many phases we need to have and in which point in the request process they should hook into. This might even solve the problem I mentioned earlier about the order upon we call the individual handlers (eg: GZIP has to run as absolute last one - unless there is some post-zip handler). Alexander |
From: <mpc...@li...> - 2003-05-14 16:49:35
|
Not got much time to look now but maybe multiple passes over the modules might be a good solution. modules needing to cause an internal redirect could modify the url during an earlier phase. say the "Request Manipulation" phase. (Modules could register an interest= in what phases they are interested in) If the modules needing to do redirects could register interest in being called during the request manipulation phase then no performance hit woul= d be taken for modules not needing to do internal redirects. The advantage with this phase approach where you don't do everything in one handle method - is that you wouldn't need to re-iterate the modules if the last module needs to do a redirect because the real handling get's= done a later phase. Later, Matt. >-- Original Message -- >From: Alexander Mueller <alexm> >To: ins...@li... >Subject: [insomnia-httpd-devel] Internal Redirects >Reply-To: ins...@li... >Date: Wed, 14 May 2003 18:03:42 +0200 (MEST) > >The current way of handling internal redirects is done by throwing a >RedirectedException, which reinitialises the handler enumeration again and >iterates >through all once more. I do not think this is the ideal way of doing it,= >so >does anyone have suggestion about improving it? > >This applies to the prototype code at >http://insomnia-httpd.sourceforge.net/insomnia.zip. > >Thanks, >Alexander > >-- >+++ GMX - Mail, Messaging & more http://www.gmx.net +++ >Bitte l=E4cheln! Fotogalerie online mit GMX ohne eigene Homepage! > > > >------------------------------------------------------- >Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara >The only event dedicated to issues related to Linux enterprise solutions= >www.enterpriselinuxforum.com > >_______________________________________________ >insomnia-httpd-devel mailing list >ins...@li... >https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel |
From: Alexander M. <al...@gm...> - 2003-05-14 16:03:53
|
The current way of handling internal redirects is done by throwing a RedirectedException, which reinitialises the handler enumeration again and iterates through all once more. I do not think this is the ideal way of doing it, so does anyone have suggestion about improving it? This applies to the prototype code at http://insomnia-httpd.sourceforge.net/insomnia.zip. Thanks, Alexander -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ Bitte lächeln! Fotogalerie online mit GMX ohne eigene Homepage! |
From: Alexander M. <al...@gm...> - 2003-05-11 22:09:40
|
Hi, I uploaded at http://insomnia-httpd.sourceforge.net/insomnia.zip a first prototype version of the new module system. The ZIP file only contains the modified files, so just copy them over the current CVS version. The reason not to check them in but distribute them by this way is, that it really is just a prototype and I am sure there are still quite some things to do. Please comment :). Alexander |
From: Matthew C. <mpc...@li...> - 2003-05-11 14:46:50
|
I'll have a go at implementing partial file requests, unless anyone else wants to. Do you use an instant messenging client? You can contact me on any of the following: ICQ - 86329688 Yahoo - mpcooke3 Msn - mpc...@ho... Regards, Matt. Alexander Mueller wrote: > Hi, > > I am currently working on a module system prototype, which shall allow > us to include external code libraries to extend the featureset of > insomnia. In the meantime I would like to assign a certain task which > we will need for the first release. > > The current way of serving partial file requests is not really ideal. > We only support a single partial request and even this code is rather > messy. Multiple requests are not support at all. If you have time for > this please let me know. > > Thanks, > Alexander > > > > ------------------------------------------------------- > Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara > The only event dedicated to issues related to Linux enterprise solutions > www.enterpriselinuxforum.com > > _______________________________________________ > insomnia-httpd-devel mailing list > ins...@li... > https://lists.sourceforge.net/lists/listinfo/insomnia-httpd-devel > |
From: Alexander M. <al...@gm...> - 2003-05-11 14:29:11
|
Hi, I am currently working on a module system prototype, which shall allow us to include external code libraries to extend the featureset of insomnia. In the meantime I would like to assign a certain task which we will need for the first release. The current way of serving partial file requests is not really ideal. We only support a single partial request and even this code is rather messy. Multiple requests are not support at all. If you have time for this please let me know. Thanks, Alexander |
From: Roman M. <m....@ut...> - 2003-05-11 10:33:14
|
very, very well done documentation. i love it. especially the javadocs thing. really great. i really love to see the project progress going on very well, i am sorry to be almost completely idle the last days, but I've got a big project in work which keeps me at 100% currently. As soon as this is finished (after next week), I'll=20 be right back with suggestions. Thanks for keeping insomnia up, and being hell creative -- i love it roman |