Database – Is the database the bottleneck or not? High Scalability talk

databasescalability

I found an interesting article on high scalability web site where it talks about EBay scalability and especially a specific passage struck me:

"(Ebay strategies)…Move work out of the database into the
applications because the database is the bottleneck. Ebay does this in
the extreme. We see it in other architecture using caching and the
file system, but eBay even does a lot of traditional database
operations in applications (like joins)."

and the above is no mistake because again in the same article:

"Move cpu-intensive work moved out of the database layer to
applications applications layer: referential integrity, joins, sorting
done in the application layer! Reasoning: app servers are cheap,
databases are the bottleneck."

Any explanation on this? If the above were true then I should only use the database for retrieving data and do all other operations in the programming logic.

I was always told the opposite: "databases are optimized for operations on data and complex selects so use them".

Any insight?

Best Answer

"Measure. Don't Guess".

We can't assume that Ebay's bottlenecks are the same as our own. For the specific applications that I work on, when a bottleneck exists it is rarely the database (or if it is, it's because of poorly optimized queries). I know this because we've reviewed the instances of poor-performance and profiled the performance of normal performance of our application.