OceanBase 每日一练 @4
第四章:OceanBase 集群技术架构
1. Paxos协议与负载均衡
准内存数据库系统?存储引擎
IO放大问题?国产数据库
举例说明IO放大问题在国产数据库中的应对措施:
-
OceanBase (OB):OceanBase是中国自主研发的分布式数据库系统。在OB中,针对IO放大问题,采取了以下措施:
-
分布式存储引擎:OB采用了分布式存储引擎,通过数据分片和分布式存储,减少单个节点上的IO访问次数,降低整体的IO放大效应。
-
垂直压缩:OB支持对列存储进行垂直压缩,将相同类型的数据进行有损压缩,减少占用的磁盘空间和IO操作次数。
-
预读优化:OB通过合理的预读策略,在查询时一次性读取多行数据,避免了逐行读取导致的频繁IO操作。
-
-
GaussDB:GaussDB是华为云推出的自主研发的分布式关系数据库。在GaussDB中,针对IO放大问题,采取了以下措施:
-
列存储引擎:GaussDB支持列存储引擎,通过只读取所需的列数据,减少了不必要的IO操作,从而降低了IO放大问题。
-
数据压缩:GaussDB提供了数据压缩功能,可以对数据进行压缩存储,减少存储空间占用和IO操作次数。
-
IO调度优化:GaussDB通过针对性的IO调度算法,合理分配磁盘IO访问顺序和优先级,提高IO操作的效率,并减少IO放大问题的影响。
-
-
TiDB:TiDB是国内开源的分布式关系数据库系统。在TiDB中,针对IO放大问题,采取了以下措施:
-
分布式事务和存储:TiDB基于分布式架构,将数据分散存储在多个节点上,减少了单一节点上的IO访问负载,降低了IO放大问题的发生。
-
基于Raft协议的数据复制:TiDB利用Raft协议实现数据的复制和冗余备份,在节点故障时能够快速恢复,减少了IO操作次数。
-
自适应索引:TiDB内置了自适应索引功能,根据查询模式和数据分布情况自动选择适当的索引策略,减少不必要的IO操作。
-
以上是在举例的国产数据库中针对IO放大问题所采取的一些应对措施。不同数据库系统可能会有更多的优化技术和策略,具体的解决方案还需根据实际情况进行综合考虑和调整。
系统视图
; 左边优先级别高
, 均等
实验
登录到租户里面创建?
可以按照业务需求分配主副本所在可用区
Table Group
2. 动态扩容和缩容
如果集群和节点资源足够,可以直接修改租户资源池相关的资源单元规格大小,进行扩容
租户扩容,可先通过添加服务节点,完成集群扩容,再通过增加资源单元的个数完成租户扩容
3. 数据可靠及高可用
集群故障切换粒度?表或者分区表的子分区。
城市A 2个Zone 城市B 1个Zone
城市A 1个Zone宕机,会增加异地同步延迟???
4. 分布式事务、MVCC、事务隔离级别
事务引擎一致性特点:
小结
模拟题