网易杭州研究院---胡争(博客:openinx.github.io)

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
LOGO 三年二班主题班会 我们的节日 —— 清明节. LOGO Page  2 《英 雄 赞 歌》 鲜花 象灿烂的火把燃烧在眼前 …… 五星红旗 象熊熊的烈焰映红了苍穹 …… 面对庄严的墓碑 我们心如潮涌 面对先烈的英灵 我们热泪盈眶 …… 耳边,仿佛还震荡着激烈的枪炮声 眼前,好像还弥漫着战斗的浓浓硝烟.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
历史人物的研究 ----曾国藩 组员: 乔立蓉 杜曜芳 杨慧 组长:马学思 杜志丹 史敦慧 王晶.
教育部高职高专英语类专业教学指导委员会 刘黛琳 山东 • 二○一一年八月
淡雅诗韵 七(12)班 第二组 蔡聿桐.
第七届全国英语专业院长/系主任高级论坛 汇报材料
小數怕長計, 高糖飲品要節制 瑪麗醫院營養師 張桂嫦.
制冷和空调设备运用与维修专业 全日制2+1中等职业技术专业.
会计信息分析与运用 —浙江古越龙山酒股份有限公司财务分析 组员:2006级工商企业管理专业 金国芳 叶乐慧 魏观红 徐挺挺 虞琴琴.
第六章 人体生命活动的调节 人体对外界环境的感知.
芹菜 英语051班 9号 黄秋迎 概论:芹菜是常用蔬菜之一,既可热炒,又能凉拌,深受人们喜爱。近年来诸多研究表明,这是一种具有很好药用价值的植物。 别名:旱芹、样芹菜、药芹、香芹、蒲芹 。 芹菜属于花,芽及茎类。
2012年 学生党支部书记工作交流 大连理工大学 建工学部 孟秀英
北京市职业技能鉴定管理中心试题管理科.
2014吉林市卫生局事业单位招聘153名工作人员公告解读
各類所得扣繳法令 與申報實務 財政部北區國稅局桃園分局 103年9月25日
初級游泳教學.
爱国卫生工作的持续发展 区爱卫办 俞贞龙.
第八章 数学活动 方程组图象解法和实际应用
本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响. 本课内容提要 一、汇率的含义 二、汇率变化与币值的关系 三、汇率变化的影响.
散文鉴赏方法谈.
比亚迪集成创新模式探究 深圳大学2010届本科毕业论文答辩 姓名:卓华毅 专业:工商管理 学号: 指导老师:刘莉
如何撰写青年基金申请书 报 告 人: 吴 金 随.
点击输 入标题 点击输入说明性文字.
國際志工海外僑校服務 越南 國立臺中教育大學 2010年國際志工團隊.
痰 饮.
學分抵免原則及 學分抵免線上操作說明會.
教 学 查 房 黄宗海 南方医科大学第二临床医学院 外科学教研室.
评 建 工 作 安 排.
厦门大学数据库实验室 刘颖杰 2014年11月15日 实习总结报告 厦门大学数据库实验室 刘颖杰 2014年11月15日.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
“十二五”国家科技计划经费管理改革培训 概预算申报与审批 国家科学技术部 2012年5月.
首都体育学院 武术与表演学院 张长念 太极拳技击运用之擒拿 首都体育学院 武术与表演学院 张长念
现行英语中考考试内容与形式的利与弊 黑龙江省教育学院 于 钢 2016, 07,黄山.
第5讲:比较安全学的创建 吴 超 教授 (O)
彰化縣西勢國小備課工作坊 新生入學的班級經營 主講:黃盈禎
重庆市西永组团K标准分区基本情况介绍.
西貢區歷史文化 清水灣 鍾礎營,楊柳鈞,林顥霖, 譚咏欣,陳昭龍.
所得稅扣繳法令與實務 財政部北區國稅局桃園分局 102年12月19日 1 1.
角 色 造 型 第四章 欧式卡通造型 主讲:李娜.
导游资格证考试概要.
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
2013华东数据库技术大会 MySQL5.6版InnoDB引擎深入剖析 演讲嘉宾:何登成
易學基礎教程 國文系99 王隆運. 易學基礎教程 國文系99 王隆運.
MySQL主从同步
课程名称 黄杉 讲师的CSDN博客地址:
校园建设中的节能与消防问题 安徽建筑工业学院 姜长征.
新形势下如何操作净水市场 疏龙林.
Alibaba 数据库高可用架构 Alibaba
Hadoop I/O By ShiChaojie.
浅谈MySql索引及锁的应用 厦门大学数据库实验室 刘颖杰 2014年3月8日.
TokuDB 与 FT-Index 赖明星 数据库技术组 2015年1月22日.
CascaDB/TokuDB性能与适用场景分享
An Introduction to Cloud RDBMS
给孩子做一面明亮的镜子 给孩子做一面明亮的镜子.
An Introduction to Database System
教育部特殊教育通報網 學生異動、接收操作說明.
JAVA 程式設計與資料結構 第十七章 Tree.
Presentation transcript:

