双十一数据库核心技术 2013-12-18 淘宝网 李圣陶(刘昆).

Slides:



Advertisements
Similar presentations
陳旺全醫師主講 健康養生茶飲 明目菊花茶 明目菊花茶 成分:菊花五錢、 500c.c 熱水沖泡 成分:菊花五錢、 500c.c 熱水沖泡 功效:可治療急慢性結膜炎、頭暈 功效:可治療急慢性結膜炎、頭暈 頭痛、口苦、口乾、高血壓 頭痛、口苦、口乾、高血壓.
Advertisements

定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
六大類食物 五穀根莖類 六大類食物 油脂類 蛋魚肉豆類 奶類 蔬菜類 水果類. 五穀根莖類 : 提供熱量 : 部份蛋白質,維生素,礦物質,及膳食纖維 包含麵 ( 及麵包饅頭 ) ,飯類,蕃薯等食物 也就是一般所稱的 " 主食 " ( 蘿蔔不是這一類,是屬於蔬菜類喔! ) 飲食建議吃三到六碗 並推薦攝取全穀類食品.
正確睡午睡精神更好 正確睡午睡 精神更好 可降血壓 增加思考能力 懶懶的冬天加 上星期一又是假日後上班,如果能夠在 中午補個眠,稍微休息一下,對於精神 的提振及下午工作效率都有幫助。但冬 天睡午覺要注意保暖以及水分的補充, 避免受涼或是血液循環不好,造成手或 腿麻痛,注意這些小地方可以讓睡午睡 更健康!
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
C A D C D.
强力打造湖北农业信息网 全面推进湖北农村信息化
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
黄金时代 黄金时代:老子,释迦牟尼,苏格拉底,孔子,庄子,耶稣…… 他们是人类智慧的顶峰,他们用人生展示了智慧与慈爱。
近年来,出现了一些制作粗糙、违背史实甚至常理的“抗战雷剧”,社会上也出现了一股“戏说”抗战剧的不良风气。
高等数学绪论 一、《高等数学》学什么? 二、《高等数学》培养学生那些能力? 三、如何考硕士研究生? 四、全国大学生数学建模竞赛是怎么回事?
台東縣蘭嶼綠島整體發展綱要計畫 (草案) 行政院經濟建設委員會 台東縣政府 99年8月4日.
第四章 商代之舞蹈 本檔案圖片來源:google圖片.
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
C语言程序设计 李伟光.
厦门大学数据库实验室 刘颖杰 2014年11月15日 实习总结报告 厦门大学数据库实验室 刘颖杰 2014年11月15日.
1.无管道净气型储药柜 2.无管道净气型通风柜 3.无管道净气型万向抽气罩
嗇色園主辦可立小學 故宮 製作日期:2011年3月21日.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
An Introduction to Database Systems
MySQL数据库服务介绍 2013 年 6 月.
狂犬病 保護你我,愛護動物 武漢國中 黃憶暄.
報告人 方萱玉 100上學期教學組業務報告.
浪漫 碰撞 蜕变 专题八 19世纪以来的文学艺术.
德国波恩明斯特广场修建的贝多芬铜像( 1845年)
迪士尼動畫 玩具總動員1.
教育雲端科技的現況與未來發展 臺北市政府教育局聘任督學 韓長澤.
阿里云计算开放平台与产品 阿里云-刘飞 2012年10月.
第4章 工业建筑特殊构造 第6篇 工业建筑设计 4.1 防爆构造 对于有爆炸危险的厂房,防爆技术设施分为两大类: 预防性技术措施
芳香小物.
課程實錄.
OceanBase 0.4:从API到SQL 日照
資料庫系統 曾俊雄.
第二章 项目一:企业厂区与车间平面设计 1.
動物的繁殖行為.
5,2 新时代的劳动者.
105年臺北市 優先免試入學 高中職免試入學 五專免試入學 報名方式宣導
11.3 国产大数据库技术 阿里巴巴OceanBase 云创存储数据立方(DataCube)
行動報告人:丁俊源 行動參與人和單位: 我們全家人 社區鄰居、管委會 新北市環保局
针刀医学移位性颈椎病 的X线诊断 浙江省仙居县中医院 柴晓峰.
MySQL主从同步
Canal开源产品介绍 taobao.
第8章 机床操作 主讲:臧红彬 博士.
劳模的风采.
提升课堂质量 助推教师成长 促进教学改革 “一师一优课,一课一名师”活动总结 河南省实验小学.
网络游戏对大学生生活的影响 英本1班 鞠申镅 汪晨茹 沈秋云 元文杰 段祺琪.
转正述职报告 乐恩公司 史航
單車失竊記心得.
翰林自然 六年級上學期 第二單元 聲音與樂器.
江西省专业技术人员 继续教育信息管理系统.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
跨校選課 說明會 主辦人:[國文系學會學權股] 葉軒如、李美玟.
課程名稱:資料庫系統 授課老師:李春雄 博士
組員:陳俊宇 陳典杰 趙俊閔 指導老師:張慶寶
面向高能所信息化系统的高可用数据库服务 王丽 计算中心 中科院高能所 第十八届全国科学计算与信息化会议.
组长:吴蔚 项目组成员:吴蔚,邱丁兰,汪琳莺
稅知多少.
MySQL开发规范 DB组-张浩.
第1章 SQL Server 2005概述 教学提示:SQL Server 2005是微软的下一代数据管理和分析解决方案,它给企业级应用数据和分析程序带来更好的安全性、稳定性和可靠性,使得它们更易于创建、部署和管理,从而可以在很大程度上帮助企业根据数据做出更快、更好的决策,提高开发团队的生产力和灵活度,以及在减少总体IT预算的同时,能够扩展IT基础架构以更好地满足多种需求。
OceanBase 0.4:从API到SQL 日照
稅知多少 國家的重要基礎.
105學年第1學期期初校務會議 圖書館工作報告 報告人: 林佩佳主任.
岗位聘任管理系统使用说明 浙江师范大学人事处 咨询电话: 、
第11章 安全管理 教学提示:数据库安全是关系数据库中的非常重要的方面,包括了系统安全、数据安全、资源管理、用户管理、权限管理、角色管理、口令管理以及授权、认证、审计等相当多方面的内容。本章讲述有关数据库安全方面的知识。 数据库系统的安全性是每个数据库管理员都必须认真考虑的问题。SQL Server.
全陽圓格局位置最好的A6-2樓 面中庭花園3房2廳2衛三面採光 捷運藍線江子翠捷運站1號出口Google距離210公尺
架构师成长感悟 吴隆烽
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
課程名稱:資料庫系統 授課老師:李春雄 博士
网校温州中学 关于显性基因与隐性基因 ——
方格紙上畫正方形.
Presentation transcript:

