暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

学习笔记(三) | OceanBase

DataSpace社区 2021-06-22
2363

本文约1500字,建议阅读10分钟

本文主要讲解了OceanBase的集群技术架构。


(四)OceanBase集群技术架构

第一节:Paxos协议与负载均衡

1.   数据分区与分区副本:


(1)分区:(OceanBase数据架构基本单元)

可以将一个表水平拆分为若干分区,每个分区包含表的若干记录,根据行数据到分区的映射关系不同,分为:hash分区List分区(按列表)range分区(按范围);每一个分区还可用不同的维度再分若干分区,叫二级分区

(2)副本:

为了具备安全和高可用性的服务,每个分区的数据在物理上存储多份,每一份叫做分区的一个副本;

副本支持迁移、复制、增删、类型转换等管理操作。

注:每个副本中由一个主副本和多个从副本构成,每个Zone只会包含一个分区的副本

2.   副本构成:记录事务日志、存储在内存中的增量数据(MemTable)、硬盘上的静态数据(SSTable)

副本分类:

    全能型副本:包含事务日志、MemTrable、SSTable等数据,参与投票。

    日志型副本:包含日志副本,没有MemTable、SSTable,参与投票

    只读型副本:包含完整的日志、MemTable、SSTable等,不属于paxos组,但是listener

注:一个分区在一个Zone中最多有一个全功能或日志型副本;只读型副本在同一个Zone中可有多个

3.   多副本一致性协议


(1)以分区为单位组建Paxos协议组:

    每个分区都有多个副本,自动组建paxos组,在分区级用多副本保证数据可靠性和服务高可用,数据管理更加灵活方便。

(2)自动选举主副本:

    OB自动生成多份副本,多副本自动选举主副本,主副本提供服务。

4.   自动负载均衡与智能路由:


(1)自动负载均衡:

    主副本均匀打散到各个服务器中,使得各个服务器均能承载业务流量。

(2)每台OB Server 相互独立:

    每台OB Server均可以独立执行SQL,如果应用需要访问的数据在不同机器上,OB Server自动将请求路由放至数据所在的机器,对业务完全透明。

5.   通过多副本同步Redo Log确保数据持久性

(1)Paxos组成员通过Redo-Log的多数派强同步,确保数据的持久性。

(2)Leader无需等待所有Follower的反馈,多数派完成同步即可应用反馈成功

6.   OB Proxy为应用提供智能路由服务,应用透明访问:


(1)高效路由转发

  • 对SQL做基础解析,确定对应Leader所在的机器

  • 反向代理,将请求路由转发至对应Leader;无法确定位置随机选定OB Server

  • 轻量SQL解析+快速转发,保证高性能

注:单OB Proxy每秒转发百万次请求

(2)“非”计算节点,无状态

  • 每个OB Proxy是一个“无状态”的服务进程,不做数据持久化,对部署位置无要求

  • OB Proxy不参与数据库引擎的计算任务,不参与事务处理

  • 使用多个OB Proxy时较复杂,则可通过在OB Proxy服务器之前创建一个由FS/SLB组成的负载均衡集群;

  • 无需独立服务器,可与OB Server共用一台服务器或可将OB Proxy部署到应用服务器中

  • OB Proxy可以与应用服务器部署到一起,可对延时有较好控制;也可以不同服务器

7.   设置Primary Zone,将业务汇聚到特定Zone:

(1)配置一:(z1 , z2 , z3)           

意义:Zone_1=Zone_2=Zone_3

  • 主副本(Leader)均匀分布在各机器;

  • 适合批处理场景,希望尽快跑完,不关注某个sql的执行时间,期望让整体任务尽快完成

(2)配置二:(z1 ; z2 ; z3)          

意义:Zone_1 > Zone_2 > Zone_3

  • 主副本(Leader)只在Zone1存在,Zone2和Zone3是从副本;

  • 适合对时延敏感的在线处理业务有,业务量不大,不超过一台机器的处理能力,可尽量避免跨服务器时间,从而降低时延。

(3)配置三:(z1 , z2 ; z3)          

意义:(Zone_1 = Zone_2)>Zone_3

  • 主副本(Leader)均匀分布在Zone1和Zone2,Zone3是从副本;

  • 适合三地五中心方案,将业务汇聚到距离较近的城市,距离较远城市只承担从副本角色

注:通过为不同租户设置不同的Primary Zone,可以将业务流量集中到若干Zone中,减少跨Zone及服务器的操作。ZoneList,逗号两侧优先级相同,分号左侧优先级高于右侧

8.   PrimaryZone有租户、数据库和表不同的级别:


(1)如果无特殊指定,自动继承上级对象的primary_zone:database继承租户的primary_zone设置,table继承database的primary_zone设置

(2)database和table可以指定各自的primary_zone,不必和上一级对象的设置保持一致;提供更加灵活的负载均衡策略



部分解释:

多副本一致性协议:

(1)OceanBase的Paxos组以分区为单位,可以产生更详细力度的系统管控

(2)对于OBserver中的主从副本分配无需人工干预

(3)默认副本是均匀分布在Zone的各个Observer中

 

—— END / ————


文章转载自DataSpace社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论