TokuDB 与 FT-Index 赖明星 数据库技术组 2015年1月22日.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

Linux 安裝入門與基本管理 課程目標: 學習Linux平台下的安裝設定 與 建置一個基本的Linux伺服器
厦门大学数据库实验室 刘颖杰 2014年11月15日 实习总结报告 厦门大学数据库实验室 刘颖杰 2014年11月15日.
門神 在傳統觀念中,門是居住環境中與外界相通的出入口,具有重要的屏障作用。門神顧名思義就是護宅守門的神仙,每逢過年,上至天子百官下至普通百姓,家家戶戶必在門上張貼門神,以保一家平安。 門神種類主要有宅第大門上將軍武門神、內室門戶上祈福文門神,還有童子門神、仙子門神等,形象豐富多樣,皇家貴戚還往往在畫上瀝粉貼金,十分吉祥喜慶。
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
OceanBase 0.4:从API到SQL 日照
2013华东数据库技术大会 MySQL5.6版InnoDB引擎深入剖析 演讲嘉宾:何登成
MySQL 使用者名稱:USERNAME (上限16個字元)
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
資料庫設計 Database Design.
MySQL主从同步
58同城从MongoDB到MySQL迁移之路
课程名称 黄杉 讲师的CSDN博客地址:
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
Subversion (SVN) Presented by 李明璋 R /2/21
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
Leftmost Longest Regular Expression Matching in Reconfigurable Logic
J2EE与中间件技术 ——Lab.
联想DSS并行存储 张莫穷, 联想HPC团队
關聯式資料庫.
DAT301: XML数据和关系性数据的最终结合处 – SQL Server 2005
Alibaba 数据库高可用架构 Alibaba
厦门大学数据库实验室NoSQL系列学习之
課程名稱:資料庫系統 授課老師:李春雄 博士
MariaDB Spider分库分表引擎调研
第十一章 資料庫設計與權限設定.
李亚康,齐法制,洪剑书,计算中心同事 中国科学院高能物理研究所 中国散裂中子源 2017/6/5,成都
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
Chap 10 SQL定義、操作與控制指令.
淘宝核心系统数据库组 余锋 利用新硬件提升数据库性能 淘宝核心系统数据库组 余锋
第五讲 数据的分组、合并与转换.
第 7 章 建立資料表與 資料庫圖表.
Flash数据管理 Zhou da
HBase简介与实践分享 剑英.
課程名稱:資料庫系統 授課老師:李春雄 博士
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第5章 資料倉儲的資料建置.
浅谈MySql索引及锁的应用 厦门大学数据库实验室 刘颖杰 2014年3月8日.
模块五: 数控系统参数的备份与恢复 本章学习内容.
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
CascaDB/TokuDB性能与适用场景分享
An Introduction to Cloud RDBMS
Ch4.SQL Server 2005資料庫組成員元件介紹
网易杭州研究院---胡争(博客:openinx.github.io)
Redis 客户端和工具集 潘海龙 平安健康互联网
实验二讲评 … 张榆….
第20章 MySQL数据库.
数据库技术与应用.
國立東華大學試題 系所:資訊管理學系 科目:資料庫管理 第1頁/共4頁
感謝同學們在加分題建議. 我會好好研讀+反省~
MySQL开发规范 DB组-张浩.
B+ Tree.
CH03 行銷資訊系統資料庫模組--資料庫概論
Dept. of Information Management OCIT February, 2002
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
Example: Banking Database
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第十二章 文件管理 (Chapter 5 File Management)
熟能生巧、每日一练: 五分钟打字练习.
從 ER 到 Logical Schema ──兼談Schema Integration
Cassandra应用及高性能客户端 董亚军 来自Newegg-NESC.
第六類 資料庫備份與回復.
第 7 章 建立資料表與資料庫圖表.
唐常杰 四川大学计算机学院 计算机科学技术系
第6章 硬盘实用程序 GHOST 6.0 硬盘克隆(Clone)、硬盘分区拷贝工具
MySQL执行计划解读 胡中泉.
OrientX暑期工作总结及计划 XML Group
Presentation transcript:

TokuDB 与 FT-Index 赖明星 数据库技术组 2015年1月22日

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

1. TokuDB简介 产品 团队 与innodb对比 人们对tokudb的印象

1.1 产品 07年开始开发,09年发布第一个版本,13年4月开源 TokuMX TokuDB tokudb-engine (handle) ft-index 07年开始开发,09年发布第一个版本,13年4月开源

1.2 团队 3位(Tokutek)创始人: Michael A. Bender , Martín Farach-Colton , Bradley C. Kuszmaul  TokuDB目前有5名研发: prohaska tokudb-engine研发,版本发布(一个人) Leif tokuFT研发,tokuMX研发(Bender学生) zkasheff tokuFT研发,tokuMX研发 (Kuszmaul学生) esmet tokuFT研发(Farach学生) fizzfaldt 算法优化(Bender学生)

1.3 与innodb对比 InnoDB TokuDB Index Type B-tree Fractal Tree® index Insertion Rate at Scale 100s / second 10,000s / second Compression ~2x 5x – 10x typical, up to 25x possible Hot Indexing No (hrs+) Yes (secs to mins) Hot Column Addition/Deletion/ Expansion/Rename Fast Loader No Yes Fragmentation Immunity Yes (no dump/reload downtime – no index fragmentation) Clustering Indexes Primary Key Only Multiple Eliminates Slave Lag

