数据库系统设计漫谈童家旺课件.ppt

上传人(卖家):三亚风情 文档编号:3325433 上传时间:2022-08-20 格式:PPT 页数:46 大小:1.95MB
下载 相关 举报
数据库系统设计漫谈童家旺课件.ppt_第1页
第1页 / 共46页
数据库系统设计漫谈童家旺课件.ppt_第2页
第2页 / 共46页
数据库系统设计漫谈童家旺课件.ppt_第3页
第3页 / 共46页
数据库系统设计漫谈童家旺课件.ppt_第4页
第4页 / 共46页
数据库系统设计漫谈童家旺课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、数据库系统设计漫谈讲师:童家旺,阿里集团数据库架构师主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾数据库基本问题调查大家都使用过哪些数据库?哪些内容是数据库系统的关键点?常见的数据存储传统的数据库系统OracleDB2、SQL ServerMySQL、PosgreSQL分布式数据库Google Spanner&BigTable&MegaStoreOceanBase、Hbase缓存服务器 KeyValue StoreTairMemcacheDRedis数据库的主要特性ACID 原子性(Atomicity

2、)完整性(Consistency)隔离性(Isolation)持久性(Durability)Relation SQLStructured Query Language(即SQL)A Relational Model of Data for Large Shared Data Banks(By Edgar Codd)RDBMS之前的数据库的问题不支持数据独立性数据库与应用系统之间的强耦合应用系统的复杂度应用系统本身的规模较小(性价比?)关系数据库的主要业务场景Billing(记账类业务,电信、银行)Booking(订票类业务,航空)Inventory(库存管理,零售)这些业务的共同特征是什么啊?

3、关系数据库的关系来自哪里?这是关系的一个来源另一个来源是NormalizationACID的基础概念Transaction的概念借自Contract Law一手交钱、一手交货(Atomicity)不会出现库存为负,也不会出现资金为负的情况(Consistency)可同时与多人进行交易(Isolation)离柜概不负责(Durability)Atomicity要么全部成功,要么全不成功Consistency写入数据库的数据必须满足所有定义的约束规则(主键、唯一键、外键等约束)Isolation确保并发执行的事务就如同串行执行的事务一样,保证系统状态(state)的一致性。Durability一旦

4、提交,哪怕出现掉电、Crash也不会丢数据几个基础概念Write-Ahead LogRedo LogicalPhysicalPhysiologicalUndo事务槽事务标识SCN 系统变更统一时间戳(逻辑时钟)如何实现原子性一个简单购物场景A卖一件衣服给BA的衣服库存-1A的资金+NB的衣服库存+1B的资金-N如何实现原子性(2)事务槽为变更入口,单一入口(原子)每个变更的记录都包含事务槽信息数据库中如何保证C通过Read Dirty与锁来解决PK/UK通过Ref检查来解决FK的问题(需要Index)通过PreCommit trigger来做Null以及Check数据库中如何保证I锁控制不同粒

5、度的锁(表级、块级、记录级)不同维度的锁(数据相关锁,内存相关锁)MVCCSnapshot IsolationBlock Image+SCN+Undo Image 判断差别在于读取哪个时间点的Snapshot数据库中如何保证DLog before DataLGWR before DBWnFlush Log on CommitDurability On CommitCheckpoint Before Redo Log File ReuseACID的代价不同的Isolation对应不同的代价SerialiazabilityRead Committed(Through Snapshot)Read D

6、irty?(没有并发控制)不同的Durability级别Flush on CommitFlush on Timeout(Time Range)Flush on Batch(commits count?)主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾Normalization先做个小游戏用笔记录下学员名单、讲师名称、讲师简介、课程名称、课程简介调整下讲师(童家旺金光丁)以及对应的讲师简介再次调整下课程(数据库概论分布式数据库原理)简介Normalization解决的问题更新一个源头不会出现异常每份数据只

7、有一个源头如何保证多份数据的一致性?一份数据有多少个源头?同一份数据被重复了多少次?对应的存储空间?为了存储耗费的其它资源?Normalization带来的问题表之间的依赖(关系依赖,耦合)表关联的成本(关联开销,可能的IO开销)系统扩展的复杂度(解耦合)如何权衡Normalization尽量不要对静态数据做Normalization除非你希望节约存储空间考虑范式化 Vs 反范式化的投入产出为什么很多IT新人喜欢Normalization那是因为他们的老师告诉他们需要Ali的实际情况适度的使用关键在于判断业务之间的耦合性主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析

8、(Normalization)数据库的扩展性浅析常见数据库系统回顾一个小实验如何将2个人从这里送到杨浦?如何将5个人从这里送到杨浦?如何将50个人从这里送到杨浦?如何将500个人从这里送到杨浦?如何将5000个人从这里送到杨浦?如何将50000个人从这里送到杨浦?解决扩展性的根本途径数据库的扩展性问题做数据库架构、系统架构与上图差别在于:如何满足如下的要求检索问题Relation并发问题IsolationConsistency(UK)一致性问题Isolation速度问题Performance,Durability+Isolation数据库检索问题如何从班级的联系方式中找到XX的电话号码?如何从

