SDCC 2015将于2015年11月19-21日在北京.朗丽姿西山花园酒店召开。在大会召开之际,笔者采访到了腾讯高级软件工程师潘安群,请他分享TDSQL在腾讯云金融领域的实践经验。

SDCC 2015将于2015年11月19-21日在北京.朗丽姿西山花园酒店召开。在大会召开之际,笔者采访到了腾讯高级软件工程师潘安群,请他分享TDSQL在腾讯云金融领域的实践经验。 届时,潘安群将在新一代数据库调优实战论坛中带来《腾讯云金融级数据库TDSQL分析》的主题分享,欢迎前来现场聆听【 点击这里抢票】。

腾讯高级软件工程师

CSDN:首先请简单介绍下自己、公司以及目前所负责的领域。

潘安群:目前任职于腾讯TEG计费平台部,任技术总监一职,主要负责虚拟支付平台的相关研发工作。重点关注分布式数据库、大数据风控平台等领域。

CSDN:可否介绍下目前腾讯主要使用的数据库有哪些?他们各自的优势是什么?

潘安群:腾讯的OLTP场景中,主要是两大思路:

  • 基于MySQL的定制

这一类产品通常是在兼容MySQL接口协议的基础上,针对自己的业务场景做定制化,例如我们针对金融场景,定制出TDSQL,强调数据强一致性、零丢失、高可用等特性;游戏运营平台则基于游戏场景变化频繁的特点,定制出TMySQL,强调二进制字段压缩、在线DDL、快速回档(Binlog并行恢复)等特性;此外还有CDB,实现多租户管理,将DB云化,为公司私有云以及腾讯云提供数据库的PaaS服务。

  • 自研的KV存储

这一类产品就更加特性化,与业务场景结合更紧,它们的最初出发点往往是性能与服务器成本的平衡。例如常见的Feeds流,通常都会做磁盘读写优化、冷热数据自动分离;而我们也针对游戏支付营销场景,开发了高性能的,全内存的金融级分布式存储系统(HOLD),在保证跨IDC强一致性的情况下,单机性能到20万TPS。当然也有通用的CKV系统,主要是KV系统云化,为公司私有云以及腾讯云提供对象存储的PaaS服务。

此外,也有业务使用MongoDB等数据库,这类文档型数据库胜在灵活,适合产品原型或发展初期,对于大规模的在线服务,我们并不推荐使用。

在OLAP场景下,基本上被TDW垄断。TDW(腾讯分布式数据仓库)是公司大数据平台的核心部件,基于开源软件HIVE和Hadoop进行了深度定制,目前该项目已经开源。

CSDN:TDSQL是一款什么样的数据库?当初开发TDSQL的初衷是什么?主要有哪些特性?其开发架构是怎样的?它适合什么样的开发场景?

潘安群:TDSQL(Tencent Distributed mySQL - 腾讯分布式MySQL)是针对金融联机交易场景推出的高一致性数据库解决方案;产品形态为一个数据库集群,底层基于MySQL(MariaDB 10.0);对外的功能及接口表现上与MySQL兼容。

重点针对金融OLTP场景进行了如下增强:

  • 通过多副本冗余和故障自动切换机制,解决单点问题,确保在单机、单IDC、甚至单个城市灾难时,服务持续可用;
  • 对数据多个副本之间的一致性保障进行深度优化,实现数据访问、主备切换的一致性,确保在单机、单IDC故障时数据零丢失;
  • 引入集群机制,实现自动的容量伸缩,确保在业务飙升时,数据库服务能力自动适配业务增长,保持对外服务的持续可用。

TDSQL整体上由三大核心模块组成:

  • DB。实际存储业务数据的MySQL实例。
  • Scheduler。存储DB实例的元数据,例如路由信息,授权信息、主备信息。此外它还负责容灾切换的调度、主备选举等。
  • Proxy。主要负责客户端请求的转发,屏蔽后端DB的容灾切换、分库分表等逻辑。

关于TDSQL架构的更多细节,期待您参与SDCC 2015数据库专场,与我们进一步讨论。

目前,在腾讯内部TDSQL主要用于对数据一致性要求最为苛刻的计费支付类业务(Midas),以及微众银行(WeBank)核心交易系统的数据层,此外也是腾讯云金融解决方案(QCloud)的数据库服务方案。

CSDN:当初开发TDSQL的初衷是什么?

潘安群:腾讯计费平台从2003年以来,经过12年发展,数据库容灾架构经历4代演进,TDSQL是我们的第四代产品,2012年我们启动TDSQL这个项目,主要有下面几个动机:

  • 易用性。我们前面几代产品,在易用性上均存在一定的问题,例如第二代产品,业务逻辑跟容灾逻辑耦合太紧,导致每个业务开发人员必须对整套容灾逻辑非常熟悉,开发难度和运营维护难度都很高,而且容易出错。而第三代产品HOLD,虽然将容灾逻辑下沉到存储层,业务与容灾充分解耦了,但仅能提供简单的GET/SET这类KV接口,不够灵活。
  • 通用性。标准SQL接口比KV接口更加通用,使用范围更广。在推广第三代HOLD平台时,就面临了很多业务原本使用MySQL,现需改为KV接口,改造难度大,推广进展缓慢,而一些外部业务则根本就不愿意改造。所以存储平台必须更加标准和通用,才能让更多业务直接无缝割接到新平台。