1.4 人们对tokudb的印象 tokudb是一个应用在MySQL和MariaDB中的存储引擎,它使用索引加快查询速度,具有高扩展性,并支持hot scheme modification。 特点: 1.插入性能比innodb快20~80倍; 2.压缩数据减少存储空间; 3.数据量可以扩展到几个TB; 4.不会产生索引碎片; 5.支持hot column addition,hot indexing,mvcc; 如何考虑使用: 1.如果要存储blob,不要使用tokudb,因为他的记录不能太大; 2.如果记录数过亿,使用tokudb; 3.如果注重update的性能,不要使用tokudb,他没有innodb快; 4.如果要存储旧的记录,使用tokudb; 5.如果要缩小数据占用的存储空间,使用tokudb;

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

2. Fractal Tree Index

2. Fractal Tree Index B-tree索引的缺陷 假设:B = 16KB 50GB / 16KB ~ 300w个node,太多了! 缺点:不适合随机读写,大部分是寻道时间!

2. Fractal Tree Index Fractal-Tree® 索引 B = 4MB (块大,整块压缩,~1MB) 50GB / 4MB ~ 1w个node,node少!

2. Fractal Tree Index 每个node有4-16个子节点(fanout) 每个node都有一个message buffer Main memory Disk 每个node有4-16个子节点(fanout) 每个node都有一个message buffer 靠近root的节点在内存,靠近leaf的节点在磁盘

2. Fractal Tree Index INSEInsert/Update/Delete/Column等,均是message,可lazy式操作,延迟小RT Main memory Disk Main memory Disk

2. Fractal Tree Index

2. Fractal Tree Index

2. Fractal Tree Index

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

3.从存储角度理解TokuDB的优势 机械硬盘 SSD 读、写速度不对称 异地更新 写前擦除 写以页为单位、擦除以块为单位 有限次的擦除操作

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

4. TokuDB的独有特性及原理 超高的压缩比例 多个聚集索引 No Slave Lag Hot Schema Change

4.1 超高压缩比例 TokuDB支持的几种压缩算法(ROW_FORMAT) Tokudb_lzma Tokudb_zlib Tokudb_quicklz Tokudb_uncompressed 压缩算法都是公开的压缩算法,为什么TokuDB压缩比例能够如此之高?其他数据库/存储引擎是否可以采用相同的压缩算法,达到同样高的压缩比例? 大块压缩

4.2 多个聚集索引 TokuDB的索引 covering index clustering index create table foo(a int primary key, b int, c int, d int); covering index:alter table foo add index cvr_xx(b, c); {key={len=xx data="b-c-a"} val={len=0 data=""}} clustering index:alter table foo add index cst_xx(b,c); {key={len=xx data="b-c-a"} val={len=xx data="d"}}

4.2 多个聚集索引 数据库中数据的组织方式 堆表 索引组织表

4.2 多个聚集索引 TokuDB Clustering Index A clustering index maintains a copy of the entire row, not just the primary key. advantages Clustering indexes can create indexes that would otherwise bounce up against the limits on the maximum length and maximum number of columns in a MySQL index. Clustering indexes simplify syntax making them easier and more intuitive to use. Clustering indexes have smaller key sizes leading to better performance.

4.3 No Slave Lag Read Free Replication When handling write rows, delete rows, and update rows log events, the MySQL replication slave uses extra queries to verify various properties of the slave's version of the table.  For a TokuDB fractal tree, these hidden queries have a very high cost. If the keys are accessed in a random sequence, then each replication event will result in a point query. These stalls are fatal to the slave's performance, and result in large slave lags. Read Free Replication

4.3 No Slave Lag Read Free Replication 主库配置必须BINLOG_FORMAT=ROW 主库上的操作不能违反唯一性约束(比如设置了"unique_checks=OFF",否则主备同步会停止),这样到TokuDB备库的所有log event都默认不需要再做"unique check" 备库只读 那么,使用了Read Free Replication,是否真的No Slave Lag 了呢? TokuDB吹牛了! Slave延迟是MySQL Server层的机制,只有Server层才能保证No Slave Lag,但是,是在牺牲性能的前提下(比如可以等备库返回,主库才认为此次操作成功, 如InnoSQL的VSR),引擎无法保证No Slave Lag,只能Less Slave Lag。

目录 TokuDB简介 Fractal-Tree Index 从存储角度理解TokuDB的优势 TokuDB的独有特性及原理 Benchmark,结论,参考资料

Benchmark

5.2 结论 TokuDB存储引擎具有插入效率高、压缩效率优秀、在线DDL等诸多优势,在写性能要求较高的业务场景中提升非常明显 TokuDB存储引擎不如InnoDB通用,它并不能取代InnoDB存储引擎 较那些“动不动声称比InnoDB快N倍”的数据库有前途

5.3 参考文献 淘宝一工《高性能存储引擎TokuDB》 Martin《Fractal-Tree-Technology-and-The-Art-of-Indexing》 赵天元、姜承尧《TokuDB存储引擎在网易生产环境中的应用实践》 《TokuDB with Tractal Tree Indexing for MySQL:Quick Start Guide for linux》 Michael A Bender《Cache-Oblivious Streaming B-Trees》 http://en.wikipedia.org/wiki/Fractal_tree_index

谢谢!