Re: gnome-db [offtopic]

If you are creating a "high performance web environment", you
DO NOT use cgi.  It just doesn't scale, not even a little bit.

Especially if that cgi program is doing 'slow' things like connecting
to databases with every hit.  You really need to pool (i.e. cache)
database connections and things like that.  e.g. on an sun enterprise
5000 (configured with 4x300Mhz UltraSPARC cpu's, 2G ram, and tons of
fast disk), with oracle 7.3.4 you're looking at about a fixed 20ms per
(re)connection to the database - and this was a program which was
already running!  An initial connection is even slower.  So even just
that (say assuming your code did nothing, and ran as a module which
connected every time) limits your maximum ops/sec to 50 (ok, of course
you get more due to parallelism, especially on that sort of hardware).
Start loading code off disk, and throw in a few system calls, and
maximum ops/sec drops off very rapidly.

The easiest way to handle this is probably to use a multi-tier
architecture - e.g. use an apache module to talk via 'middleware' to
servers which are persistant (and which can thus maintain certain
state if they wish).

Multi-tier architecture makes things like security, and especially
scalability (e.g. distributed processing) much easier to implement
too.  Things like 'fastcgi' are basically an example of this kind of
technology as well.

CGI serves a purpose, but not in building "high performance web

Just my 5c :)


> Well, I am creating a high preformance web environment called BLADE. Since
> the web is stateless, a cgi has to load the libs it depends on with every
> hit. While it is a small hit, when you are getting a fiew hits a second,
> it adds up. In my case, the fiewer libs the better. I am not calling
> libgnome slow (on the contrary, it is quite fast).
> On Fri, 3 Dec 1999, Miguel de Icaza wrote:
> > 
> > > Also, the requirement of the gnome library would be another
> > > preformance hit.
> > 
> > How are those libraries a performance hit?

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]