分布式数据库系统
分布式数据库系统与集中式数据库系统一样,包含两个部分
- 数据库
- 数据库管理系统 管理和操作数据库的软件,介于应用程序和操作系统之间
基本概念
分布式数据库系统是地理上分散而逻辑上集中的数据库系统
节点/场地
分布式系统通常由计算机网络将地理上分散的各逻辑单位连接起来而组成的,被连接的逻辑单位称为节点或场地
- 节点 强调的是计算机和处理能力
- 场地 强调的是地理位置和通信代价
分布式数据库
分布在一个计算机网络上的多个逻辑相关的数据库的集合
分布式数据库管理系统
分布式数据库管理系统是分布式数据库系统的一组软件,负责对分布式数据库中的数据进行管理和操作
- 全局的查询处理器
- 事务管理器
- 并发控制器
- 恢复管理器
保证全局事务执行的高效性、正确性和可靠性
系统接收基于全局模式的全局查询命令,根据数据的分布式信息将一个全局查询命令转换为面向各个局部场地的子查询请求,同时将一个全局事务分解为相应的子事务分布式处理
特性
- 数据透明性
- 分布透明性
- 分片透明性
- 复制透明性
- 场地自治性
- 设计自治性
- 通信自治性
- 执行自治性
HBase
HBase集群中,主要有四大功能组件
HMasterServer
主服务器
HMasterServer是HBase整个集群的管理者,主要负责管理数据表Table和区域Region以及响应用户的数据请求,保证用户对数据的访问
保存和管理关于存取数据信息的元数据信息
管理用户对表的增加、删除、修改和查询
调整HRegion的分布,管理HRegionServer的数据和负载均衡
负责新HRegion的分配
在HRegionServer停机后,负责时效HRegionServer上的HRegion迁移
处理对HBase schema的变更请求
HRegionServer
数据服务器
HRegionServer是每个Region的管理者和用户服务的提供者,它管理本地数据,并响应用户的数据读取请求
一般情况下,在HBase集群中,每台机器上只运行一个HRegionServer
Zookeeper
HBase集群的分布式协调器
- 保证在任何时刻,集群中只有一个master
- 存储所有Region的入口地址,HMasterServer启动时会将HBase系统表Root加载到Zookeeper上,并通过Zookeeper cluster获取当前系统表Meta的存储所对应的RegionServer信息
- 实时监控HRegionServer状态,将HRegionServer的上线和下线信息实时通知给HMasterServer。HRegionServer会以短暂的方式向Zookeeper注册,使得HMasterServer可以随时赶至各个HRegionServer是否在线的状态信息
- 存储HBase的schema是否在线的状态信息,包括有哪些表,每个表有哪些列簇
Client Library
客户端类库
封装用于支持HBase数据操作和客户端开发的API集合
数据复制
传播方式
- 同步复制
- 异步复制
节点关系
- 主从复制
- 对等复制
方法
- 基于触发器法
- 基于日志法
- 基于时间戳法
- 基于API法
LSM-Tree
将对数据的增量更新暂存在内存中,达到指定的存储阈值后将更新批量写入磁盘,在批量写入的过程中与已经存在的数据做合并操作
在数据读取时,同样需要合并磁盘中的数据和内存中最近修改操作
读写控制方式
- 写 防止大量数据更新造成的磁盘随机写入
- 读 需要多次磁盘I/O访问较多的文件
键值模型
- 键值型
- 基于键排序
- 基于一致性散列
- 列族型
- 超级列族型
分布式数据库系统
https://bannirui.github.io/2023/02/28/分布式数据库系统/