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



-------------------------------------------------------
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

Reply via email to