9、公司的联系方式中找到XX的电话号码?如何从移动公司的系统中找到XX的电话号码?如何从移动、电信、联通的数据库找到XX的电话号码?数据库的并发问题同时有多个人要购买手机号?如何保证大家购买的不是同一个手机号?如何支持几百、几千、几万人同时购买手机号?数据库的一致性问题如何保证大家看到的库存有效?如何保证读取的信息是准确的?库存的变更如何实时的提供给每一个人看到?数据库的性能问题?如何快速的让1个人买到号码?有多快?如何快速的让10个人买到号码?要不要排队?一个服务员?一个营业厅?Performance Vs Scalability1.当只有一个人访问时,速度如何?2.当有很多人访问时,速度如何?

10、大家都同样快?如果满足1表示Performance很好?如何能较好的满足2表示系统有较好的Scalability一致性问题再探讨新浪发的微薄需要强一致吗?ITPUB的论坛需要强一致吗?当当的图书描述信息需要强一致吗?12306的火车票库存信息需要强一致吗?支付宝/财付通的账户余额需要强一致吗?中行信用卡/招商银行卡的账户信息需要强一致吗?数据状态机的分类何谓状态机简单的理解是,计算机中会发生变化的数据都是状态机,这个数据的值不同可能会带来不同的后果。分类:按照三个维度:时间、信息含金量、变更频率持续时间信息含金量变更频繁度例子瞬时高少Shopping Card Session(分)瞬时低少Lo

11、gin Cookie(分)中等时长高少Ecommerce Billing(天)中等时长中少Product Catalog(年)中等时长高多Flight/Train Inventory(月)无限时长中少User Profile(年)无限时长高多Bank Account Balance(年))Cache的基本概念Cache的定义Caching is a temp location where I store data in(data that I need it frequently)as the original data is expensive to be fetched,so I can

12、retrieve it faster.台湾的翻译为“快取”,大陆为“缓存”Cache的特征有Backend的内容处理的效率比走Backend要快与Backend的内容之间可能会不一致Cache的本质Through Relaxing Consistency to Improve ScalabilityCache的设计考虑缓存的一致性维护问题数据的具体读写比商品信息?库存信息?用户信息?账户余额?Backend数据变更频率业务对一致性的要求使用何种缓存策略Write Through Vs Write Back Vs Write Back with CompensateMemcached是Cache

13、吗?It Depends如果内容有Backend?是!如果内容没有Backend?否!案例新浪微博的计数器?淘宝、当当的记录在缓存中的购物车信息?主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾数据存储的基本需求存储数据读写的性能(Hash查找、B*Tree查找)数据的可靠性(Durability)支持如何避免单点故障带来的数据丢失(数据保护)是否支持多维查询(基于关系的查询)对Replication的支持如何?支撑Scalability的复杂度MySQL(Innodb)&Oracle传统的关系数据库支

14、持多维索引Oracle的支持较好MySQL要到5.6才比较好的支持Index内Filter较好的支持数据的一致性成熟的MVCC设计成熟的Replication设计简单查询的效率略低于MemcachedB*Tree的成本MVCC带来的额外成本MySQL&Oracle在进行数据库扩展时只能依赖于应用层的拆分(即:Sharding)目前Sharding支持由TDDL实现维护成本会相对较高维护复杂度也比较高软件的成本Oracle为商业软件,有License费用MySQL为开源软件,没有软件本身的费用Tair简介Tair主要技术点主要定位为分布式Key/Value 缓存Data Server的具体实现M

15、emory Engine的实现类似于MemCachedConfig Server的实现基于Consistent Hash实现集群的数据分布基于此做Replication做节点的故障检测与剔除新加入节点时需要基于CHash做节点RebalanceHashmapSlab ListTair mdb内存结构Consistent Hash简介OceanBase系统架构44l主控服务器RootServer:主+备,数据定位/全局Schema/机器管理l动态数据服务器UpdateServer:主+备,实时修改(内存+SSD)l静态数据服务器ChunkServer:多台,静态数据存储(磁盘或SSD)l动态数据

16、不断地被合并到静态ChunkServer中实现分布式存储JavaClientChunkServerChunkServerChunkServerChunkServerRootServer/UpdateServer(主)RootServer/UpdateServer(备)OceanBase简介UpdateServer负责所有的写入本质上是一个读写分离的技术对实时更新数据的查询可以在US的备库进行ChunkServer理论上可以无限扩展查询操作需要合并US+CS的结果Root Server的职责类似于Tair的Config Server相对于Tair的优势可以进行Full Table扫描可以进行范围数据查询更好的ACID支持(目前支持MVCC)不支持外键+唯一键(FK+UK)集团现有数据库特性粗略比较OracleMySQLTairOceanBaseHBase读性能高高高中中写性能高中高高高一致性高高低高-(除FK/UK)中数据保护高(双份存储)中+(单机故障)低高(网络提交)高多维查询高中(索引稍弱)无无无备库高(Physical)高-(Logical)低(Logical)高-(Logical)中+(Logical)读扩展能力中高高高高写扩展能力低低高中高扩展复杂度高中低低低软件成本高无研发费用研发费用无

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库系统设计漫谈童家旺课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|