转载

【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS

王晶昱(花名:沈询),阿里巴巴资深专家,2008年加入淘宝,之后一直在中间件和稳定性平台工作至今。目前负责阿里分布式数据库,之前叫TDDL,现在运用到阿里云上改名为DRDS。 此外,他还负责阿里的分布式消息服务(Notify/MetaQ),以及阿里企业级互联网架构平台的新产品研发工作。

在大会召开前夕,笔者有幸采访到了王晶昱,请他分享这些年的心路历程以及人生感悟。在他看来,运气很重要,但珍惜并不只是口头说说,而是要用自己的最大努力去守护。

值得一提的是,在2015年11月19-21日召开的SDCC 2015(软件开发者大会)上,王晶昱将在新一代数据库调优实战论坛中带来《阿里双11 分布式数据库实战》的主题分享,欢迎前来现场聆听【点击这里抢票】。

【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS

王晶昱

CSDN:是什么样的缘由让你加入阿里的?加入阿里给你最大的感悟是什么?

王晶昱: 当年加入这个团队的时候,实际上是被这个团队的名字所吸引的——淘宝平台架构组。这名字瞧着就霸气啊。于是我经过了七个人的面试以后,成为了这个团队的第九人。然而,好景不长,刚到这团队一年多,团队就合并到其他大团队里面了。后面就一直叫“中间件”,再也没用回过当年的“平台架构”了。

加入阿里的时候,我还是个刚毕业的毛头小子,在一家这么年轻的公司里,我都算是最年轻的。然而转眼间,大家也开始叫我前辈了。看着大家年轻的面孔,真的是五味杂陈。回头看看走来的这一路,最大的感悟就是,运气很重要。

能够有幸在一家高速发展期的公司里面做自己感兴趣的事情,这真的是一件要好好珍惜的事情,当然,珍惜并不只是口头说说,而是要用自己的最大努力去守护。

CSDN:目前阿里主要在使用的数据库有哪些?他们各自的优势是什么?

王晶昱: 阿里是一家很开放的互联网公司,就像其他互联网公司一样,对各类新技术都是开放接纳的。在目前,能够以一种数据库打天下的时代已经过去了,我们的应用会在各种不同的场景中选择自己最适合的数据库产品。

在我们的系统中,既有NoSQL的HBase 、OTS;也有缓存类产品Tair、Redis、OCS等;还有支持SQL开源数据库MySQL、Postgresql,和我们自己研发的阿里分布式关系数据库(DRDS/TDDL)和OceanBase等等。在离线分析产品方面,我们也有ODPS、ADS等分析类数据库在线运营。 同时我们也有很多其他类的数据存储产品,比如图数据库,搜索引擎等。 他们在自己的领域内都能够发挥出自己独特的优势。

NoSQL的数据库产品主要用来存储海量的日志类KV数据,主要是考虑他写入吞吐很大这个优势。 缓存类则一般用于低成本的处理读请求。

分布式数据库/数据切分领域: 因为数据量非常巨大,所以我们一般会使用DRDS/TDDL来将单机数据库有机的组合起来,变为分布式数据库。这样就可以解决单机数据库容量和吞吐量不足的问题。让系统不再面对成长的烦恼。

在单机数据库方面: MySQL是目前用的最广泛的数据库,无他,主要是因为他的社区广泛,系统比较稳定。PG在地里信息和数据分析类场景中也有一定应用。 而我们也有自主研发的OceanBase,他们刚刚release了1.0的版本,在这个版本中对整个系统的结构做了很大的重构,目标是在未来能够做到超越单机MySQL的性能。

在分析类数据库方面: 我们目前几乎所有数据都会先进入到ODPS里面。如果有在线快速分析类需求,会使用ADS来进行这方面处理。

CSDN:你所负责的分布式数据库DRDS主要运用在哪些架构层面?在整个系统架构中承担着怎样的作用?

王晶昱: 分布式数据库DRDS,其实在内部的代号是TDDL(淘宝分布式数据库)。 这东西是随着淘宝业务的成长而成长起来的一套分布式数据库组件。

在整个系统中,他的位置在单机数据库之上,应用之下。如图中的DRDS所在位置:

【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS

主要的作用是解决系统的扩展性问题,能够在支持关系模型的大部分场景的前提下,实现数据存储的水平扩容。 是真正的分布式数据库系统。同时,很多DRDS用户也非常看重我们的读写分离功能,这个功能的最重要特性就是能够让用户不改动代码的前提下,实现系统读能力的水平扩展。

我印象最深刻的一个案例是公司内有一天临时决定要做一个活动,会有突发读流量压力,但临时加缓存来不及了。于是他们就挂了7个备库,然后在线动态调整了系统的读流量比例,动态将读流量分配到了备机上,轻松撑过了活动压力。

这个功能也因此广受好评。