双十一数据库核心技术 2013-12-18 淘宝网 李圣陶(刘昆)

关于我 李圣陶 花名 刘昆,09年加入淘宝 Oracle,Mysql 数据库工程师 经历淘宝5年双十一 关注高并发数据库最佳实践 微博:@tao陶先生

双十一是什么 总理 : 消费的时间点 马云 : 中国消费者和厂家的感恩节 淘宝 : 购物狂欢节 DBA : 系统大考 每年双十一都是一次对各个系统的大考 前3分钟,是各个系统的压力高峰 总理 : 消费的时间点 马云 : 中国消费者和厂家的感恩节 淘宝 : 购物狂欢节 DBA : 系统大考

概要 2013 双十一数据库指导思想 2013 双十一数据库核心技术介绍 2013 双十一数据库案例分享 2013 双十一当天的故事

概要 2013 双十一数据库指导思想 2013 双十一数据库核心技术介绍 2013 双十一数据库案例分享 2013 双十一当天的故事

2013 双十一数据库指导思想 知己知彼,百战不殆 平时多流汗,战时少流血 决不在同一个地方跌倒两次 尽最大的努力,做最坏的打算 我们有多大能力,我们的库能撑多少的量,传统评估方法,CPU,Load 拍脑袋,要干多大的事情,业务会给我们带来多大的压力 我们真的有这么大的能力么? 充分吸取历史经验教训 万一撑不住,我们怎么办

