我在 12 月 8 日荣幸地作为 Velocity 大会的的演讲者分享了《移动互联网内容平台的架构和性能优化》,同样非常荣幸地在 12 月 12 日作为演讲者在 iData Forum 2010——淘宝组织的数据库大会上分享了《NoSQL 研发之路》。
中国互联网数据库技术论坛 (iData Forum 2010) 是由淘宝 DBA 团队发起的,计划每年举行一次的国内数据库大会。这次是 12 月 12 日在北京温特莱酒店举行。这次会议的详细议程在这里。
会议现场人员爆满,大家的热情都很高。上午是淘宝的赵林(sina 微博 @丹臣) 分享的《淘宝数据库架构演进历程》的一个专场,会场上座无虚席。不时有人打断提出问题,气氛非常活跃。
淘宝的数据库架构经历了:
- 普通的 LAMP 架构。所有的数据都在一起,可以方便的通过关联查询快速开发产品应用。借用 @丹臣 的话“开发一个功能,只要一会儿”。
- **Oracle+ 小型机。** 由于淘宝业务的快速发展,和对数据的高可靠性和安全的渴求,淘宝开始把数据库迁移到 Oracle 上面。由于同时还要保证性能的需要,选择了小型机。
- 分布式 Mysql 数据的架构。淘宝业务的继续快速发展,使基于小型机 +Oracle 的架构已经不能满足淘宝业务的性能需求,成本也变得非常的高。基于淘宝业务都是读多写少的情况下,淘宝开始根据业务对数据进行分片,分库分表的处理,然后开发数据库中间件层 (TDDL) 来屏蔽底层数据库分库分表带来的开发复杂性。同时为了降低成本,开始大规划的使用 mysql,mysql 主要用作 Oracle 的从库(自主研发的基于应用的异构复制),实现读写分离。
淘宝的核心业务写库仍然是 Oracle,但是读库是 Mysql 集群。非核心和不重要的业务全部迁移到 Mysql 集群。
同时 @丹臣也分享了如何更加有效的做数据库的分片,如何通过技术降低数据迁移的风险等等。
在淘宝技术迁移的路线图上,我们可以看到淘宝整个技术团队的技术实力的提升,也看到了淘宝 DBA 团队的成长经历。同时,也印证了一个观点“技术架构是为业务需求服务的,也是为压缩成本服务的”。淘宝的每次技术架构的变迁,都是在考虑业务需求的变化,成本的压缩。同时也在迁移过程的风险控制上做了很多的考量。
下午的主题分了两个会场,一个主题大概是跟数据库运维相关,另外一个是跟数据库架构相关。我参加了数据库架构专场。
第一场是来自阿里巴巴的张瑞(twitter@hellodba)分享的《数据库性能模型与容量规划》。主要分享了如何来测试和量化一个机器,系统,数据库在性能上的一个容量。只有对性能量化了,才能有准确的容量规划,而不是靠个人经验。阿里巴巴设计了一套测试的模型,还开发了一个系统,开发人员可以测试 sql 语句经过系统模型计算出来的响应时间。同时也提出了重要的一点,数据库优化的中心是降低响应时间。还有数据库的性能可能出现拐点,可能一直好好的,某一天突然变得很差。
接下来是来自凤凰网的孙立,也就是我 (sina 微博 @ sunli1223_ 孙立) 分享的《NoSQL 研发之路》。我主要介绍了 NoSQL 的其中一种 ttserver 的优点和一些缺点,以及我们在 ttserver 不能满足我们需要的时候,如何去开发了一套适合我们自己业务需求的 NOSQL(INetDB)。我也提出了一个个人觉得非常有意义的观点“不要盲目对比各种 NoSQL 的性能来选择 NoSQL”,你应该根据你的业务数据的结构,读写分布的比例,热点分布来选择和测试。并且最好能理解 NoSQL 内部的存储模型,对你的选择同样有帮助。
最后一场是来自淘宝的曾宪杰 (sina 微博 @见习神仙_ 华黎) 分享的《淘宝网淘宝分布式数据层的前世今生》。主要分享了淘宝整个数据库中间件的发展历程。其实更多的还是业务发展来推动中间件的发展。中间件承担了数据库分片,Mysql 数据库的复制,异构复制的透明化,简化开发人员的工作。淘宝的数据库中间层的复制由解析SQL 语句到解析bin-log 发展,由嵌入到应用层的一个jar 包(client->db) 到中间服务层(client->server->db) 发展。
另外一个会场的关于mysql 运维的分享据说也非常精彩,有兴趣的朋友可以关注官方网站,随时会有ppt 和视频分享出来。
总的的来说,这次淘宝和演讲嘉宾的分享都是非常实在的,让参加这次会议的朋友也不虚此行了,而且现场还有提问,回答问题,举手就有书和奖品赠送的活动,真是太给力了。需要详细资料的可以关注官方网站 idata-forum.org
评论