




已阅读5页,还剩74页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3部分 数据库系统体系结构 第10章数据库体系结构第11章分布式数据库第12章并行数据库第13章大数据与云数据管理 第10章数据库系统体系结构 本章内容参考 数据库概念 第6版 byA SilberschatzChapter17DatabaseSystemArchitectures补充内容本章内容特色 数据库系统体系结构内容比较 宏观 着重从计算机系统体系结构的历史演化角度进行分析本章要解决的关键问题 如何认识和解决数据库系统体系结构演化过程中面临的 分 与 合 的矛盾 主要内容 10 1概述10 2集中式系统10 3客户 服务器系统10 4并行系统10 5分布式系统10 6网络类型10 7分布式系统计算模型 补充 10 1概述 一个系统的体系结构 architecture 定义了它的结构 structure 给出了其组成成份 每个成份的功能 成分间的相互关系和交互方式数据库系统体系结构与计算机系统体系结构密切相关 集中式体系结构 集中式数据库系统计算机联网 客户 服务器数据库系统分布计算 分布式数据库系统并行处理 并行数据库系统 分布式体系结构的典型特点 自主性 Autonomy 分布性 Distribution 异质性 Heterogeneity 自主性 单个DBMS的本地运算不因系统其它DBMS的加入而受影响单个DBMS处理查询和优化查询的方式不受全局查询的影响系统已执行的操作在单个DBMS加入或离开时不受影响 分布性 数据分布功能分布控制分布 异质性 硬件的差异性网络协议的差异性操作系统的差异性数据管理器的差异性数据模型的差异性语法上的差异性语义上的差异性 体系结构的选择 自主性选择 A0 代表无自主性 紧密集成 A1 代表半自主性 部分集成 A2 代表全自主性 全隔离 自主性分类 1 设计自主性 Designautonomy 单个DBMS可以按它们喜欢的方式使用数据模块和事务管理技术2 通信自主性 Communicationautonomy 每个独立DBMS可以自由决策为其它DBMS提供何种类型的数据或者控制全局执行的策略3 执行自主性 Executionautonomy 每个DBMS可以按自己希望的方式执行和提交事务 分布性选择 D0 全集中 无分布 D1 client server系统 功能分布 数据集中 D2 表全分布 peer to peer 异构性选择 H0 同构系统H1 异构系统 例子 A0 D2 H0 代表一个 peer to peer 分布式同构多数据库multidatabase系统 A2 D2 H1 代表一个 peer to peer 分布式异构多数据库multidatabase系统 A0 D1 H0 系统是分布的并提供给用户一个集成的视图 10 2集中式系统 运行在一台计算机上 数据集中存储在一台计算机中 不与其他计算机系统交互的数据库系统规模 个人微机 大型主机单用户系统 管理简单多用户系统 具有并发控制 故障恢复等能力 集中式系统 集中式计算机系统 10 3客户 服务器系统2015 12 3 微机变得更快 能力更强 价格更低 集中式系统中的终端被微机所代替 集中式系统直接执行的用户界面功能由微机来处理集中式系统 客户机 服务器系统 客户 服务器系统 服务器系统响应若干个客户机系统的请求 一般结构如下 客户 服务器系统 系统功能分为 后端 管理存取结构 查询处理与优化 并发控制和恢复前端 提供各种工具 如表格 报表制作 图形用户界面前端与后端的交互通过SQL或应用程序界面API 客户 服务器系统 用工作站或个人计算机通过网络连接后端服务器 好处 性价比高灵活性用户界面更好易于维护 服务器系统分为两类 事务服务器 广泛用于关系型数据库系统中数据服务器 用于面向对象数据库系 事务服务器 亦称为查询服务器系统或SQL服务器系统客户发送请求给服务器系统执行事务 结果在送回给客户SQL请求通过远程过程调用 RPC 机制传给服务器事务RPC允许多个RPC调用共同构成一个事务ODBC是一个C语言应用程序界面标准 Microsoft 用于连接服务器 发送SQL请求 接收结果JDBC标准类似ODBC 用于Java 事务服务器进程结构 典型的事务服务器包含多个进程在共享内存中存取数据服务器进程接收用户查询 事务 执行查询并返回结果进程可以是多线程的 允许单个进程并发执行多个用户查询通常有多个多线程服务器进程数据库写进程不断输出更新后的缓冲块到磁盘 事务服务器进程 写日志进程服务器进程向日志记录缓冲区增加日志记录日志写进程将日志记录输出到稳定存储器Checkpoint进程执行周期性的checkpoints进程监控进程监控其他进程 当其他进程失败时采取恢复行动E g 中止正在由服务器进程执行的任何事务并重启之 事务系统进程 事务系统进程 共享内存包含共享数据缓冲池 Bufferpool 锁表日志缓冲区Cached查询计划 如果同一查询再次提出可以重用 所有数据库进程都可存取共享内存为确保两个进程不同时存取同一数据结构 系统通过 操作系统信号灯原子指令实现互斥 DB2进程模型 10 4并行系统 并行系统由多个处理器和多个磁盘通过高速互连网络连接而组成粗粒度并行机由少量强大的处理器组成大规模并行或细粒度并行机利用了成千上万的较小处理器两个主要性能指标 吞吐量 在给定时间区间可以完成的任务数量响应时间 单个任务从提交到完成所花的时间 加速比和扩展比 加速比 将在小系统上执行的固定大小的问题拿到N倍大的系统上执行度量方法 加速比 小系统所花时 大系统所花时间如果等于N则称加速比是线性的扩展比 同步增加问题和系统的大小用N 倍大的系统来执行N 倍大的任务度量方法 扩展比 小系统小问题所花时间 大系统大问题所花时间如果等于1则称扩展比是线性的 加速比 扩展比 批量与事务扩展 批量扩展 单个大任务 典型的 如数据库查询和科学模拟使用N 倍大的计算机计算N 倍大的问题事务扩展 由独立用户提交许多小查询到共享数据库 典型的如事务处理系统和分时系统N 倍多的用户提交请求 因此有N 倍多的请求 到N 倍大的计算机上的N 倍大的数据库适合于并行执行 影响加速比和扩展比的因素 加速比和扩展比经常是亚线性的 原因是 启动代价 如果并行度很高的话 启动多个进程的代价可能主宰计算时间干扰 访问共享资源的进程 如系统总线 磁盘 锁 相互竞争 因此要花时间等待其他进程 而不是执行有用的工作偏斜 增加并行度会增加对并行执行的任务的服务时间的偏差 总的执行时间由最慢的任务决定 并行体系结构 共享内存 处理器共享同一内存共享磁盘 处理器共享同一磁盘无共享 处理器既不共享内存也不共享磁盘层次式 上述体系结构的混合 10 5分布式系统 定义 分布式系统为一组通过计算机网络互联的 具有相对 自主性 的处理单元 不一定同构 并通过协同工作 完成指派的任务的系统所谓计算单元 指的是可以在其上面执行程序的计算设施 分布式系统 分布处理 如果不分程度 则到处都有 即便是单处理器的计算机系统中也有分布处理事实上 计算机技术发展的过程就是一个不断将处理分布化的过程 例如 将CPU和I O功能分开就是一种分布处理的范例不过 目前所讲的分布处理则要复杂得多 因此任何单处理器系统不包括在内 分布式软件系统 分布式软件系统 DistributedSoftwareSystems 是支持分布式处理的软件系统 是在由通信网络互联的多处理机体系结构上执行计算任务的系统分布式操作系统分布式程序设计语言及其编译 解释 系统分布式文件系统分布式数据库系统 10 6NetworkTypes 略 Local areanetworks LANs composedofprocessorsthataredistributedoversmallgeographicalareas suchasasinglebuildingorafewadjacentbuildings Wide areanetworks WANs composedofprocessorsdistributedoveralargegeographicalarea Discontinuousconnection WANs suchasthosebasedonperiodicdial up using e g UUCP thatareconnectedonlyforpartofthetime Continuousconnection WANs suchastheInternet wherehostsareconnectedtothenetworkatalltimes NetworksTypes Cont WANswithcontinuousconnectionareneededforimplementingdistributeddatabasesystemsGroupwareapplicationssuchasLotusnotescanworkonWANswithdiscontinuousconnection Dataisreplicated Updatesarepropagatedtoreplicasperiodically Nogloballockingispossible andcopiesofdatamaybeindependentlyupdated Non serializableexecutionscanthusresult Conflictingupdatesmayhavetobedetected andresolvedinanapplicationdependentmanner InterconnectionNetworkArchitectures Bus Systemcomponentssenddataonandreceivedatafromasinglecommunicationbus Doesnotscalewellwithincreasingparallelism Mesh 网状 Componentsarearrangedasnodesinagrid andeachcomponentisconnectedtoalladjacentcomponentsCommunicationlinksgrowwithgrowingnumberofcomponents andsoscalesbetter Butmayrequire2 nhopstosendmessagetoanode or nwithwraparoundconnectionsatedgeofgrid Hypercube Componentsarenumberedinbinary componentsareconnectedtooneanotheriftheirbinaryrepresentationsdifferinexactlyonebit ncomponentsareconnectedtolog n othercomponentsandcanreacheachotherviaatmostlog n links reducescommunicationdelays InterconnectionArchitectures Copyright Silberschatz KorthandSudarhan 42 10 7分布式系统计算模型 43 概述 分布式系统计算模型的复杂性系统由并发执行部件构成系统中无全局时钟必须捕捉系统部件可能的失效对策因果关系 Causality 一致状态 Consistentstates 全局状态 Globalstates 44 基本协议 协议中的控制语句1 Send destination action parameters destination 处理器抽象 可以是通信实体的地址 机器名 机器的端口号 即1个socket地址 action 控制msg 希望接收者采取的动作parameters 参数集合假定 msg发送是无阻塞 可靠的 语义类似于TCP套接字 有时假定较弱的msg传递层 等价于UDP 45 基本协议 2 接收msg接收msg可推广至接收事件 引起事件的原因是 外部msg 超时设定 内部中断事件在处理前 一般在缓冲区 如事件队列 中 若一处理器想处理事件 它必须执行一个声明处理这些事件的线程例如 一个处理器通过执行下述代码等待事件A1 A2 AnwaitingforA1 A2 An 声明A1 Source parameters CodetohandleA1 A1 Source parameters CodetohandleAn当p执行send q A1 parameters 且q执行上述代码时 q将最终处理由p发送的msg 46 基本协议 3 超时当怀疑远程处理器失效时 可通过超时检测来判定 当T秒后仍未收到P的类型为event的msg时 执行指定的动作waitinguntilPsends event parameters timeout Tontimeouttimeoutaction 仅当收到一个响应msg时才采取动作 超时不做任何动作waitinguntilPsends event parameters timeout Tontimeout ifnotimeoutoccurred Successfulresponseactions 处理器等待T秒若处理器在等待开始后T秒内没响应 则等待结束 协议继续waitinguptoTsecondsfor event parameters msgsEvent 47 因果关系 分布式系统为何缺乏全局的系统状态 1 非即时通信A和B同时向对方喊话他们都认为是自己先喊话C听到两人是同时喊话结论 系统的全局状态依赖于观察点原因 传播延迟网络资源的竞争丢失msg重发 d1 d2 48 因果关系 2 相对性影响假设张三和李四决定使用同步时钟来观察全局状态他们约定下午5点在某餐馆会面 张三准时到达 但李四在一个接近光速的日光系统中游览张三在等待李四1小时后离开餐馆 而李四在自己的表到达5点时准时达到餐馆 但他认为张三未达到因为大多数计算机的实际时钟均存在漂移 故相对速度不同 时钟同步仍然是一个问题结论 使用时间来同步不是一个可靠机制 49 因果关系 3 中断假设张三和李四在同一起跑线上赛跑 信号为小旗 前两个问题可以忽略 但是 即使可忽略其他影响 也不可能指望不同的机器会同时做出某些反应 因为现代计算机是一个很复杂的系统 CPU竞争 中断 页错误等 执行时间无法预料结论 不可能在同一时刻观察一个分布式系统的全局状态 必须找到某种可以依赖的性质 时间回溯因果相关 50 因果关系 设分布式系统构成 P P1 P2 Pn 处理器集合E 全体事件的集合Ep E Ep表示发生在p上的所有事件次序e1 e2 事件e1发生e2在之前 亦记 e1 e2 e1 Ie2 事件e1发生e2在之前 I为信息源定序 有些E中事件很容易定序 发生在同一节点p上的事件满足全序 若e1 e2 Ep 则e1 pe2或e2 pe1成立e1发送消息m e2接收m 则e1 me2 51 因果关系 Happens before关系 H 规则1 若e1 pe2 则e1 He2规则2 若e1 me2 则e1 He2规则3 若e1 He2 且e2 He3 则e1 He3该 H 关系是节点次序和消息传递次序的传递闭包e1 He3表示存在1个事件因果链 使e1在e3之前发生Note H是一种偏序关系 即存在e和e 二者之间无这种关系并发事件 若两事件不能由 H定序 52 因果关系 举例1 因事件e1 e4和e7均发生在P1上 故 e1 P1e4 P1e72 因e1发送1个msg到e3 故 e1 me3 类似地e5 me83 应用规则1和2得 e1 He4 He7 e1 He3 e5 He84 由 H的传递闭包性质得 e1 He85 e1和e6是并发的 e1和e6之间无路径 53 因果关系 H DAG有时将Happens before关系描述为一个有向无环图顶点集VH是事件集E e VH当且仅当e E边集EH 若 e1 e2 EH当且仅当e1 Pe2或e1 me2 54 Lamport时间戳 系统有序性的重要性若分布式系统中存在全局时钟 则系统中的事件均可安排为全序例如 可以更公平地分配系统资源全序对事件的影响和由H关系确定的偏序对事件的影响是一致的如何通过H关系确定的偏序关系来建立一个 一致 的全序关系 在 H的DAG上拓扑排序Onthefly Lamport提出了动态即席地建立全序算法 55 Lamport时间戳 Lamport算法的思想每个事件e有一个附加的时戳 e TS 每个节点有一个局部时戳 my TS 节点执行一个事件时 将自己的时戳赋给该事件 节点发送msg时 将自己的时戳赋给所有发送的msg 56 Lamport时间戳 Lamport算法的实现Initially my TS 0 Onevente if e是接收消息m thenmy TS max m TS my TS 取msg时戳和节点时戳的较大者作为新时戳my TS e TS my TS 给事件e打时戳if e是发送消息m thenm TS my TS 给消息m打时戳 57 Lamport时间戳 Lamport算法赋值的时戳是因果相关的若e1 He2 则e1 TS e2 TS 若e1 Pe2或e1 me2 则的e2时戳大于e1的时戳 在因果事件链上 每一事件的时戳大于其前驱事件的时戳问题 系统中所有事件已为全序 不同的事件可能有相同的时戳 并发事件 Lamport算法改进因为并发事件的时戳可以任意指定先后故可用节点地址作为时戳的低位 58 Lamport时间戳 改进的Lamport时戳事件标号 时戳 id事件e8为4 3 my TS max m TS my TS max 3 1 3按字典序得全序 1 1 1 2 1 3 2 1 2 2 3 1 3 2 4 3算法特点 分布 容错 系统开销小 59 向量时间戳 Lamport时戳缺点若e1 He2 则e1 TS e2 TS 反之不然例如 1 3 2 1 但是e6 e4不成立原因 并发事件之间的次序是任意的不能通过事件的时戳判定两事件之间是否是因果相关判定事件间因果关系的重要性例子 违反因果关系检测在一个分布式系统中 为了负载平衡 对象是可移动的 对象在处理器之间迁移是为了获得所需的调用的进程或资源 如下图 60 向量时间戳 1 P1持有对象O 决定迁移到P2为获取资源 P1将O装配在消息M1中发送给P22 P1收到P3访问O的请求P1将O的新地址P2放在消息M2中通知P33 P3在M3中请求访问P2的O当M3达到P2时 O不可用 故回答一个出错消息问题 当debug该系统时 会发现O已在P2上 故不知错在哪 P1 P2 P3 M1 OnP2 WhereisO 迁移O到P2 Idon tknow M2 WhereisO M3 Error 61 向量时间戳 错误原因 违反因果序P3请求O是发生在从P1迁移到P2之后 但该请求被处理是在迁移达到P2之前形式地 设 s m 是发送m的事件r m 是接收m的事件若s m1 Hs m2 则称消息m1因果关系上先于m2 记做m1 Cm2若m1 Cm2 但r m2 Pr m1 则违反 因果关系 即 若m1先于m2发送 但在同一节点P上m2在m1之前被接收例如 在上例中有 M1 CM3 但r M3 P2r M1 62 向量时间戳 违反因果序检测定义 若时戳VT具有比较函数 V满足 e1 He2iffe1 VT Ve2 VT则我们能够检测出是否违反因果关系VT性质1 因 H是偏序 故 V也是偏序 2 因为必须知道在因果关系上每一节点中哪些事件是在事件e之前 故e VT中必须包含系统中每一个其它节点的状态这两个性质导致了向量时戳VT的引入 63 向量时间戳 向量时戳VTVT是一个整数数组 e VT i k表示在节点i 或Pi 上 因果关系上e之前有k个事件 可能包括e自己 e VT 3 6 4 2 表示因果序 在P1上 有3个事件须在e之前在P2上 有6个事件须在e之前在P3上 有4个事件须在e之前在P4上 有2个事件须在e之前 64 向量时间戳 向量时戳的意义在因果关系上 e1 VT Ve2 VT表示e2发生在e1及e1前所有的事件之后更精确的说 向量时钟的次序为 e1 VT Ve2 VTiffe1 VT i e2 VT i i 1 2 Me1 VT Ve2 VTiffe1 VT VTe2 VT且e1 VT e2 VT向量时戳算法my VT 每个节点有局部的向量时戳e VT 每个事件有向量时戳m VT 每个msg有向量时戳节点执行一个事件时 将自己的时戳赋给该事件 节点发送msg时 将自己的时戳赋给所有发送的msg 65 向量时间戳 算法实现 Initially my VT 0 0 Onevente if e是消息m的接收者 thenfori 1toMdo 向量时戳的每个分量只增不减my VT i max m VT i my VT i my VT self 设变量self是本节点的名字e VT my VT 给事件e打时戳if e是消息m的发送者 thenm VT my VT 给消息m打时戳 66 向量时间戳 算法性质1 若e He 则e VT VTe VT 算法确保对于每个事件满足 若e Pe 或e me 则e VT VTe VT2 若e He 则e VT VTe VTpf 若e和e 因果相关 则有e He 即e VT VTe VT若e和e 是并发的 则在H DAG上 从e到e 和从e 到e均无有向路径 即得 e VT VTe VT且e VT VTe VT 67 向量时间戳 向量时戳比较e1 VT 5 4 1 3 e2 VT 3 6 4 2 e3 VT 0 0 1 3 1 e1和e2是并发的 e1 VT 1 e2 VT 1 e1 VT 2 e2 VT 2 e1到e2及e2到e1均无路径2 e3在因果序上先于e1即 e3 VT Ve1 VTe1的前驱事件见方框 68 向量时间戳 因果序检测1 消息时戳间比较在P2上 先到达的M3的时戳为 3 0 3 后到达的M1的时戳为 1 0 0 但是 1 0 0 V 3 0 3 M1在因果序上先于M3故M1后于M3到达违反因果序2 消息时戳和局部时戳比较当时戳为 1 0 0 的M1到达P2时 P2的时戳是 3 2 3 但 1 0 0 V 3 2 3 M1在因果序上应先于 3 2 3 对应的事件 69 因果通信 如何保证通信不违反因果关系 处理器不能选择msg达到的次序 但能抑制过早达到的msg来修正传递 指提交给应用 次序FIFO通信 如TCP 由msg传递协议栈里的一层负责确保FIFO通信 70 因果通信 FIFO通信源处理器给每个发送的msg顺序编号 目的处理器知道自己所收到的msg应该有何顺序的编号 若目的处理器收到一个编号为x的msg但未收到较小编号的msg时 则延迟传递直至能够顺序传递为止因果通信因果通信与FIFO通信类似源 附上时戳目的地 延迟错序msg Msg达到次序 X2deliverx2 X5bufferx5 X1deliverx1 X4bufferx4 X3deliverx3x4x5 71 因果通信 因果通信实现思想抑制从P发送的消息m 直至可断定没有来自于其它处理器上的消息m 使m Vm在每个节点P上 earliest 1 M 存储不同节点当前能够传递的消息时戳的下界earliest k 表示在P上 对节点k能够传递的msg的时戳的下界blocked 1 M 阻塞队列数组 每个分量是一个队列Alg CausalMsgdelivery定义时戳1k 若使用Lamport时戳 则1k 1 若用向量时戳 则1k 0 1 0 0 kth位为1初始化1 earliest k 1k k 1 M2 blocked k k 1 M 每个阻塞队列置空 72 因果通信 3 Onthereceiptofmsgmfromnodep 4 delivery list 5 if blocked p 为空 then6 earliest p m timestamp 7 将m加到blocked p 队尾 处理收到的消息8 while k使blocked k 非空and对每个i 1 M 除k和self外 not earliest earliest i earliest k i 处理阻塞队列 对非空队列k 若其他节点i上无比节点k更早的msg要达到本 地 则队列k的队首可解除阻塞9 将blocked k 队头元素m 出队 且加入到delivery list 10 if blocked k 非空 then11 将earliest k 置为m timestamp 12 elseincrementearliest k by1k endwhile13 deliverthemsgsindelivery list 按因果序 73 因果通信 向量时戳比较not earliest proc i vts msg vts i 前者不早于后者时为真if msg vts i proc i vts i returnturn elsereturnfalse 分析使用向量时戳较好 不会假定序1 初始化 在本地节点 self 上 能够最早传递的来自于节点k的msg的时戳存储在本地的earliest k 中 line1初始化正确2 处理接收的消息 当本地节点接收来自于p的消息m时行5 6 若blocked p 中无msg 则earliest p 被置为m的时戳 这是因为从p上不会有更早的msg达到本地 更早的已处理过 74 因果通信 分析行7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程爆破考试试题及答案
- 劳动力市场学试卷及答案
- 幕墙施工组织设计专家论证的
- 深远海养殖智能化水下养殖平台建设方案
- 大宗固废资源化利用技术方案
- 环境影响评价技术服务与生态建设规划合同
- 高难度离婚协议:财产分割、子女抚养及赡养费协议
- 医疗机构消毒清洁与卫生监督服务协议
- 教育培训机构股份简单转让与师资培训合同
- 房屋建筑施工技术方案及创新设计
- 动物药理课件
- 2022城市轨道交通列车驾驶员技能及素质要求第1部分:地铁、轻轨和单轨
- 蓝桥杯c语言历届试题及答案
- 金融风险管理习题第1-13章金融风险概述思考题-经济资本与风险调整绩效
- 2024-2025学年高一下学期时间管理主题班会课件
- 2024国家安全教育大学生读本题库
- 教师的校本研修课件
- 《万以内的加减法》课件
- 《国际贸易学(第四版)》第七章-关税措施
- DB11-T 1891-2021 建(构)筑物与应急设施地震安全韧性建设指南
- 学生作文稿纸(A4打印)
评论
0/150
提交评论