知己 – 如何准确评估数据库集群自身支撑能力 问题 : 同样硬件配置运行不同的业务,体现出来的 能力上限完全不同 方案 : Mytest 工具,针对不同硬件不同 业务场景,使用真实硬件环境,真实业务数 据,真实业务SQL,通过压测获得数据库能力 模型,指导各个集群的扩容规模 使用大促机型备份恢复真实数据库,获得真实压测基础数据 通过tcpdump 抓包分析,各个系统真实SQL 运行数据,及比例关系 准备动态拼接条件值,模拟真实SQL Mytest 驱动,随机获取拼接值,并按照核心SQL运行比例,真实压测

知己 – 如何准确评估数据库集群自身支撑能力 Mytest 工具特点: C 语言编写 压测采用C/S架构 支持分库分表逻辑 支持多表压测 SQL语句可定制 支持多SQL事物模型 支持事物提交方式定制 SQL 拼接变量全随机 支持多个SQL 不同比例配置 自动生成多种数据类型 使用大促机型备份恢复真实数据库,获得真实压测基础数据 通过tcpdump 抓包分析,各个系统真实SQL 运行数据,及比例关系 准备动态拼接条件值,模拟真实SQL Mytest 驱动,随机获取拼接值,并按照核心SQL运行比例,真实压测

知彼 – 业务指标如何向数据库指标转换 问题 : 业务要求系统能够支撑的交易创建能力,如何把这个指标向 问题 : 业务要求系统能够支撑的交易创建能力,如何把这个指标向 各个数据库集群分解,商品集群,交易集群等分别需要多少支撑 能力 方案 : a. 业务指标通过数据挖掘分析,分配创建指标到各个交易入口 b. 通过各个交易入口的浏览转化率,功能点点击率,获得各个应 用系统的业务压力指标 c. 通过分布式追踪系统的统计数据,将业务系统压力转换为数据 库集群压力 各个数据库集群要达到如何的支撑能力,才能满足创建能力的要求 根据历史数据创建会按照如何的分配比例,从那几个入口进来,多少次详情页面的浏览会走入下单流程, 每个入口的功能点的使用率,下单页面有多少比例会更换收货地址,

知彼 – 业务指标如何向数据库指标转换 基于历史成交数据分析,如购物车下单用户比例,立即购买用户比例 基于用户行为特点分析,多少次浏览会产生一次购买,多少人中会有一个人在购买时修改收货地址 基于淘宝自研的鹰眼系统将应用压力向数据库压力转换 缓存命中率在大促期间的特点,及可能出现的缓存失效问题 淘宝自研鹰眼系统,基于Google Dapper 论文研发,大型分布式追踪系统 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/zh-CN//pubs/archive/36356.pdf

平时多流汗 – 1.真实环境压测之缓存穿透 问题 : 按照Mytest 压测结果及业务指标转换后,数据库集群进行了适 当的扩容,扩容后的集群的支撑能力上限是多少,在真实的业务 场景中是否可以达到Mytest 压测获得的能力上限 方案 : a. 关闭Put 缓存功能,逐步减低缓存命中率,让线上真实访问 压力直接打在数据库上 b. 在关闭Put 缓存功能后,一次性手动清空所有缓存集群 c. 仅针对单个DB 关闭Put 缓存功能 关闭put 缓存,手动清空缓存集群,对业务是瞬间有损的,当达到数据库集群能力上限时,会发生业务卡顿现象,需要立即恢复缓存 早期关闭Put 缓存,是以整个集群为最小操作单位,对业务损害较大,后期改进为仅针对单个分库进行关闭 下跌的尖刺点,是数据库出现瓶颈,处理能力下跌

平时多流汗 – 2.MetaQueue 消息积压 问题 : 按照Mytest 压测结果及业务指标转换后,数据库集群进行了适 当的扩容,扩容后的集群的支撑能力上限是多少,在真实的业务 场景中是否可以达到Mytest 压测获得的能力上限 方案 : 针对通过收发消息的系统,人为造成短暂消息积压,通过大量 消息瞬间涌入,实现系统支撑能力压测

