【IT168 DTCC现场报道】2016年5月12日-14日,第七届中国数据库技术大会(DTCC 2016)在北京国际会议中心拉开帷幕。作为国内数据库与大数据领域最大规模的技术盛宴,在为期三天的会议中,大会将围绕MySQL、NoSQL、Oracle、缓存技术、云端数据库、智能数据平台、大数据安全、数据治理、大数据和开源、大数据创业、大数据深度学习等领域的前瞻性热点话题与技术展开深入探讨,并邀请一大批国内顶尖的技术专家来进行分享,以满足广大从业人士和行业用户的迫切需要。
本届是大会创办以来,规模最大,参会人次、参展合作伙伴最多的一次盛会,云集了来自五湖四海的5000余名IT精英,相聚在这里,共话数据库技术发展潮流,共赴大数据浪潮之巅。我们来到了“数据库性能优化”专场,人大金仓数据库业务部总监冷建全进行了题为《软件性能工程在数据库优化中的应用》主题演讲。
嘉宾介绍:冷建全,人大金仓数据库业务部总监,毕业于中国人民大学信息学院,获工学硕士学位。毕业后加人大金仓,现为人大金仓公司数据库业务部总监,主要负责金仓数据库的架构设计和研发。对数据实现技术有深入研究,拥有多年的研究和开发经验。
《软件性能工程》简介
据冷建全介绍,《软件性能工程》一书描述了一种系统的、定量的方法,用于构建符合性能目标的软件系统。需求的建模、性能检测体系的建立已经有了广泛的应用,作为解决方案,书中提到了几个SPE“性能模式”,以个人的经验看是可以适用于不同的系统。
接下来冷建全将分享一下这几个性能模式在数据库性能优化中的实践。主要描述在数据库优化中使用软件性能工程的几个性能模式:Fast Path(快速通道)、Batching(批量)、Flex Time(弹性时间)、Fist Things First(要事优先)、Coupling(耦合)、Alternate Routes(替代路径)来解决性能问题的经验。
Fast Path(快速通道)
用CACHE实现Fast Path,冷建全表示,一类是利用cache制造fast path,IT系统中的常见做法,数据库中也有很多。我们的数据库产品还提供result cache,对于变更较小使用频繁的数据很有效,例如人事变动很少的人员信息,定期注册的信息等,同样我们也有各种统计视图用于定位需要cache的对象。另一个类做法是通过数据组织跳过不必要的数据,例如索引、列存都是这类做法的应用。
Batching(批量)
多个请求,完成请求需要的初始化、准备、结束等操作的开销较大、甚至比起处理请求的开销还要大。冷建全举了一个某市政务数据中心的案例具体解释,大量小事务提交sync影响吞吐量,批量提交解决sync问题,更高大上的方案;
集群产品的批量INSERT,解决INSERT INTO SELECT的额外通信代价;
风险,对响应时间的影响。
Flex Time(弹性时间)
业务上能调整是最理想的状态,业务不能调整的(春运、秒杀),小范围的Flex Time也是可行的,例如应对秒杀的异步队列,其实是小时间段的Flex Time.
Fist Things First(要事优先)
时间管理也会提到这个原则,工作的安排也是同理的。某开发平台的框架只读事务不提交,导致长期持有大量shared lock,维护工作无法进行,加上后来的ETL上线,需要TRUNCATE通过封锁的优先级来保证不受这种影响。
Coupling(耦合)
东西很多,带着麻烦,用着也麻烦,要用多个工具组合工作就很惨。特别适用于应用/服务器通信和function/procedure的优化,看描述可能第一时间想到JPA系列framework,这些框架的设计已经考虑了这些问题我们在做优化的过程中也需要借鉴框架的思想。
Alternate Routes(替代路径)
高使用率对象被多个请求独占的使用导致处理串行化,解决方案是找到alternate routes分散并行。
人大金仓是谁?
北京人大金仓信息技术股份有限公司系中国电子科技集团公司(CETC)成员企业,是中国自主可控数据库、大数据相关产品及解决方案的提供商。人大金仓由中国人民大学一批在国内开展数据库教学、科研、开发的专家于1999年发起创立,公司先后承担了国家“核高基”、“863”等重大专项,研发出了具有国际先进水平的大型通用数据库产品,并广泛应用于政府、国防军工、能源、金融、医疗等高信息安全领域。
在产品层面包括:操作型业务:KingbaseES系列;GIS组件:Kingbase-iwhere Spatial Engine;高可用集群组件:HA、DataGuard;负载均衡集群组件:RAC;逻辑日志复制工具:Replicator;分析型业务:KingbaseDBCloud.
在实施与维护方面包括:根据用户需要设计相应的产品方案;将用户的应用平滑移植到Kingbase系列产品或其他开源产品;提供Kingbase系列和其他开源数据库产品的运维服务。
在解决方案层面包括:大数据中心解决方案;政府大数据应用解决方案;智慧城市大数据应用解决方案;大数据分析解决方案。