CSDN:如何构建高并发网站中的数据库?其中有哪些技术点和难点挑战?

王晶昱: 可以看到,我们的企业级互联网架构本身的一个最重要的特征就是,无单点,可水平扩展。

在这整套系统中,在技术上比较难解决的问题就是数据库的平滑扩展。 而我们在这方面花费了很多的时间进行了技术攻关,比较成功的解决了这个问题。也就直接成就了DRDS的一些关键性特性。

除了技术上的挑战,我们面对最大的挑战实际上还是工程上的,很多时候一些简单的技术方案很可能大家都能有所了解,但如何能够稳定可靠的把软件交付到客户手里,并能够撑得住不断上涨的流量访问压力?

我想这才是最难的一件事,毕竟“talk is cheap, show me the code”才是硬道理。

DRDS/TDDL经过多年发展,目前在阿里内部的几千个应用上面都有应用,至今还没有出现过一次大规模故障,也从侧面说明了我们在软件质量上面的坚守。

CSDN:你认为一名优秀的技术人应该具备怎样的素质?

王晶昱: 我个人认为,符合这个世界要求的就是优秀的。 在目前这个时代,我认为一个优秀的技术人员的特质可能是:

  1. 兴趣驱动,兴趣是最好的老师,写程序本身就是挺有意思的事儿不是么? 毕竟程序员就是小上帝啊。
  2. 换位思考,换位思考是个非常重要的能力,学会换位思考,能够让我们在与其他人合作的时候让其他人更加舒适。也能够让我们更容易的把一些复杂问题讲的清晰明确。更能准确的了解别人的需要。他的本质实际上是对人的理解。
  3. 目标明确,懂得自己要什么,自己能放弃什么,自己拥有什么。 并能够制定详细的计划来逐步实现他们。高瞻远瞩,脚踏实地。
  4. 探求之心,坚持不懂就问,不会就学,尽可能把自己经手的问题的前因后果都了解清楚。
  5. 努力,这是一切的基石 。

这就是我对一个好的程序员的理解。

CSDN:日常工作中你会通过哪些渠道来提升个人能力?

王晶昱: 看到这个问题,我脑子里面立刻就蹦出了一句话:“人和人的差别在八小时之外”。

其实我也很感恩自己在杭州的这8年,在这八年里,我没什么钱,只能租住在7平米的小屋子里,没电视,网络也是合租的。

可能大家会觉得,这不是自虐么?哈哈,其实我反而觉得这真的是一个挺好的环境,因为心无旁骛,所以我能专心的在家读读书,写写代码。

这些积累,一年两年可能看不出来,但经过了8年多的时间,现在真的是能够感受到很多的不同。

CSDN:给学从事数据库方面的开发者一些建议吧。

王晶昱: 数据库,我觉得真的是一个挺综合的领域,而且在分布式数据库领域,我明显的能够感觉到,目前未能解决的问题还有非常多,所以是一个非常值得投入的领域。

而像从事数据库这方面的研究,最难的其实就是能够找到一个合适的应用场景,因为在数据库领域,国内实际上比国外慢起步30年,所以在大家的面前有非常多的对手实际上很可能已经跑了好多年了。

所以,要想有所突破,必然是在一个新的应用场景中面对一些新的问题,想到了一些创新性的解决方案。

这一切的前提,是要积累足够多的应用场景,并能够融会贯通。那么,大家一定能够看得出来,能够找到像阿里中间件-分布式数据库平台这样的团队进行积累实际上真的是至关重要的一件事。

CSDN:在本次SDCC大会上想分享的话题是?

王晶昱: 这次,我主要来分享的话题是《阿里双11 分布式数据库实战》,说实话,这种话题在双11之前就决定,实际上还是有点慌的。 不过,之前的多年双11从来都没有出现过故障,也给我们增加了信心。 在这次的分享中,我希望从今年的双11开始,谈谈我们在今年做了什么事情,然后再从分布式数据库的发展历程和关键节点上,介绍一下我们之前做了什么。 最后,再从从业界趋势看分布式数据库的未来。 希望大家能喜欢。

CSDN:本次大会你最想听到哪些方面的话题?

王晶昱: 我主要还是个后端程序员,主要关注的还是系统架构相关的topic,不过之前在velocity 纽约的时候意外的发现很多移动端和前端的topic也非常有意思,所以这方面的我也会选择一些话题去听。

由CSDN举办的 SDCC 2015中国软件开发者嘉年华 将于11月19-21日在北京举行,本次大会涵盖:新型数据库、编程语言、工具与平台、产品与设计、前端开发、算法、微信开发、架构实践、安全等九大分论坛。 想了解更多精彩演讲,想要见到更多顶级软件开发者, 敬请关注 SDCC 2015中国软件开发者大会官网 。

正文到此结束
Loading...