From: http://netmesh.info/jernst/Comments/sdforum-ebay-architecture.html
This week, I attended a very interesting presentation by Dan Pritchett and Randy Shoup, both senior technologists at eBay, on eBay's architecture. Some of it was as I would have expected, other things were, shall we say, counter-intuitive. Here is a random collection of notes, with some special exclamation marks:
- 212 million registered users, 1 billion photos
- 1 billion page views a day, 105 million listings, 2 petabytes of data, 3 billion API calls a month
- something like a factor of 35 in page views, e-mails sent, bandwidth from June 1999 to Q3/2006.
- 99.94% availability, measured as "all parts of site functional to everybody" vs. at least one part of a site not functional to some users somewhere
- 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.
- no client-side transactions. no distributed transactions
- J2EE: use servlets, JDBC, connection pools (with rewrite). Not much else.
- no state information in application tier. transient state maintained in cookie or scratch database
- app servers do not talk to each other -- strict layering of architecture
- Search, in 2002: 9 hours to update the index running on largest Sun box available -- not keeping up
- Average item on site changes its search data 5 times before it is sold (e.g. price), so real-time search results are extremely important.
- "Voyager": real-time feeder infrastructure built by eBay.. Uses reliable multicast from primary database to search nodes, in-memory search index, horizontal segmentation, N slices, load-balances over M instances, cache queries
分享到:
相关推荐
体系结构设计 案例 2-Course Registration System Software Architecure document.doc ) 软件体系结构设计标准规范
计算机架构是IT领域中的核心概念,它涉及到计算机系统的基础设计,包括硬件、软件以及它们之间的交互方式。"Computer Architecture Tutorial" 提供了深入理解和学习这一主题的资源,尤其适合正在学习计算机系统结构...
通过"viper-architecure-poc-ios-master"这个项目,你可以深入学习VIPER架构在实际项目中的应用,包括各组件的定义、交互方式以及如何在Swift中构建一个遵循VIPER原则的iOS应用。这将帮助你提升代码质量,优化开发...
16BitGateCPU是一款专为sogisim设计的16位CPU架构,它提供了高效、灵活的计算能力,能够处理各种复杂的指令集和数据操作。在这个架构中,设计者考虑了性能、功耗和可扩展性等多个关键因素,使得16BitGateCPU成为模拟...
chromium multi-process architecure
网络架构 我四年级关于Web应用程序体系结构的工作 作业3:制作电影测验 在这项工作中,我必须将网页连接到现有的API:TMDB(电影数据库),以创建有关电影的测验。 目的是找到给定电影的一个演员或导演,然后是其中...
LightRiverToolkit 提供一些开发上累积的一些架构经验的程式码,希望可以减少开发上的一些功夫目前支援的平台是.NET 4.5.1 & Windows Store 8.1 & Windows Phone 8.1 ,但应该如果要向下支援应该也不是难事##...
SDN Architecure based on NFV
It is the most popular book for computer architecure. Even Princeton University uses this book for the course. Details are described for new/advanced players in the field of computer micro arch design...
本人发布基于siphon的应用时,苹果提示必须支持64位模式,将项目Architecure修改为$(ARCHS_STANDARD)后,发现编译错误,然后参照OS 之 PJSIP 笔记(一) 编译多平台支持的静态库 ...发现真机可以运行了,但模拟器运行不...
SwiftFlux, Swift的类型安全流量实现 SwiftFlux SwiftFlux是 facebook architecure的流量的实现。它提供了"单向数据流"的概念,用 Swift 语言提供了收费的安全模块。操作负载的类型是从它的操作的类型推断出来的。...
我们使用卷积神经网络(类似于VGGNet architecure)进行回归。 纸 请参阅我们发表的论文: 一般用法 数据生成和数据处理 用于生成输入文件的原子配置的Jupyter笔记本在generate_LAMMPS_input/generate_LAMMPS_...
智能楼宇技术被概括为“3C+A”技术,即计算机(Computer)、控制(Control)、通信(Communication)和建筑(Architecure)的结合。这四个领域的技术共同构成了智能楼宇的基础。 智能楼宇系统主要由三个核心部分...
在VHDL语言中,一个完整的程序由五个基本结构组成:实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)和程序包(PACKAGE)。实体定义了设计的输入输出,结构体则描述其实现。程序包用于...
VHDL程序包括实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)和程序包(PACKAGE)。实体描述接口,结构体定义功能,程序包存储共享元素,库则存储编译好的设计组件。 10. 常用VHDL库...
VHDL程序由实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)和程序包(PACKAGE)组成。实体描述接口,结构体定义功能,程序包存储共享元素,库则存储编译过的组件。 9. 常用库介绍:...
VHDL语言程序由五个基本结构组成:实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)和程序包(PACKAGE)。实体描述设计的输入和输出,结构体定义设计的行为和结构,配置用于指定实体和...
VHDL语言包括五个基本结构:实体(ENTITY)、结构体(ARCHITECURE)、配置(CONFIGURATION)、库(LIBRARY)和程序包(PACKAGE)。实体描述了设计的输入/输出接口,结构体则定义了具体实现。程序包用于存储共享的...
收集了架构师必读的参考书目,包括: Addison.Wesley.Applying.Domain.Driven.Design.and.Patterns.With.Examples.in.C.Sharp.and.dot.NET.May.2006.chm Addison.Wesley.Domain.Driven.Design.Tackling.Complexity....
【压缩包子文件的文件名称列表】:"Onion-Architecure-Example-master"可能是一个GitHub仓库的克隆或下载,其中包含整个项目的源代码和相关资源。"master"分支通常是项目的主要分支,用于存放稳定版本的代码。我们...