-------- Original Message -------- Subject: OpenCA server for performance Date: Thu, 02 Oct 2003 10:04:04 +0200 From: Michael Bell <[EMAIL PROTECTED]> To: openca-dev <[EMAIL PROTECTED]>
Hi all,
be warned this is a really long mail :)
I started to think about some radical ideas to solve our performance problems. All actual ideas do the same - we try to optimize the initialization. The simple question is why does the initialization time be a problem for a server if it starts it's normal operation after a while? Really simple because OpenCA is no server! So what about a real OpenCA server?
The idea is a module OpenCA::IPC. We can derive this module from OpenCA::XML::Cache which already includes a fast server. This module would have the following functions:
- getRequest (); - setRequest ("..."); - getAnswer (); returns undef on end of message - setAnswer ("..."); used to send partial results (replacement for print) - flushAnswer(); send empty or only partially filled message to signal end of answer (replacement for exit and die) - new (TYPE => (SERVER|CLIENT), SERVICE => "a name to create the unix socket", TMP_DIRECTORY => "openca/tmp"); - kill (SERVICE => "a name to find the unix socket and pid", TMP_DIRECTORY => "openca/tmp");
The clients are normal CGI-scripts which always call the server and send them the cookie ID plus all the data from POST or GET via Perl's CGI module. The server sends back a string which will be directly printed.
The string will be created on the server if all print statements to STDOUT will be changed to '$main::global_stdout .= "...";'. The question is now what to do. We have an official feature freeze for 0.9.2 but we have a problem with the performance. There are four major changes:
1. OpenCA::IPC - derived from OpenCA::XML::Cache 2. some changes in initCGI because it will only called from the server mainly an additional while loop for the server 3. initClient which creates the request (really small) 4. change the print statements in all libs and cmds
The question is what is more important - a fast release or an acceptable performance? Perhaps we should ask the users (openca-users)?
A notice for all people who are not directly coding for OpenCA - the change is really radical in terms of the philosophy and an investment in the future because after the change OpenCA is a real server by itself not only by Apache! The question is now; is it better to build first a stable release 0.9.2 or come closer do a final design.
Perhaps I should send this to openca-core first but I think it is a good idea to discuss this completely in the public.
So finally, please send comments - especially those guys who use or want to use the software for large installations and mission critical systems.
Michael -- ------------------------------------------------------------------- Michael Bell Email: [EMAIL PROTECTED] ZE Computer- und Medienservice Tel.: +49 (0)30-2093 2482 (Computing Centre) Fax: +49 (0)30-2093 2704 Humboldt-University of Berlin Unter den Linden 6 10099 Berlin Email (private): [EMAIL PROTECTED] Germany http://www.openca.org
-- ------------------------------------------------------------------- Michael Bell Email: [EMAIL PROTECTED] ZE Computer- und Medienservice Tel.: +49 (0)30-2093 2482 (Computing Centre) Fax: +49 (0)30-2093 2704 Humboldt-University of Berlin Unter den Linden 6 10099 Berlin Email (private): [EMAIL PROTECTED] Germany http://www.openca.org
------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ OpenCA-Devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/openca-devel