Forum OpenACS Q&A: Response to Open ACS handling heavy traffic

Collapse
Posted by Don Baccus on
Well, I just downloaded the code for the heck of it.  It's got a very simple datamodel (about 450 lines in the PostgreSQL case).  They supply PG, Oracle and MySQL datamodels.

They abstract out SQL differences by wrapping every query in a function, with all functions for each RDBMS being placed in the directory DB/[your RDBMS here].  There aren't very many queries in the system, either.  And, as I suspected, they're all very simple.  You see functions that call other functions to get values to use in the query, leading to the "execute lots of little queries" model of execution.  Also they don't seem to be wrapping inserts, updates and deletes in transactions even when using PG or Oracle though I can't be sure (in other words, have spent all of 15 minutes reading the code).

They template everything with templates drug from the database - of course this, like everything else, is heavily cached.

OK, time for someone else to spend 15 minutes reading the code in order to add to our understanding :)