Just finished reading through this PDF presentation by Randy Shoup and Dan Pritchett. A really interesting view in the operations of one of the largest e-commerce deployment in the world – maybe the biggest. Here are some things that left an impression:
- The numbers regarding daily transactions, users, LOCs etc. are stunning.
- Their commitment on horizontal scaling. Still in 2007 designs for horizontal scalability are scarce.
- “Limp mode” for business features if a failure occurs.
- Original version of eBay build over a weekend.
- In 2002 they chose to “re-write the entire application in j2ee”
- … but threw out most of it (j2ee) in order to scale better (g. re-write connection pooling)
- Abandoned transactions (client-side/distributed) in order to achieve better scalability – “created alternate DB structures”
- Horizontal splitting of their DBs
- No stored procedures – only simple triggers
- CPU intensive (eg. data integrity) work taken away from the DB to the app
- Application tier completely stateless (obviously)
- Developed their own ORM technology – DAL: Data Access Layer
- Real-time indexing (using messaging?)
- Entire site automatically rolled-out every 2 weeks
- Scalability is king!