开发者学堂课程【分布式数据库技术与实现:分布式数据库组件】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/373/detail/4689
分布式数据库组件
目录
一.分布式数据库组件
二.数据库组件的基本功能
一.分布式数据库组件
分布式数据库系统基本要求
逻辑统一性
入口统一性
1.全局数据字典
所有的数据都从统一的入口进入,也就是分布式数据库系统本身需要有结构来管理数据的存放位置,这就是全局数据字典。
2.全局数据管理系统
有了全局数据字典,还需要有一个集中的逻辑来控制每一个请求,每个数据过来需要分发到哪一个节点,每一个请求过来需要到哪一个几点去取数据,这就是全局数据管理系统。
3.局部数据库管理系统
有了全新数据管理系统跟数据字典,每一个请求过来能够被正确的分发到节点,而每一个节点上面需要有一个局部的数据库管理系统,局部数据库管理系统的主要功能是用来接收全局管理系统的命令,同时做本地的数据处理,包括查询,更新,存储,并且返回结果。
4.通信管理系统
有了全局跟局部两个管理系统,还有个重要的功能就是通信,通信管理系统用于管理全局关系系统跟局部管理系统之间的通信协议,一般分布式数据库系统各个节点之间也会有网络的通信,因此通信管理系统也负责每一个分片之间的通信。
二.数据库组建的基本功能
1.静态部分
1>全局管理系统
最主要功能是维护用户的连接获取请求,从请求命令中解析具体的分片信息,根据本地的全局数据字典确定请求的分化位置,同时分片执行并做数据汇总。
由于数据分布在不同的节点,所以分布式数据库系统本身带有一定的并行操作的能力,因此任务的调度也由全局管理系统来负责。单全局管理系统得到各个分片的返回结果以后,要对数据的结果进行汇总并返回给客户端。
2>全局数据字典
维护数据的分片规则,同时网络状态、完整性约束、存取路径、存取权限也是全局数据字典的管理范围,也维护在全局数据字典中。由于分布式数据库系统本身对网络的依赖非常高,所以如果某一个节点的网络出现问题,全局管理系统要能够根据网络状态的改变,对节点的状态进行修改,数据逻辑的一致性也是在全局数据字典中保存的,如全集 DN 值,或者在应用里是商品编号等,这种信息无法维护在各个节点之中,都是由全局管理系统统一管理的,存取在全局数据字典中。
3>局部数据管理系统
实际上是集中式的管理系统,主要功能是获取请求、执行查询跟更新、返回结果、返回查询结果或者执行更新操作。作为分布式数据库系统的一部分,本身也需要跟全局数据库系统维持心跳功能,汇报自己本地的运行状态、健康情况、繁忙程度还有磁盘,CPU,内存的消耗情况。
以上都属于静态部分,作为分布式数据库系统,最重要的是动态的部分。
2.动态部分
1>分布式事务处理
2>异常处理
从动态的角度来看分布式数据库系统每一个角色的工作流程
1>全局管理系统
全局管理系统需要协调全局的事务执行,即全局管理系统需要控制整个系统的事务执行的并发量,同时也要控制整个系统的锁状态,还有全局的提交跟恢复,由于每个系统本身并没有全局的信息,可能在分片上能够并发执行的事务从全局的角度是无法没法执行的,这一类的事务并发信息只能在全局管理系统中控制。
2>全局数据字典
全局数据字典是作为全局管理系统的功能辅助,如全局管理系统需要做思索检测,全局数据字典就需要存储整个系统正在执行的事务的锁信息、实施的事务状态、事务统计信息,全局管理系统还需要对每一个节点的立法性做控制每个节点的数据总量做控制,数据的变更状态、事务的运行状态都需要存储在全局数据字典中。
3>局部管理系统
接收分布式事务的启动、回滚、提交甚至是崩溃恢复,由于分布式数据库系统的事务需要在多个分片同时执行,所有的数据库系统都要满足 ACID 四个特性,当某一个分片的数据出现问题时,全局管理系统就需要对整个事物做全局的回滚,当事务在每个分片都能够正确的执行时候,全局管理系统需要确保事务在每一个分片都能正确的提交。