SlideShare a Scribd company logo
1 of 30
数据库通用设计思路浅析
Alexyang
无线产品部开发组
20080804
提纲
体系结构
系统实现的关键技术
体系结构
服务器核心系统总体结构
客户客户 客户客户 客户客户
TCP/IP 网络TCP/IP 网络
连接监听线程连接监听线程
总控线程总控线程 检查点线程检查点线程
工作线程工作线程
工作线程工作线程
工作线程工作线程
任务队列任务队列
系统 / 日志缓冲系统 / 日志缓冲
读 / 写线程读 / 写线程 日志线程日志线程
DBDB
会话线程会话线程
线索主要有
 控制台线索
 工作线索
 I/O 线索
 会话线索
 连接监听线索
 日志线索
 检查点线索
 备份线索
工作线程工作流程
从任务队列中取得任务
是否为通
讯请求
是
通讯请求的处理 SQL 语句任务的处理
否
会话线程
处于死循环中,保持接收客户请求,放入
系统任务队列,由工作线索取出执行。
连接监听线索
创建结构地址和 socket ,进行两者的绑定
,开始监听。不断检查是否有客户端的连
接请求,若有则将它放入客户端队列,继
续检查是否有新的客户端来的请求。
控制台线索
当数据库用 console 启动时,有些数据库是
支持在该 console 下输入命令以得到相关信
息,比如锁信息等等。
日志线索
进行日志的刷盘操作。
系统实现的关键技术
服务器主要模块
 通讯子系统
 语言分析器
 查询优化器
 解释执行器
 系统缓冲区管理子系统
 并发控制 / 封锁子系统
 事务管理子系统
 日志管理模块
 备份和恢复模块
 物理存储模块
语法 / 词法分析
负责解析 SQL 命令和过程性语句块
过滤注释 , 解析参数
使用成熟的工具(如 YACC/LEX )生成
灵活的语法规则定义
便于语法的扩展与修改
生成统一格式的语法树
举例
from_tv_list :
from_tv
{
$$ = (par_from_tv_list_t *)new_node(PAR_FROM_TV_LIST,1);
$$->un_1.from_tv_list_1.from_tv = $1;
}
| from_tv ',' from_tv_list
{
$$ = (par_from_tv_list_t *)new_node(PAR_FROM_TV_LIST,2);
$$->un_1.from_tv_list_2.from_tv_list = $3;
$$->un_1.from_tv_list_2.from_tv = $1;
};
struct par_from_tv_list_struct
{
ulint par_type; // 值为 PAR_FROM_TV_LIST : 1134
ulint par_tag; //1 :规则 1 ; 2 :规则 2
ulint par_lineno;
union
{
struct
{
par_from_tv_t *from_tv; //$1
}from_tv_list_1; // 规则 1
struct
{
par_from_tv_t* from_tv; //$1
par_from_tv_list_t* from_tv_list; //$3
}from_tv_list_2; // 规则 2
}un_1;
};
对应的语法结构
Select * from t1, t2, t3;
par_from_tv_list_str
uct 结构
par_from_tv_list_t*
from_tv_list;
par_from_tv_t*
from_tv
par_from_tv_list_str
uct 结构
par_from_tv_list_t*
from_tv_list;
par_from_tv_t*
from_tv
par_from_tv_list_str
uct 结构
par_from_tv_t*
from_tv
par_from_tv_struct
结构
T1
par_from_tv_struct
结构
T2
par_from_tv_struct
结构
T3
规
则
2 规
则
1
语义分析
数据库对象名字解析
合法性检查
内部 ID 的转换
权限检查
语法树数据结构的简化与预处理
DDL 语句分解为对系统表的 DML
视图对象的替换等
代价优化器
 接受语义分析的输入
 统计信息的分析
 数据分布
 统计直方图
 代价的计算
 基于统计信息
 操作符号的选择
 基于成本的最优执行路径选择
 生成优化的执行计划
