Best Practices for Large-Scale Web Sites -- Lessons from eBay.
"There may be no better example of a company who has met the demands of Internet scale than eBay, with 88.300.000 active users worldwide, over 2*10^9 page views, and 48*10^9 SQL executions every day. And there may be no one more qualified to discuss those demands than Randy Shoup, architect of the eBay web site and primary architect of eBay's search infrastructure."
"
* Partition everything.
* Asynchrony everywhere.
* Automate everything.
* Remember, everything fails.
* Embrace inconsistency."
"The system generates over 2 TB of log messages per day."
"Like any large, scaled Internet site, eBay has found itself bound by the CAP theorem, first proposed by Eric Brewer in July 2000. Briefly stated, the theorem shows that any shared-data system can have at most two of the following properties:
* Consistency: All clients see the same data, even in the presence of updates.
* Availability: All clients will get a response, even in the presence of failures.
* Partition-tolerance: The system properties hold even when the network is partitioned, as by a network hardware failure.
The trade-off among these three properties is fundamental to all distributed systems."
Показаны сообщения с ярлыком eBay. Показать все сообщения
Показаны сообщения с ярлыком eBay. Показать все сообщения
среда, 2 декабря 2009 г.
воскресенье, 4 октября 2009 г.
Concurrency lessons from eBay engineers
On JavaOne Technical Sessions 2009 3 engineers from eBay speek about Java concurrency troubles/lessons that they learned.
- Lazy Initialization patern
- Holder pattern
- correct Double-Checked Locking pattern
- Interesting example: ConcurrentMap of AtomicInteger
- DateFormat, MessageDigest, CharsetEncoder/CharsetDecoder - not thread safe
- ThreadLocal pattern
- potential lock contention on Class.forName(...) when missing class
- SAXParserFactory.newInstance().newSAXParser() - potentially significant lock contention on META-INF
P.S. You MUST be resistered at Sun. Its easy.
P.P.S. And, Yes, eBay, Amazon and part of Google writed in Java:)
- Lazy Initialization patern
- Holder pattern
- correct Double-Checked Locking pattern
- Interesting example: ConcurrentMap of AtomicInteger
- DateFormat, MessageDigest, CharsetEncoder/CharsetDecoder - not thread safe
- ThreadLocal pattern
- potential lock contention on Class.forName(...) when missing class
- SAXParserFactory.newInstance().newSAXParser() - potentially significant lock contention on META-INF
P.S. You MUST be resistered at Sun. Its easy.
P.P.S. And, Yes, eBay, Amazon and part of Google writed in Java:)
Подписаться на:
Сообщения (Atom)