决不在同一个地方跌倒两次 – 吸取以往双十一经验 网卡瓶颈问题,2012年 出现数据库集群网卡接近上限 a. Mytest进行压测的过程中,加入网卡容量指标 b. 核心集群升级至万兆网络环境 c. 普通集群网络环境升级到双A工作模式 热点问题,2012 年出现热点数据并发更新,导致MySQL Thread running 飙升 a. 引入MySQL并发控制Patch b. 引入MySQL 自我保护机制 大卖家倒订单问题 a.超大卖家走订单中心 b.一般卖家订单信息从ISV各自拉取,改为主动推送 c.独立第三套卖家读库,支撑倒订单服务 万兆环境考虑到上联收敛比,可以确保400MB 带宽,单台高峰期间网络流量达到70MB 并发控制具体原理,后面会详细介绍 超大卖家订单中心系统 ISV 拉取SQL 效率无法保证,主动推送SQL经过严格审核,高峰期前两个小时订单导出降级

做最坏的打算 – 243条双十一数据库预案 243条详尽的数据库大促预案 按照功能维度分: a. 应用降级预案 b. 流量分配预案 c. 限流保护预案 d. 主备切换预案 e. 全网公共预案 预案线上环境业务低峰期真实演练 预案管控系统,上下游联动,自动实时通知机制

一主多备切换预案 部分集群采用一主库多读库结构,提高集群读支撑能力 集群采用星形主备结构,简化异常切换场景 当主库出现问题时,先将所有备库指向新主库,新主库再放开写流量 Slave Master Slave Master 备库挂掉,直接通过TDDL将分配给它的读流量分指向其他备库 MM结构备库承担小压力读,避免延迟 主库挂到,先将所有备库指向新主库,,这时假定所有备库的数据是一致的,然后再放开写入流量 如果有部分备库有延迟,发生数据

概要 2013 双十一数据库指导思想 2013 双十一数据库核心技术介绍 2013 双十一数据库案例分享 2013 双十一当天的故事

核心技术介绍 TDDL --分布式数据库访问层 ADHA -- MySQL高可用架构 DBFree -- MySQL集群弹性伸缩系统 AliMySQL 分支 -- MySQL自我保护Patch -- MySQL热点更新Patch -- MySQL主备延迟解决方案

DB Free – DBA Free 增加读库 实例迁移 实例拆分 实例扩容 TDDL 作为数据中间层,让DB 切换对业务透明,但针对大规模集群无法通过人工操作TDDL Dbfree 让大规模集群具有批量快速透明扩容能力 增加读库– 新增备库

数据库限流 -- 数据库自我保护 超出数据库容量的自我保护 a. 数据库自身保护机制,不再依赖应用保护 b. 根据预设的容量阀值进行限流,保护DB c. 更新开发观念,数据库限流常态化 对异常SQL语句进行限制 a. 一条异常SQL会影响整个DB,甚至整个系统 b.可以对特定SQL语句限流 c. 慢查询自动超时功能 数据库自身保护机制,自己的命运自己掌握,不再依赖应用对数据库的保护 大多数开发的观念是,数据库的服务等级就像我们日常生活中的银行一样,除了有公告的例行维护以外,在日常的使用中是不能够有任何报错的,报错是一个很严重的问题。这个观念要被更新,数据库自我保护常态化 9/9 大促大卖家订单SQL 问题,开发无法快速过滤,DBA命运掌握在开发手中

热点数据更新排队 减库存操作场景,热点商品库存更新排队 a. 大量更新同一条记录并发到达数据库 b. 由于行锁机制全部进入排队队列 c. Innodb 内部维护队列锁争用及死锁检测机制性能消耗 d. 原生MySQL单行更新的性能会跌到500以下 并发控制Patch a. 淘宝MySQL内核组根据业务特点定制化开发 b. Innodb内部排队队列受innodb_thread_concurrency 限制 c. 其他请求在MySQL Server 层面排队,不占用Innodb 资源 d. 受大事物影响明显,需要应用配合保证 e. 并发控制Patch 提升单行更新能力到4000 左右 队列过长,死锁检测,kernel_mutex 争用,造成大量无用功