此外,也有几个契机,让我们重新基于MySQL来打造存储平台:

  • SSD在公司内开始大规模使用,SSD的IOPS相对于机械硬盘有质的变化,能满足大部分系统的性能需求。利用好SSD优势,能极大简化存储系统的架构体系。
  • 以KV为代表的NoSQL无法形成业界标准及规范,反观以Oracle、MySQL为代表的传统关系型数据库生态完善,使用范围也更广,更容易被开发人员接受。
  • MySQL在5.5版本引入半同步复制,5.6版本引入GTID等机制,而且经过5.5,5.6,5.7等几个版本,开源的MySQL在性能、数据强一致性方面有了质的提升。

CSDN:在开发TDSQL期间有没有遇到过困难点?又是如何克服的?你们目前的开发团队有多少人?

潘安群:TDSQL跟我们之前的三代产品在设计理念上有很大的不同,导致我们开发TDSQL时,除了前面三代系统积累的经验,没有其他可直接复用的模块,开发几乎是从零开始。而数据库开发本身是一个大项目,涉及的东西甚多,我们需要在很快的时间内完成第一个版本的开发,这在当时,对团队来说是一个很大的挑战。现在回头去看,当时采取的几个措施,还是相当有效的:

  • 基于开源软件快速搭建。MySQL版本选用MariaDB、Proxy版本基于MySQL Proxy、Scheduler中元信息的存储选用Zookeeper等,这些开源软件相对成熟,只需要基于它们做小的定制开发即可。
  • 聚焦、精简需求。第一个版本不求大而全。例如第一个版本我们就仅仅实现了强一致同步、主备切换等机制,而且实现方式也比较简单粗暴。
  • 找到试点业务。做平台,必须持续有业务接入,才能获得现网的验证反馈。同时也能提升团队成员的成就感。如果长时间没有业务接入,没有客户的使用和反馈,团队成员容易疲乏。

此外,TDSQL第一个版本是采用的封闭开发模式,用时3个月,当时团队6个人左右。经过近4年发展,目前研发团队,包括开发测试运营等,在20人左右。

CSDN:倡导7*24高可用、金融级分布式Cache是个什么样的系统?主要运用在哪些场景上?

潘安群:腾讯自研的金融级分布式存储产品HOLD(厚德,取意厚德载物),其实是TDSQL的前身,当时SSD并没有大规模使用,但在腾讯的计费业务中,还有很多场景,不仅要求很高的服务可用性和数据一致性,还需要超高的并发和极短的响应时延,比如2B账户的交易,最高每秒10万级的更新;又比如游戏的营销类赠送,浪涌式的并发请求量,当时的DB很难满足这类需求。

基于这样的需求,我们开始思考:在OLTP数据库领域深耕这么多年,是不是可以尝试去改变一些东西?于是,2010年,HOLD项目启动。目标:超高并发、超短时延的高一致分布式数据存储层。

首先,为了获得更快的访问速度,数据结构上剔除所有关系模型,直接采用KV格式,存储介质上使用纯内存。然后,把之前在DB中积累的经验溶入进来,后面TDSQL的架构和用到的所有重要技术,几乎都在这个项目里进行了系统性的验证,包括在数据底层实现跨IDC的强同步、跨城容灾、切换一致性保障、数据自动的Sharding、集群管理等。

HOLD在计费平台应用非常成功,支撑起了多个超高并发的应用。实际运营中,经历了多次软硬件或网络故障,没有发生过数据丢失问题;自动伸缩能力也得到了很好的验证,仅2014年就伸缩近500次,非常轻量化,完全无需人工干预。

CSDN:你目前还会关注哪些新技术?

潘安群:目前关注的领域包括金融风控体系在大数据中的应用、基于业务的领域专用语言、高性能后台开发、分布式系统等。此外也对大规模集群管理技术,如容器、资源管理、服务管理等感兴趣。

CSDN:你认为一名优秀的技术管理者应该具备怎样的素质?你所推崇的团队文化是什么?

作为一名技术管理者,我个人非常强调技术视野这一点。互联网技术日新月异,我们必须不断学习,持续了解业界前沿动态,开拓自身视野,才能确保决策是高效的。此外,无论是对于个人,还是团队成员,我都一直强调效率。抽象业务,通过工具化、平台话的思路持续提升整体研发效率,应是每个技术人的追求。

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

潘安群:在SDCC 2015上,个人将分享一下TDSQL在腾讯云金融领域的实践经验。也希望借此机会,跟业内其他数据库团队交流交流。

CSDN:你最期待在本次SDCC 2015上听到哪些内容?

潘安群:SDCC 2015作为开发者的盛宴,希望能通过她了解到业界在数据库、编程语言、技术架构等领域的发展趋势。

