返回 登录
0

【SDCC 2016】高吞吐数据库架构专题:腾讯、百度、新浪、网易等企业分布式数据库最佳优化实践大亮相

【CSDN现场报道】2016年11月18日-20日,由全球最大中文IT社区CSDN重磅打造的年终技术盛会,SDCC 2016中国软件开发者大会(Software Developer Conference China)在北京京都信苑饭店隆重举行。本届大会共设新趋势和新实践2大主题会场,14个技术专题,云集了100多位顶级专家和技术大牛,为广大开发人员提供一个良好的学习机会。

高吞吐数据库架构专题于11月20日在热璞科技CTO金官丁的主持下正式开始。他首先介绍了举办该专题的原因及专题所涉及到技术话题,如MySQL、DDB、PostgreSQL、Tribe、分布式数据库、区块链等,参与分享的有来自百度、 腾讯、京东、网易、微博等多家企业的技术专家。

图片描述

热璞科技CTO金官丁

腾讯微信支付高级DBA莫晓东:微信红包数据库架构演变

图片描述

腾讯微信支付高级DBA莫晓东

腾讯微信支付高级DBA莫晓东在《微信红包数据库架构演变》主题演讲中表示2015年春节红包项目面临着很大技术挑战,其数据量预估是日常的100倍。没有可借鉴案例,只能摸着石头过河。鉴于MySQL支持事物,满足一致性要求;为结构化存储,紧凑、连续;支持多索引;部署简单,工具支持及团队对该技术有较多积累,最终选用MySQL为数据库方案,并对其做了多方面优化。

2015年后,红包业务从3月开始快速上涨,红包订单量月增速约达2倍并持续保持,这将面临着新的问题,需进行业务重构,且分三个阶段逐渐开展。第一阶段,主要解决燃眉之急,如针对存储容量不足,采用InnoDB压缩格式。针对性能问题,梳理主机SQL,优化索引、语句、精简请求,面对高峰期抖动,对请求时间进行了优化分布,同时增加了线程池、4K page等新特性。针对主从同步延时,优化了从机SQL,升级Percona 5.5,多库同步。

第二阶段,进行冷热分离。通过分析数据访问情况占比,首先按日分表,proxy路由请求。低峰时段搬迁数据,现网只保留7天。再者改善性能,从raid10+tokudb迁移到NoRaid+myisam,解决迁移问题和优化查询性能。

第三个阶段,进行重构。首先进行了精简与拆分,包括(1)对库表重新设计,字段缩减,去冗余。(2)按天分表,循环使用。确保数据单表数据不会无限增长,用truncate代替delete清理;(3)垂直分表力度更细,小表性能更佳。(4)主键从单号修改为自增字段。自增主键减少体积,加速插入速度。(5)不同的内容,不同的存储。(6)个人红包和企业红包分离。此外,还从事物、异步化、语句、Cache多方面进行了优化。

NABA北美区块链协会联合发起人谭磊:区块链和分布式数据库

图片描述

NABA北美区块链协会联合发起人 谭磊

NABA北美区块链协会联合发起人谭磊在《区块链和分布式数据库》主题演讲中表示区块链接是一个复杂的概念,并阐述了他对区块链的理解。

区块链就是区块的链,通过树的方式链接,且每个节点上的数据是一致的。 区块链系统是不可篡改的,若篡改某个节点,其后的节点都要做出一致修改。比特币是区块链的1.0,而更有意思的是区块链2.0,它是Distributed(分布式的)、Autonomous(自治的,共同约定的)、Contractual(按照合约执行的)、Trackable(可追溯的)。

谭磊表示,区块链要真正的实用,必须与大数据相结合,方式有两种,大数据的区块链和区块链的大数据化,。有价值的区块链系统应包含三层架构,即区块链业务应用层、区块链引擎层、分布式数据库存储层。

网易杭州研究院资深开发工程师马进:网易DDB性能优化实践

图片描述

网易杭州研究院资深开发工程师 马进

网易杭州研究院资深开发工程师马进在《网易DDB性能优化实践》主题演讲中详细介绍了分库分表数据库DDB,及它的架构变迁和性能优化实践。

分库分表数据库DDB,可应对海量结构化数据存储及TB级别热点数据,可高并发访问,应对OLTP在线事务型的应用。在数据扩容方面,可在线增删数据库节点,具有完善的DBA工具。透明分库分表,与MySQL通信协议兼容。其功能特性,包括兼容90%以上的SQL92,向MySQL语法靠拢;支持数据节点手动或自动fail over;基于hint的读写分离功能;两种全局自增长ID实现;更多丰富的hint功能完善等。具有延展性,扩展性可用性,易用性。

DDB的架构经历DBI、Proxy(QS)、DDB私有云架构、DDB云端架构优化几个过程;在性能提升上,开展了Proxy Buffer、DBI NIO、OSC解决方案多方面优化,并分析和展示了优化思路及优化效果。DBI NIO的优化有两种思路,(1)自研到MySQL的NIO驱动;(2) 将Connector/j的底层通信依赖Netty。最终选用了第1种优化思路。优化后CPU使用率得到了1.2~4倍提升。针对一般的OSC解决方案,进行了多方面优化,如基于binlog实现增量更改;全量不加锁,增量用replace幂等语义等。在实现上,提供了DDB HamalSet工具集,也可使用gh-ost。

京东金融数据库中间件研发高级技术经理王义林:分布式数据库CDS-原理与实践

图片描述

京东金融数据库中间件研发高级技术经理 王义林

