We're running a fairly busy and complex e-commerce website. It's an
online retailer. We utilize MySQL for most of our site-based dynamic
data, and then we use Oracle to access inventory and place orders. We
have two seperate machines for database and web application
(reasonably powerful dual xeon 3ghz machines, 6gb ram each).
We're running Apache 1.3.28 with PHP 4.3.3, mod_ssl 2.8.15 and OpenSSL
0.9.6b. We are running MySQL 4.0.16 as our db and Oracle 8.0.5 as the
inventory.
We front the webserver with a Nortel Alteon AD3 load balancer and it's
currently configured for one webserver. The webserver talks to the
database on the back-end (via second network).
We have a second webserver in place but are unable to bring it into
load-balancing because of sessions. We use flat-file sessions and
regularly build 20,000+ each day (cleaned up after 24 hours). We ran
into performance issues using NFS to store the flat files between the
two machines, so we dropped down to one server.
The question is, what is out there to support distributed session
management? I have taken a look at msession but I can't seem to get it
to compile correctly on RedHat Enterprise ES v3. It also seems to want
to use PostgreSQL.
Does anyone have an opinion on which way we should go? I've thought
about using the database to store the sessions, but that would be a
write and read for every pageview.
We store session numbers via cookies, and I thought about using Cookie
persistance with our AD3's, but it seems like that might introduce
other problems in the event of a server going down, etc. I have also
thought about using client-based persistance (IP Address) but that
could possibly throw the load-balancing out of whack with
super-proxies (AOL, etc).
Anyone have any ideas? Are there any super-fast database products that
would be more suited to many small writes and reads?
Thanks,
Jeff