基于操作符的执行计划
物理操作符
功能简单专一 , 完成特定的数据库操作
如 : 连接 , 过滤 , 排序等
执行计划
操作符的组合 , 构成树型的执行计划
执行时 , 数据从叶子向根流动
在根汇集成结果集 , 或者得到结果状态
计划被自动缓存 , 以备重用
执行计划 1
执行计划 2
系统缓冲区管理子系统
内存池:使用伙伴系统管理内存。
内存堆:多次申请一次释放,提升了内存
使用效率,同时也很好地解决了内存泄漏
的问题。
数据缓冲区:采用 LRU 提高命中率,提升
I/O 性能。
日志缓冲区:集中写入,提升性能。
事务和线程的分离
事务对应于用户连接 / 会话 (SESSION)
每个连接,有一个活动的事务
工作线程是共享资源
一组工作线程,协同工作,为所有的事务
服务
数据库对象的封锁失败,导致事务暂停,
却不会阻塞工作线程
提高 CPU 的利用率
事务和线程的分离
事务对应于用户连接 / 会话 (SESSION)
每个连接,有一个活动的事务
工作线程是共享资源
一组工作线程,协同工作,为所有的事务
服务
数据库对象的封锁失败,导致事务暂停,
却不会阻塞工作线程
提高 CPU 的利用率
数据库锁和线程锁
数据库锁
针对数据库对象
用户可干预
锁定失败 , 导致事务暂停或事务回滚
线程锁
针对核心系统资源
锁定失败 , 导致线程被挂起
用户不能干预
设计时 , 采用严格的规则 , 防止出现死锁
回滚段
 记录每一个数据库操作的逻辑动作
 插入 / 删除 / 更新
 在对聚集索引更新时 , 生成回滚记录
 每个事务对应一个回滚段
 事务回滚时 , 扫描回滚段 , 做插入 / 删除 / 更新的
反动作
 回滚记录也是数据复制的基础
重做 (REDO) 日志
 日志数据的构成:物理页的修改信息
 日志中不记录逻辑上的数据库操作,如 : 插入,删除等
 逻辑上的数据库操作,被记录在回滚段上
 恢复时,以完整的物理事务为单位
 最后一个不完整的物理事务被丢弃
 日志对回滚段和普通的数据文件同样处理
 物理恢复完成后,按照回滚段上的逻辑操作,对
未提交的事务做相应的反动作,以取消这个事务
分层设计 / 优化
隔离 CPU 的特性
高地址高位 (INTEL)
低地址高位 (SPARC)
隔离 OS 特性
文件系统
线程
同步原语
充分利用 LINUX 2.6 核心
问题 ?
谢谢 !

More Related Content

Similar to 腾讯大讲堂42 数据库内核设计思路浅析

腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析topgeek
 
Practices of equipment communication v1.0
Practices of equipment communication v1.0Practices of equipment communication v1.0
Practices of equipment communication v1.0yaohung
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维guiyingshenxia
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维colderboy17
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconYiwei Ma
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)vanadies10
 
1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事llkk0914
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台guiyingshenxia
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台mysqlops
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林corlin chen
 
数据中心网络架构与全球化服务-Qcon2011
数据中心网络架构与全球化服务-Qcon2011数据中心网络架构与全球化服务-Qcon2011
数据中心网络架构与全球化服务-Qcon2011Yiwei Ma
 
baidu fuye
baidu fuyebaidu fuye
baidu fuyedachmx
 
百度 fuye
百度 fuye百度 fuye
百度 fuyedachmx
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计mysqlops
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的hnoutman
 
20100629 中山大学交流
20100629 中山大学交流20100629 中山大学交流
20100629 中山大学交流leonsandy888
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
构建高可用数据库监控系统
构建高可用数据库监控系统构建高可用数据库监控系统
构建高可用数据库监控系统haiyuan ning
 

Similar to 腾讯大讲堂42 数据库内核设计思路浅析 (20)

腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析腾讯大讲堂42 数据库内核设计思路浅析
腾讯大讲堂42 数据库内核设计思路浅析
 
Practices of equipment communication v1.0
Practices of equipment communication v1.0Practices of equipment communication v1.0
Practices of equipment communication v1.0
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维网易 李弈远 网易服务集成框架的构建与运维
网易 李弈远 网易服务集成框架的构建与运维
 
Alibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qconAlibaba server-zhangxuseng-qcon
Alibaba server-zhangxuseng-qcon
 
Mocha Bsm
Mocha BsmMocha Bsm
Mocha Bsm
 
淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)淘宝网架构变迁和挑战(Oracle架构师日)
淘宝网架构变迁和挑战(Oracle架构师日)
 
1.4亿在线背后的故事
1.4亿在线背后的故事1.4亿在线背后的故事
1.4亿在线背后的故事
 
阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台阿里云 张旭 集群运维管理平台
阿里云 张旭 集群运维管理平台
 
集群运维管理平台
集群运维管理平台集群运维管理平台
集群运维管理平台
 
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林E tom ngoss规范及siebel系统在电信行业的应用 陈永林
E tom ngoss规范及siebel系统在电信行业的应用 陈永林
 
数据中心网络架构与全球化服务-Qcon2011
数据中心网络架构与全球化服务-Qcon2011数据中心网络架构与全球化服务-Qcon2011
数据中心网络架构与全球化服务-Qcon2011
 
baidu fuye
baidu fuyebaidu fuye
baidu fuye
 
百度 fuye
百度 fuye百度 fuye
百度 fuye
 
从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计从运维系统的开发谈安全架构设计
从运维系统的开发谈安全架构设计
 
基于Erlang的
基于Erlang的基于Erlang的
基于Erlang的
 
20100629 中山大学交流
20100629 中山大学交流20100629 中山大学交流
20100629 中山大学交流
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
构建高可用数据库监控系统
构建高可用数据库监控系统构建高可用数据库监控系统
构建高可用数据库监控系统
 

More from George Ang

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...George Ang
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarizationGeorge Ang
 
Huffman coding
Huffman codingHuffman coding
Huffman codingGeorge Ang
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textGeorge Ang
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿George Ang
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势George Ang
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程George Ang
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qqGeorge Ang
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间George Ang
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagementGeorge Ang
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享George Ang
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍George Ang
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享George Ang
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)George Ang
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向George Ang
 
腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化George Ang
 

More from George Ang (20)

Wrapper induction construct wrappers automatically to extract information f...
Wrapper induction   construct wrappers automatically to extract information f...Wrapper induction   construct wrappers automatically to extract information f...
Wrapper induction construct wrappers automatically to extract information f...
 
Opinion mining and summarization
Opinion mining and summarizationOpinion mining and summarization
Opinion mining and summarization
 
Huffman coding
Huffman codingHuffman coding
Huffman coding
 
Do not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar textDo not crawl in the dust 
different ur ls similar text
Do not crawl in the dust 
different ur ls similar text
 
大规模数据处理的那些事儿
大规模数据处理的那些事儿大规模数据处理的那些事儿
大规模数据处理的那些事儿
 
腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势腾讯大讲堂02 休闲游戏发展的文化趋势
腾讯大讲堂02 休闲游戏发展的文化趋势
 
腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程腾讯大讲堂03 qq邮箱成长历程
腾讯大讲堂03 qq邮箱成长历程
 
腾讯大讲堂04 im qq
腾讯大讲堂04 im qq腾讯大讲堂04 im qq
腾讯大讲堂04 im qq
 
腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间腾讯大讲堂07 qq空间
腾讯大讲堂07 qq空间
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement腾讯大讲堂10 customer engagement
腾讯大讲堂10 customer engagement
 
腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享腾讯大讲堂11 拍拍ce工作经验分享
腾讯大讲堂11 拍拍ce工作经验分享
 
腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍腾讯大讲堂14 qq直播(qq live) 介绍
腾讯大讲堂14 qq直播(qq live) 介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
腾讯大讲堂15 市场研究及数据分析理念及方法概要介绍
 
腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享腾讯大讲堂16 产品经理工作心得分享
腾讯大讲堂16 产品经理工作心得分享
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向腾讯大讲堂19 系统优化的方向
腾讯大讲堂19 系统优化的方向
 
腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化腾讯大讲堂13 soso访问速度优化
腾讯大讲堂13 soso访问速度优化
 

腾讯大讲堂42 数据库内核设计思路浅析