京东金融数据库中间件研发高级技术经理王义林在《分布式数据库CDS-原理与实践》主题演讲表示数据中心容量遇到瓶颈时,数据分片时应垂直拆分先行。进行分库分表,京东内部的实施步骤主要有,(1)必要性评估;(2)配置表处理;(3)拆分维度确定,也是最关键的一步;第(4)分表、分库数量确定;(5)事务处理;(6)跨分片join处理;(7)全局唯一id生成;(8)聚合处理。

基于京东金融业务特点、发展现状,京东开发了CDS,其实现了数据分片、读写分离,海量数据存取;运维控制台;数据迁移、扩容平台;离线准实时查询、统计等功能。具有兼容JDBC,接入成本低;支持MySQL/Oracle/SQL Server;内嵌高性能连接池组件;读写分离;水平拆分;提供包括MyDB、作业平台、离线数据中心在内的一系列工具集等关键特征。同时还分享了CDS的系统架构、中间件、事件控制过程、集群结构。

如何平滑实施分库分表,王义林表示可采用1+N方式或主从切换方式。1+N方式中,1即当前单库保留,N指水平拆分为N个库,1+N表示当前历史库中已有流水数据不迁移,新交易流水路由到新增的N台库中。关键步骤有,(1)全量映射数据迁移;(2)开始应用发布上线,新老应用并行阶段;(3)老应用没有变化,新应用对映射数据实现重查双写,新应用将流水数据写入当前库;(4)全部完成应用升级后做增量映射数据迁移,此时所有映射数据均在新库存在;(5)第一次推送切换时间点,流水数据一级路由的系统版本位置根据时间自动切换到新增库;(6)第二次推送新路由规则,实现去除新应用对当前库映射数据的查询和写入,由重查双写改为单查单写。主从切换的切换过程就像MySQL主从切换,其省去双写过程,减少切换边界,同时通过Binlog解析, 将CDS集群模拟成老库的从库。

央视国际网络有限公司技术事业群DBA古雷:MySQL5.7与8.0新特性管窥

图片描述

央视国际网络有限公司技术事业群DBA 古雷

央视国际网络有限公司技术事业群DBA古雷在主题演讲中详细讲解了MySQL5.7与8.0的诸多新特性,如Group replication(5.7版本)、快速增加列宽(5.7版本)、The Rewriter Query Rewrite Plugin(5.7版本)、JSON(5.7和8.0版本)、UUID更好的支持(8.0版本)。

通过形象的比喻,说明了如何保证数据一致性,其要点包括,(1)每个事务发给所有节点在每个节点;(2)所有事务的认证顺序都是一样的,认证顺序由类似Paxos协议保证;(3)每个节点认证的事务可能是本地发起的本地事务,也可能是别的节点发过来的外来事务;(4)本地事务是否允许commit,只看本地认证是否成功;(5)在节点A,外来事务,是否允许在节点A执行,只看此事务在节点A认证是否成功;(6)外来事务,在允许执行前还不是事务,因此需要与本地事务一起进行冲突检测,称为认证。针对UUID,他表示它可以考虑作为InnoDB表的主键。

腾讯云PostgreSQL首席架构师李跃森:微信支付商户系统数据库探秘

图片描述

腾讯云PostgreSQL首席架构师 李跃森

腾讯云PostgreSQL首席架构师李跃森在《微信支付商户系统数据库探秘》主题演讲中表示数据库集群PGXZ基于PGXC做了性能、功能、运维能力的优化。PGXC是由日本NTT和美国EnterpriseDB公司联合发起的开源分布式数据库项目。

微信支付中订单都会流向PGXZ,接下来,李跃森分享了PGXZ的诸多核心技术。其采用了集群分区表,而没有使用PG原生的分区表,优化后(集群分区表)比优化前(继承表)在业务场景下性能提升了1~2个数量级。此外,针对数据倾斜问题,提出了数据倾斜解决方案,其中涉及到数据节点组、数据分布策略,其核心是对大商户建立白名单,白名单中的商户使用特殊的数据分布逻辑——引入交易发生的日期作为平衡因子把同一个商户的数据按照天存储到不同的shardid。此外,搭建自动两地三中心容灾架构,以保证业务正常运行。针对运维中的问题,如索引膨胀、在线磁盘空间回收、Pooler中的连接管理等, PGXZ也给出了解决和优化方案。

微博研发中心DBA张冬洪:微博Redis定制化之Tribe系统介绍

图片描述

微博研发中心DBA 张冬洪

微博研发中心DBA张冬洪在《微博Redis定制化之Tribe系统介绍》主题演讲中首先分享了微博REDIS的几大核心功能,包括无阻塞落地、数据持久化,主从增量复制的实现和在线热升级等。

接下来,他分享了Tribe系统架构,由客户端、代理、数据集群、配置服务、集群管理五大部分组成,实现了请求路由、读写分离、负载均衡、配置更新、数据聚集、动态扩容等功能,以期实现易用性、可用性、可扩展性。

百度高级软件架构师颜世光:百度万亿量级数据库的构建与应用

图片描述

百度高级软件架构师 颜世光

百度高级软件架构师颜世光在主题演讲中表示,面对Hadoop的线性扩展问题、时效性问题,百度推出了自己的解决方案,即海量实时数据库Tera。它实现了自动伸缩且稳定可靠,采用自动负载均衡技术,区间可自动分裂、自动迁移、在线合并。

在Tera设计中,百度总结了很多实践经验,颜世光现场进行了分享。在分层设计方面,问题最好解决一次,一处解决多处受益。在可用性设计方面,硬件&软件故障不可避免,应增加容错能力,降低故障恢复时间。针对低延迟设计,他建议这个过程中,慎用自动GC的语言。

评论