on 10/22/01 11:13 AM, Matthew Kennedy at [EMAIL PROTECTED] wrote:
> Why was Berkeley DB chosen for caching when a RDBMS (mysql in this case)
> was already being used?

It's faster and less resource-intensive for this kind of thing.  We just
wanted a really fast persistent hash, and didn't need SQL or relational
concepts.

> Secondly, I've worked on a good-sized commerce site with
> mod_perl+HTML::Mason. One of the more dirty secrets is that the back-end
> of the site involves several standalone perl programs running as
> daemons. What's even worse is; most of them have to sit in poll/wait
> loops waiting on message from external systems (such as pop3 servers,
> ccvs etc.)

It sounds like the limitation there is that you're interfacing with systems
that can't notify you when something new happens.  That's not Perl's fault.
If you wrote your daemons in Java alpahabet soup, they'd still have to poll
the pop3 server.

> For comparions, a nice aspect of j2ee applications IMHO is the
> "application server" tends to be more general. ie. the application
> server is not just the web server (as it is with mod_perl). I've found
> j2ee features such as message beans, queues and such especially useful
> for back-end work. For these reasons, I personally don't buy the
> argument that mod_perl makes an effective application server for a good
> sized task (your mileage will vary no doubt ;).

I guess it all depends on what you think "application server" means.  In our
case, it was a server that ran code persistently, which supported an HTTP
interface.  It wasn't our front-end web server, and we could run anything we
wanted to in it.

Lots of people implement reliable queues in Perl.  They generally use
something like an RDBMS or Berkeley DB (which has a queue option) for the
backing store.  Many JMS implementations use an RDBMS for all the hard stuff
as well.

> So again, I'm curious, what does the eToys.com site back-end stuff look
> like?

The web site part that was discussed in the article ended at the Oracle
database.  There was a system built on Oracle's queuing technology that
replicated orders to a backend system for processing.  I believe the last
revision of that was largely in PL/SQL.  I don't know much about it, since
there was an entirely different team working on it.

- Perrin

Reply via email to