腾讯潘安群:腾讯云金融级数据库TDSQL分析相关推荐

  1. 【SDCC讲师专访】腾讯潘安群:腾讯云金融级数据库TDSQL分析

    摘要:SDCC 2015将于2015年11月19-21日在北京.朗丽姿西山花园酒店召开.在大会召开之际,笔者采访到了腾讯高级软件工程师潘安群,请他分享TDSQL在腾讯云金融领域的实践经验. SDCC ...

  2. 腾讯金融级数据库TDSQL的架构与应用

    腾讯金融级数据库TDSQL的架构与应用 字数4064 阅读358 评论2 喜欢0 腾讯云金融级数据库CDB for TDSQL (Cloud DataBase for Tecent Distribut ...

  3. tdsql完全兼容mysql吗_金融级数据库 TDSQL:已支持日 3.6亿+ 的交易量,TPS 10万+

    原标题:金融级数据库 TDSQL:已支持日 3.6亿+ 的交易量,TPS 10万+ 作者: 胡盼盼:微众银行数据库平台负责人.硕士毕业于华中科技大学,毕业后加入腾讯,任高级工程师,从事分布式存储与云数 ...

  4. 腾讯金融云mysql,腾讯云金融级云数据库优势与功能介绍

    腾讯云金融级云数据库定义是什么? 腾讯云金融级云数据库英文名称是CDB for TDSQL,是一个与 MySQL 兼容的关系型数据库,针对金融类业务设计,可媲美高端商用数据库,同时还具有开源数据库的简 ...

  5. TDSQL:从自主可控金融级数据库看腾讯“智能+”技术中台之路

    作为"互联网+"和"智能+"的主要技术供应商,腾讯提出了"云化"已经成为重要的创新模式,各行各业都将进入"互联网+"的下 ...

  6. 为数据赋能 | 腾讯TDSQL分布式金融级数据库前沿技术

    点击蓝色字关注"数据库技术大会" 一起玩耍哦~ 作者简介 李海翔,网名"那海蓝蓝",腾讯金融云数据库技术专家.中国人民大学信息学院工程硕士企业导师.著有< ...

  7. 为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术

    作者简介:李海翔,网名"那海蓝蓝",腾讯金融云数据库技术专家.中国人民大学信息学院工程硕士企业导师.著有<数据库事务处理的艺术:事务管理和并发访问控制>.<数据库 ...

  8. 成为金融级数据库,腾讯TDSQL 的底气是什么?

    作者 | 宋慧 14.1178 亿,是第七次人口普查,全国人口总数.全国 700 万普查员,首次线上完成普查数据采集,数据直接上报至国家统计局.普查员所使用的线上系统,需要完成数据采集.流转.脱敏.处 ...

  9. android中集成阿里云金融级实人认证

    上个项目中有用到过这个,现在又要用到,每次都是到官网去看文档去集成,特此记录一下集成的步骤 第一步:打开官网文档阿里云金融级实人认证Android接入文档 去下载最新的sdk,集成到项目中 第二步在需 ...

最新文章

  1. [LeetCode]题解(python):153-Find Minimum in Rotated Sorted Array
  2. python银行系统-python 银行系统
  3. 汇编--两种过程定义的方式,调用方式。
  4. 当我真正开始爱自己——查理·卓别林
  5. 漏磁用MATLAB,管道漏磁内检测数据可视化技术研究
  6. spring mvc 接收页面数据
  7. mysql meb安装_用meb搭建MySQL Master/Slave
  8. CoreMotion(加速计)
  9. 数据结构C语言版之线性表
  10. 结构体和共用体字节对齐
  11. SQL Server 2008入门系列之设置数据库服务器的访问权限
  12. 看我用ubuntu virtualbox
  13. 推荐几个好的粉碎文件的软件?这3款软件让你彻底摆脱无法删除文件的烦恼
  14. Android退出登录总结
  15. 制作字幕.html教程,自制字幕怎么做 字幕制作软件
  16. 内存泄露(memery leak)避免方法
  17. mysql创建/编辑表时的 ROW_FORMAT = Dynamic 和 Compact 有什么区别
  18. dfuse 发布全新 EOSIO 链迁移工具
  19. ubuntu命令行查看dns_Dog-用于DNS查询的命令行工具
  20. Excel使用VBA自动调整插入图片大小到单元格

热门文章

  1. 儿时的动画,你看过那些?-我国的动画片
  2. 租车App第一次迭代报告
  3. 关于springboot整合log4j2的史上最全配置解释
  4. 如果你不甘心CRUD,那需要看这篇设计模式!|原创
  5. Threejs系列--9游戏开发--沙漠赛车游戏【基础场景渲染】
  6. 常用计算机高级语言及其特点,计算机高级语言特点是什么?常见的语种有哪些?...
  7. C++11之防止类型收窄(列表初始化)
  8. 迷阵突围——Dijkstra求次短路
  9. 谋杀之谜 良辰吉日 人物关系图
  10. WSL2连接调用USB设备