并行复制 -- 淘宝MySQL主备延迟解决方案 解决主备库复制延迟问题 通过动态参数配置开启及并行度 支持数据库,表级别,事物级并行

概要 2013 双十一数据库指导思想 2013 双十一数据库核心技术介绍 2013 双十一数据库案例分享 2013 双十一当天的故事

Cache 失效线上压测抖动

Cache 失效线上压测抖动 线上压测远远低于4W QPS 的目标 整个系统会Hang住2秒左右,同时CPU飙升,MySQL卡住,应用大面积报警 解决方法 a. 数据库进一步拆分,降低连接数 d. MySQL替换为AliMySQL限流版本 压测结果远远低于预期,线下Mytest 压测可以达到4W 考虑到这个是新上的万兆环境,新万兆网卡的驱动,之前有收到网络部分邮件,这个版本驱动非标准化,首先调整了万兆网卡驱动,调整后没有明显效果 另外一个与之前线下压测不同的点就是连接数,应用服务器达到的规模,Mysql 单实例链接数上万,同时在发生抖动的2-3秒内,发现大量的kernel_mutex ,怀疑与高连接数下同时并发量过大,造成Mysql 锁资源争用导致抖动 FIO在Hang 的瞬间,有IO Wait出现,移除redolog 降低FIO 抖动几率 在排查问的过程中,发现一些硬件参数不标准,比如FIO 供电问题,在FGC时需要请求更高的电压以加快GC完成速度。BIOS 中c-stats 参数问题,sysprofile 未调整为最高性能模式问题 在追查商品库问题的同时,改进了Cache 失效压测方法,从以整个Cache 集群为操作单位,改进为以单个DB为操作单位 当Mysql 出现卡顿的现象是,必须进行干预,或者应用限流保护数据库,或者数据自身限流,否则在持续压力的情况下,DB 很难缓解

硬件导致抖动问题 正常压力下集群内各个单机表现稳定 压力摸高的过程中发现一台主机,RT 比集群内其他主机多400us 经排查确认原因为主机维修后BIOS参数未调整 魔鬼都出在细节 400 us 的偏差,基本感觉不到 只有通过大压力的检验,细心的观察诊断 如果这个问题没有及时发现,一部分买家的购物体验在双十一当天就会受到影响

降低并发 提升性能 低并发高性能 有序请求,避免不必要的锁争用,Mysql 拥有更好的处理能力 应用端,数据库端双重排序

概要 2013 双十一数据库指导思想 2013 双十一数据库准备阶段总结 2013 双十一数据库新技术使用介绍 2013 双十一当天的故事 在应用端进行对减库存操作排队 根据itemId来进行排队,相同itemId的减库存操作会进入串行化排队处理逻辑 应用端的排队只能做到单机内存排队 db端也加上排队策略, “并发控制” 低并发,高性能

全网公共预案 读写分流,各个读业务按照不同比例分配读流量到备库, 降低主库压力,让主库有更多余量来抗写入 数据库集群开启自我保护 写入型数据库修改双一参数 sync_binlog flush_log_at_trx_commit 零点高峰前调大修改脏页比例 innodb_max_dirty_pages_pct

核心系统双十一零点高峰指标 单机峰值最高达到 1.5W QPS / 1.2W TPS 单机网络达到 75MB 交易创建数据库响应时间 500us

DCP 大盘监控系统 实时展现性能采集数据 图形化展示核心集群水位状态 详细指标信息精确到每个实例 网络包流量自动异常监控

欢迎加入阿里数据库团队 Java 后端开发 Python , C/C++ 开发 热爱数据库 来往 陶先生 微博私信 @tao陶先生 产品DBA 支持淘宝上百条业务线 基础DBA 运维淘宝上万台数据库服务器 工具开发组,自动化工具平台 Mysql 内核开发,定制化Patch OB ,Hbase 分布式数据库团队 来往 陶先生 微博私信 @tao陶先生 邮箱地址 liukun@taobao.com

Q & A