数据库应用与设计-大型数据库系统架构设计方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库应用与设计-大型数据库系统架构设计方法课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 设计 大型 系统 架构 方法 课件
- 资源描述:
-
1、第三章大型数据库系统应用设计方法可扩展性、高可用性及负载均衡基本概念可扩展性(Scalability|伸缩性):在一些大的系统中,预测最终用户的数量和行为是非常困难的,可扩展性是指系统适应不断增长的用户数的能力。提高这种并发会话能力的一种最直观的方式就增加资源(CPU,内存,硬盘等),集群是解决这个问题的另一种方式,它允许一组服务器组在一起,像单个服务器一样分担处理一个繁重的任务。高可用性(High availability):单一服务器的解决方案并不是一个健壮方式,因为容易出现单点失效。像银行、账单处理这样一些关键的应用程序是不能容忍哪怕是几分钟的死机。它们需要这样一些服务在任何时间都可以访
2、问并在可预期的合理的时间周期内有响应。集群方案通过在集群中增加的冗余的服务器,使得在其中一台服务器失效后仍能提供服务,从而获得高的可用性。负载均衡(Load balancing):负载均衡是集群的一项关键技术,通过把请求分发给不同的服务器,从而获得高可用性和较好的性能。一个负载均衡器可以是从一个简单的Servlet或Plug-Ins(例如一个Linux box利用ipchains来实现),到昂贵的内置SSL加速器的硬件。除此之外,负载均衡器还需执行一些其他的重要任务,如“会话胶粘”让一个用户会话始终存在一个服务器上,“健康检查”用于防止将请求分发到已失效的服务器上。有些负载均衡器也会参与我们下
3、面将要谈到“失效转移”过程。基本概念容错(Fault tolerance):高可用性意味着对数据正确性的要求不那么高。在J2EE集群中,当一个服务器实例失效后,服务仍然是有效的,这是因为新的请求将被冗余服务器处理。但是,当一个请求在一个正在失效的服务器中处理时,可能得到不正确的结果。不管有多少个错误,容错的服务应当能确保有严格的正确的行为。失效转移(Failover):失效转移是集群中用来获取容错能力的另一项关键的技术。当一个结点失效后,通过选择集群中的另一个结点,处理将会继续而不会终止。转移到另一个结点可以被显式的编码,或是通过底层平台自动地透明地路由到另一个服务器。等幂方法(Idempot
4、ent methods):等幂方法是指这样一些方法:重复用相同的参数调用都能得到相同的结果。这些方法不会影响系统状态,可以重复调用而不用担心改变系统。例如:getUsername()就是等幂的,而deleteFile就不是。当我们讨论HTTP Session失效转移和EJB失效转移时,它是一个重要的概念。讨论的背景主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库基本问题调查大家都使用过哪些数据库?哪些内容是数据库系统的关键点?常见的数据存储传统的数据库系统 Oracle DB2、SQL Server MySQL、PosgreSQL分
5、布式数据库 Google Spanner&BigTable&MegaStore OceanBase、Hbase缓存服务器 KeyValue Store Tair Memcached Redis数据库的主要特性ACID 原子性(Atomicity)完整性(Consistency)隔离性(Isolation)持久性(Durability)Relation SQL Structured Query Language(即SQL)A Relational Model of Data for Large Shared Data Banks(By Edgar Codd)RDBMS之前的数据库的问题不支持数据
6、独立性数据库与应用系统之间的强耦合应用系统的复杂度应用系统本身的规模较小(性价比?)关系数据库的主要业务场景Billing(记账类业务,电信、银行)Booking(订票类业务,航空)Inventory(库存管理,零售)这些业务的共同特征是什么?关系数据库的关系来自哪里?这是关系的一个来源另一个来源是NormalizationACID的基础概念Transaction的概念借自Contract Law 一手交钱、一手交货(Atomicity)不会出现库存为负,也不会出现资金为负的情况(Consistency)可同时与多人进行交易(Isolation)离柜概不负责(Durability)Atomic
7、ity 要么全部成功,要么全不成功Consistency 写入数据库的数据必须满足所有定义的约束规则(主键、唯一键、外键等约束)Isolation 确保并发执行的事务就如同串行执行的事务一样,保证系统状态(state)的一致性。Durability 一旦提交,哪怕出现掉电、Crash也不会丢数据几个基础概念Write-Ahead LogRedo Logical Physical PhysiologicalUndo事务槽事务标识SCN 系统变更统一时间戳(逻辑时钟)如何实现原子性一个简单购物场景A卖一件衣服给BA的衣服库存-1A的资金+NB的衣服库存+1B的资金-N如何实现原子性(2)事务槽为变
8、更入口,单一入口(原子)每个变更的记录都包含事务槽信息数据库中如何保证C通过Read Dirty与锁来解决PK/UK通过Ref检查来解决FK的问题(需要Index)通过PreCommit trigger来做Null以及Check数据库中如何保证I锁控制 不同粒度的锁(表级、块级、记录级)不同维度的锁(数据相关锁,内存相关锁)MVCC Snapshot Isolation Block Image+SCN+Undo Image 判断差别在于读取哪个时间点的Snapshot数据库中如何保证DLog before DataLGWR before DBWnFlush Log on Commit Dura
9、bility On CommitCheckpoint Before Redo Log File ReuseACID的代价不同的Isolation对应不同的代价 Serialiazability Read Committed(Through Snapshot)Read Dirty?(没有并发控制)不同的Durability级别 Flush on Commit Flush on Timeout(Time Range)Flush on Batch(commits count?)主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常
10、见数据库系统回顾NORMALIZATION先做个小游戏用笔记录下 学生名单、老师姓名、讲师简介、课程名称、课程简介调整下 老师(黄晋汤庸)以及对应的老师简介再次调整下 课程(数据库概论分布式数据库原理)简介NORMALIZATION解决的问题更新一个源头不会出现异常每份数据只有一个源头 如何保证多份数据的一致性?一份数据有多少个源头?同一份数据被重复了多少次?对应的存储空间?为了存储耗费的其它资源?NORMALIZATION带来的问题表之间的依赖(关系依赖,耦合)表关联的成本(关联开销,可能的IO开销)系统扩展的复杂度(解耦合)如何权衡NORMALIZATION尽量不要对静态数据做Normal
11、ization 除非你希望节约存储空间考虑范式化 Vs 反范式化的投入产出为什么很多IT新人喜欢Normalization 那是因为他们的老师告诉他们需要建议 适度的使用 关键在于判断业务之间的耦合性主题数据库基本问题调查关系数据库的基本背景ACID基本概念解析范式问题解析(Normalization)数据库的扩展性浅析常见数据库系统回顾一个小实验如何将2个人从这里送到大学城?如何将5个人从这里送到大学城?如何将50个人从这里送到大学城?如何将500个人从这里送到大学城?如何将5000个人从这里送到大学城?如何将50000个人从这里送到大学城?数据库的扩展性问题数据库架构、系统架构在于:如何满
12、足如下的要求检索问题 Relation并发问题 Isolation Consistency(UK)一致性问题 Isolation速度问题 Performance,Durability+Isolation数据库检索问题如何从班级的联系方式中找到XX的电话号码?如何从公司的联系方式中找到XX的电话号码?如何从移动公司的系统中找到XX的电话号码?如何从移动、电信、联通的数据库找到XX的电话号码?数据库的并发问题同时有多个人要购买手机号?如何保证大家购买的不是同一个手机号?如何支持几百、几千、几万人同时购买手机号?数据库的一致性问题如何保证大家看到的库存有效?如何保证读取的信息是准确的?库存的变更如何
13、实时的提供给每一个人看到?数据库的性能问题?如何快速的让1个人买到号码?有多快?如何快速的让10个人买到号码?要不要排队?一个服务员?一个营业厅?PERFORMANCE VS SCALABILITY1.当只有一个人访问时,速度如何?2.当有很多人访问时,速度如何?大家都同样快?如果满足1 表示Performance很好?如何能较好的满足2 表示系统有较好的Scalability一致性问题再探讨新浪发的微薄需要强一致吗?ITPUB的论坛需要强一致吗?当当的图书描述信息需要强一致吗?12306的火车票库存信息需要强一致吗?支付宝/财付通的账户余额需要强一致吗?中行信用卡/招商银行卡的账户信息需要强
14、一致吗?讨论扩展性数据库系统的扩展性Scale(扩展)就是让我们的数据库能够提供更强的服务能力,更强的处理能力。Scalable(可扩展)则是表明数据库系统在通过相应升级(包括增加单机处理能力或者增加服务器数量)之后能够达到提供更强处理能力。在理论能上来说,任何数据库系统都是Scalable 的,只不过是所需要的实现方式不一样而已。Scalability(扩展性)则是指一个数据库系统通过相应的升级之后所带来处理能力提升的难易程度。虽然理论上任何系统都可以通过相应的升级来达到处理能力的提升,但是不同的系统提升相同的处理能力所需要的升级成本(资金和人力)是不一样的,这也就是我们所说的各个数据库应用
15、系统的 Scalability存在很大的差异。数据库系统的扩展性Scale Up 则是指纵向的扩展,向上扩展,也就是通过增加当前处理节点的处理能力来提高整体的处理能力,是通过升级现有服务器的配置,如增加内存,增加CPU,增加存储系统的硬件配置,或者是直接更换为处理能力更强的服务器和更为高端的存储系统。Scale Out 就是指横向的扩展,向外扩展,也就是通过增加处理节点的方式来提高整体处理能力,即通过增加机器来增加整体的处理能力。SCALE UP 优缺点Scale Up 优点:处理节点少,维护相对简单;所有数据都集中在一起,应用系统架构简单,开发相对容易;Scale Up 缺点高端设备成本高,
16、且竞争少,容易受到厂家限制;受到硬件设备发展速度限制,单台主机的处理能力总是有极限的,容易遇到最终无法解决的性能瓶颈;设备和数据集中,发生故障后的影响较大;SCALE OUT 优缺点Scale Out 优点成本低,很容易通过价格低廉的PC Server 搭建出一个处理能力非常强大的计算集群;不容易遇到瓶颈,因为很容易通过添加主机增加处理能力;单个节点故障对系统整体影响较小;也存在缺点,更多的计算节点,大部分时候都是服务器主机,这自然会带来整个系统维护复杂性的提高,在某些方面肯定会增加维护成本,而且对应用系统的架构要求也会比 Scale Up 更高,需要集群管理软件的配合。Scale Out 缺
17、点处理节点多,造成系统架构整体复杂度提高,应用程序复杂度提高;集群维护难以程度更高,维护成本更大;SCALABILITY很好的数据库应用系统遵循的原则 事务相关性最小化原则 数据一致性原则 高可用及数据安全原则事务相关性最小化原则分布式的架构带来分布式事务的问题在传统的集中式数据库架构中,事务的问题非常好解决,可以完全依赖数据库本身非常成熟的事务机制来保证。但是一旦我们的数据库作为分布式的架构之后,很多原来在单一数据库中所完成的事务现在可能需要跨多个数据库主机,这样原来单机事务可能就需要引入分布式事务的概念。分布式事务本身就是一个非常复杂的机制不管是商业的大型数据库系统还是各开源数据库系统,虽
18、然大多数数据库厂家基本上都实现了这个功能,但或多或少都存在各种各样的限制。而且也存在一些 Bug,可能造成某些事务并不能很好的保证,或者是不能顺利的完成。一些解决方案1.进行 Scale Out 设计的时候合理设计切分规则,尽可能保证事务所需数据在同一个 MySQL Server 上,避免分布式事务。2.大事务切分成多个小事务,数据库保证各个小事务的完整性,应用控制各个小事务之间的整体事务完整性。3.结合上述两种解决方案,整合各自的优势,避免各自的弊端。1.比如我们可以在保证部分核心事务所需数据在同一个MySQL Server 上,而其他并不是特别重要的事务,则通过分拆成小事务和应用系统结合来
19、保证。2.通过这样相互平衡设计的原则,我们既可以避免应用程序需要处理太多的小事务来保证其整体的完整性,同时也能够避免拆分规则太多复杂而带来后期维护难度的增加及扩展性受阻的情况数据一致性原则如何在 Scale Out 的同时又较好的保证数据一致性呢?BASE 模型。即:基本可用,柔性状态,基本一致和最终一致简单来说,应用系统通过相关的技术实现,让整个系统在满足用户使用的基础上,允许数据短时间内处于非一致状态,而通过后续技术来保证数据在最终保证处于一致状态。高可用及数据安全原则在支持可扩展性的同时,要注意高可用性和数据安全。基本方法SHARDINGREPLICATIONCLUSTERSHARDIN
20、GSHARE NOTHING并行数据库要求尽可能的去并行执行数据库操作,从而提高性能。在并行计算体系结构实现中有很多可选的体系结构。包括:Share-memory:多个cpu共享同一片内存,cpu之间通过内部通讯机制(interconnection network)进行通讯;Share-disk:每一个cpu使用自己的私有内存区域,通过内部通讯机制直接访问所有磁盘系统。Share-nothing:每一个cpu都有私有内存区域和私有磁盘空间,而且2个cpu不能访问相同磁盘空间,cpu之间的通讯通过网络连接。并行计算体系结构Share diskshare nothingshare memory并行
21、计算体系结构Shared memory 体系结构的cpu之间通过主存进行通讯,具有很高的效率;但当更多的cpu被添加到主机上时,内存竞争contection就成为瓶颈,cpu越多,瓶颈越厉害。Shared disk也存在同样问题,因为磁盘系统由 Interconnection Network 连接在一起。Shared memory和shared disk的基本问题是interference:当添加更多的cpu,系统反而减慢,因为增加了对内存访问(memroy access)和网络带宽(network bandwidth)的竞争。这样shared nothing体系得到了广泛的推广。Shared
22、 nothing体系是数据库稳定增长,当随着事务数量不断增加,增加额外的cpu和主存就可以保证每个事务处理时间不变。SHARED NOTHINGARCHITECTURE(SN)A shared nothing architecture(SN)is a distributedcomputing architecture in which each node is independent and self-sufficient,and there is no single point of contention across the system.More specifically,none of
23、 the nodes share memory or disk storage.People typically contrast SN with systems that keep a large amount ofcentrally-stored state information,whether in a database,an applicationserver,or any other similar single point of contention.While SN is bestknown in the context of web development,the conce
24、pt predates theweb:Michael Stonebraker at the University of California,Berkeley usedthe term in a 1986 database paper.1 In it he mentions existingcommercial implementations of the architecture(although none arenamed explicitly).Teradata,which delivered its first system in 1983,wasprobably one of tho
25、se commercial implementations.2 TandemComputers officially released NonStop SQL,a shared nothing database,in 1984.3SHARED NOTHINGARCHITECTURE(SN)Shared nothing is popular for web development because ofits scalability.As Google has demonstrated,a pure SN systemcan scale almost infinitely simply by ad
展开阅读全文