eBay 的 Personalization Platform 采用 MySQL
过去写过很多关于 eBay 数据平台架构的帖子,过去eBay 的信息架构里 DB 都是采用 Oracle 的,大多数 DBA 朋友也都知道 eBay 在 Oracle 方面的技术搞得非常好。这次的 The 2008 MySQL Conference & Expo 披露出来的信息,eBay 在 MySQL 上做了很大胆的尝试,eBay Personalization Platform 就是用 MySQL 打造的。Sun 当然不会放弃这个大好的宣传机会(这两家在技术上的合作一向也比较多),所以年度最佳应用给了 eBay (一同获奖的还有 Virgin Mobile France 和 Facebook )。
面临的应用场景:客户端 Cookie 最大 4K,如果要传递更多定制化信息就不好搞了。作为电子商务站点,肯定有要为用户提供更具有关联性的商品信息的业务需求,这样就要跳出原有的窠臼。通过数据库集群来存储类似的信息就是有必要的,但 eBay 原有 Oracle 数据库上的压力已经很大。
eBay 采用 MySQL Memory Engine 做数据库 Cache 层解决方案(如果纯粹用 Memcached 类似的方案也不太适合的,读写比例接近), eBay 工程师 Igor Chernyshev 对内存引擎做了质的改进,而这些改进是开放出来的(Mysql-heap-dynamic-rows 项目,对 VARCHAR 列的内存开销算法做了革命性的改进)。另外一个 Patch 扩充了并发能力,一台普通的 Sun 4100 上能支撑 20000 个并发连接。每秒钟处理 13000 个 TPS,读写各半。25 台机器组成的集群,每天支撑 40 亿次的读写请求,为每个用户传递的定制数据平均大小 40 K,从 4K 到 40K ,足够多的定制信息可以存储了。
架构示意图(来源):

这个个性化平台系统虽说关键,但是存储的数据并非不能丢失的。这也是 eBay 大胆采用 MySQL 的一个考虑因素吧。
MySQL 更大规模部署时代似乎来临。
作者: Fenng
网址: http://www.dbanotes.net/database/ebay_personalization_platform_mysql.html
- MySQL 大企业级应用可行性分析(之四) - 2009年09月14日 12:56
- MySQL 大企业级应用可行性分析(之三) - 2009年09月14日 12:54
- eBay 的Scalability最佳实践 - 2009年04月14日 09:01
- 再谈 eBay 的扩展性最佳实践 - 2009年04月14日 08:59
- FriendFeed 使用 MySQL 的经验 - 2009年03月02日 10:25
- MySQL 大企业级应用可行性分析(之二) - 2008年07月23日 09:23
- MySQL 大企业级应用可行性分析(之一) - 2008年07月23日 09:22
- FeedBurner:基于MySQL和JAVA的可扩展Web应用 - 2007年11月01日 14:48
- 读书 - 高性能MySQL(第二版) - 2010年04月15日 20:43
- 关于两个机房的讨论 - 2010年02月03日 12:37
