Re: Motley Fool: More Problems at eBay

Ben Black (black@layer8.net)
Thu, 1 Jul 1999 11:28:01 -0700


On Thu, Jul 01, 1999 at 11:46:46AM -0400, Robert S. Thau wrote:
> Gavin Thomas Nicol writes:
> > > Oh, dear.... are they actually using CGI? They must mean mod_perl or
> > > something, right? Please tell me I'm right...
> >
> > On big iron sparc machines, CGI is sometimes the fastest
> > and most reliable way of doing things.
>
> Ebay doesn't do web service on their big iron Sparc machine... as
> noted in the text you trimmed, they have a separate pool of smaller
> servers for that. (They're NT boxes running IIS, and as Kragen sussed
> out, apparently using ISAPI for their custom code, which is the IIS
> native plug-in API --- vaguely like mod_perl, except using languages
> other than perl).
>

They are indeed on NT and the NT machines are what keep failing, despite
the rather heinous FUD being spread around by EBay and M$ that the U10ks
have problems.

> Still, I'm curious; yours is the first suggestion I've seen in a while
> that straight CGI is a particularly fast way of running a heavily
> database-backed site like ebay, on any hardware. Could you elaborate?
> I'm particularly interested in how you handle connections to the
> database in this kind of environment; persistent database connections
> are usually reckoned to be a real advantage of mod_perl-type solutions
> (or, say, FastCGI, Java servlet engines, etc.) over straight,
> fork-and-exec CGI scripts.
>

You get sneaky about it: put a database proxy in place that maintains
persistent connections to the database and just funnels queries and responses
back and forth. I've only used this as a way to avoid rewriting CGI,
not as a preferred method for creating fast web to database systems.

> (The usual argument along these lines is spelled out in
>
> http://photo.net/wtr/thebook/server-programming.html
>
> in Phil Greenspun's usual pungent style... it's toward the middle of
> the chapter, under the heading "Step 3: Choose a program invocation
> mechanism").
>
> rst

-- 
 --b