网易杭州研究院---胡争(博客:openinx.github.io) TokuDB索引结构 网易杭州研究院---胡争(博客:openinx.github.io)

TokuDB简介 基于分形树实现的MySQL存储引擎 Tokutek公司2007年研发,2013年开源 2015年Percona公司收购Tokutek公司 TokuDB内部的K-V存储引擎为ft-index TokuMx: ft-index + MongoDB Server层代码 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. MySQL Server层 MySQL Storage层 InnoDB TokuDB MyISAM Linux 文件系统层

TokuDB特点 更高性能,更低成本! 支持事务(ACID)的MySQL存储引擎 插入性能大大高于InnoDB(分形树vs B+树) 在线执行DDL操作(不阻塞写操作) 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本!

分形树索引结构(一) 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2.

分形树结构(二) msg_buffer 先进先出队列 BasementNode(OMT) 弱平衡二叉树 增删改查期望复杂度O(logN) 扇出fanout默认[4,16]区间。

分形树结构(三) 叶子节点 数据量维持在[1M,4M]区间 数据量小于1M则合并 数据量大于4M则分裂。 非叶子节点 扇出(fanout)维持在[4,16]区间 扇出小于4则合并 扇出大于16则分裂。

分形树Insert/Update/Delete 步骤: a. 磁盘读取root节点页; b. 若root节点需分裂,则root节点一分为二,提升一个 新的Root节点; c. 若root节点是叶子节点,则插入到basementNode;否 则,append message到msg_buffer; d. 返回 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. 每次插入,Put msg到根节点就返回!

分形树Insert/Update/Delete root节点分裂 a. Root节点分裂前 A B C D E 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. C b. Root节点分裂后 A B D E

分形树Insert/Update/Delete a. B+树顺序插入热点数据分布图 分形树对应的热点数据分布图? 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. b. B+树随机插入热点数据分布图

1. 异步flush msg_buffer消息到下层节点 当非叶子节点(height>0)的数据量超过4M时,表明该节点需要 flush; 找出该节点中所有msg_buffer数据量最大child,将(node,child) 添加到flush线程中。 将(node, child )节点中msg_buffer中所有的msg,都apply到 child指向的儿子节点(页)。 判断child指向的儿子节点(页)是否需要split或者merge。 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. 1. 异步flush msg_buffer消息到下层节点 2. 维持树形结构和高度 3. 牺牲写性能、提升读性能

分形树Point-Query 查找流程: 加载Root节点,通过二分搜索确定Key落在Root节点的 键值区间Range, 找到对应的Range的Child指针。 加载Child指针对应的的节点。 若该节点为非叶子节点, 则继续沿着分形树一直往下查找,一直到叶子节点停止。 若当前节点为叶子节点,则停止查找。 apply root节点到leaf节点上所有的消息到basementNode。 返回basementNode上key对应的value。 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2.

分形树Range-Query 分形树范围查询 B+树范围查询 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. B+树范围查询

TokuDB事务(一) Memory Page.1 Page.2 Page.3 Redo log (log**.toku) Disk LRU-Cache Memory Page.1 Page.2 Page.3 Redo log (log**.toku) Disk FractralTreeIndexFile(*.tokudb) Page.8 Page.9 Page.2 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. Undo log (tokudb.rollback)

TokuDB事务(二) 事务举例: begin; insert into student set id = 2, name='openinx'; commit; 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2.

TokuDB事务(三) Begin操作: 初始化txn对象,分配xid。 添加txn到事务管理器。 Insert操作: 插入{id=2,name='openinx'}到分形树中 =>添加消息到root节点 写日志到rollback。=>写undo 写xbegin操作到redolog(xbegin操作由begin之后的下一个更新操作 写入到redo log)。 写insert操作到redo log。 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. Commit操作: 写xcommit到redo log。 写日志到rollback日志。=>写undo 从事务管理器中删除txn。 fsync redolog到磁盘。

总结(一) B+树 分形树 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2. LSM树

总结(二) 1. golang的优点:并发编程。 具体版本支持: Google MySQL 5.1+, MariaDB 10.0+,  MySQL 5.6+ 2.

参考资料 http://github.com/Percona/tokudb-engine http://openinx.github.io/2015/11/25/ft-index-implement/ http://pan.baidu.com/s/1bnFkCEV

Thank you