OceanBase租户间是如何实现资源隔离的?

OceanBase租户间是如何实现资源隔离的?

4 个赞

@论坛小助手 帮忙看一下

根据文档库中的信息,OceanBase数据库通过多种方式实现了租户间的资源隔离,确保了不同租户间的数据和服务相互独立且不互相干扰。下面总结了主要的隔离机制:

1. Unit作为资源分配的基本单位

  • OceanBase数据库将Unit视为给租户分配资源的基本单元。一个Unit可以类比为一个Docker容器。
  • 每个节点上可以创建多个Unit,在创建时每个Unit都会占用该节点的一部分CPU、内存等物理资源。
  • 一个租户可以在多个节点上放置多个Unit,但在同一节点上只能拥有一个Unit。

2. CPU资源的有效控制

  • 目前版本中,OceanBase数据库通过控制活跃线程数量(实际消耗CPU资源的线程)来管理CPU使用情况。
  • 创建租户时指定的资源池定义了租户级别的CPU规格,从而实现租户间的CPU使用隔离。
  • 在最新版本中,内核还支持通过cgroup技术对CPU进行更精细的控制和限制,但需要操作系统级别的配置配合生效。

3. 全局层面的前后台任务隔离

  • OceanBase数据库支持全局CPU资源的前后台隔离功能,能够在全局层面上对所有租户的前台与后台任务进行资源隔离。

4. 多种类型的资源隔离

  • 资源隔离包括但不限于User级别、SQL级别以及Function级别的资源隔离。
  • 通过DBMS_RESOURCE_MANAGER系统包,管理员能够进一步控制租户对于CPU和IOPS的占用情况。

5. 轻量级隔离优势

  • 与Docker或虚拟机相比,OceanBase数据库的租户隔离方案更为轻量化,并且易于实现优先级设置等高级特性。
  • 它避免了Docker或虚拟机在环境开销大、迁移成本高以及资源共享不便等方面的不足。

这些措施共同作用下,保证了OceanBase数据库内各租户之间具有良好的资源隔离性,提高了系统的稳定性和性能表现。

参考文献:

具体信息可参考以下文档:

  1. 租户间的资源隔离
  2. 多租户线程常见问题
  3. 使用全局 CPU 资源的前后台隔离
  4. 配置租户内资源隔离
  5. 资源隔离概述
  6. 体验多租户特性
  7. 登录 OceanBase 租户
  8. 租户的资源管理

学习下

本质上操作系统层面的cgroup方式吧

出来了边路吧唧吧唧

边路边路边路

操作系统集成电路模型