"
  • 15,000 application servers, all J2EE. About 100 groups of functionality aka "apps". Notion of a "pool": "all the machines that deal with selling"... Well over 200 databases.
  • Everything is planned with the question "what if load increases by 10x". Scaling only horizontal, not vertical: many parallel boxes.
  • leverages MSXML framework for presentation layer (even in Java)
  • Oracle databases, WebSphere Java (still 1.3.1)
  • split databases by primary access path, modulo on a key
  • every database has at least 3 on-line databases. Distributed over 8 data centers
  • some database copies run 15 min behind, 4 hours behind
  • no stored procedures. some very simple triggers.
  • 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."
    (E-Bay Architecture)