OBCP第二章 OB存储引擎高级技术

简介: OBCP第二章 OB存储引擎高级技术

系统架构概念图

OceanBase数据库的存储引擎基于LSM Tree架构

静态基线数据(放在SSTable中)

动态增量数据(放在MemTable中)

本质上是一个基线加增量的存储引擎,跟关系数据 库差别很大,同时也借鉴了部分传统关系数据库存 储引擎的优点。

由于OceanBase 数据库采用基线加增量的设计,一部分数据在基线,一部分在增量,原理上每次查 询都是既要读基线 ,也要读增量 。为此, OceanBase数据库做了很多的优化,尤其是针对单行的优化。

内存分配(一)

OceanBase是支持多租户架构的准内存分布式数据库,对大容量内存的管理和使用提出了很高要求

OceanBase会占据物理服务器的大部分内存并进行统一管理

                                   

OceanBase是支持多租户架构的准内存分布式数据库,对大容量内存的管理和使用提出了很高要求

OceanBase会占据物理服务器的大部分内存并进行统一管理

通过参数设定observer占用的内存上限

memory_limit_percentage

memory_limit

memory_limit的默认单位为MB例如,memory_limit='40G'表示设置OceanBase 数据库进程的使用内存上限40GB。由于默认单位为MB,则memory_limit=40960 与memory_limit='40G'设置的值相同。

如果希望限制运行中的OceanBase数据库的内存大小,可以直接修改 memory_limit的值,使其达到预期。设置后,后台参数Reload线程会使其动态生效,无需重启。但是在设置时,需要保证memory_limit的值小于系统总的值。

参数说明

OceanBase提供两种方式设置observer内存上限:、


按照物理机器总内存的百分比计算observer内存上限:由memory_limit_percentage参数配置


直接设置observer内存上限:由memory_limit参数配置


memory_limit=0时,memory_limit_percentage决定observer内存大小;否则由memory_limit决定observer内存大小


以100GB物理内存的机器为例,下述表格展示了不同配置下机器上的observer

memory_limit_percentage

mermory_limit

Observer内存上限

场景1

80

0

80GB

场景2

80

90GB

90GB

场景1:memory_limit=0,因此由memory_limit_percentage确定observer内存大小,即100GB*80% = 80GB


场景2:memory_limit='90GB',因此observer内存上限就是90GB,memory_limit_percentage参数失效


内存分配(二)

OB系统内部内存

每一个observer都包含多个租户(sys租户 & 非sys租户)的数据,但observer的内存并不是全部分配给租户

observer中有些内存不属于任何租户,属于所有租户共享的资源,称为“系统内部内存”

通过参数设定“系统内部内存”上限 system_memory

租户可用的总内存 “observer内存上限”-“系统内部内存”



内存分配(三)

每个租户内部的内存总体上分为两个部分

不可动态伸缩的内存:MemStore, MemStore用来保存DML产生的增量数据,空间不可被占用

可动态伸缩的内存:KVCache, KVCache空间会被其它众多内存模块复用

           

MemStore

1.大小由参数memstore_limit_percentage决定,表示租户的 MemStore 部分占租户总内存的百分比。


2.默认值为50,即占用租户内存的50%


3.当MemStore内存使用超过freeze_trigger_percentage定义的百分比时(默认70%),触发冻结及后续的转储/合并等行为

KVCache

保存来自SSTable的热数据,提高查询速度

大小可动态伸缩,会被其它各种Cache挤占

内存结构总体结构回顾

相关文章
|
SQL 缓存 关系型数据库
OBCP题目及解析
OBCP题目及解析
1506 0
|
人工智能 Linux 虚拟化
Linux Centos虚拟机扩容
Linux Centos虚拟机扩容
|
资源调度 索引
OBCP考点总结一
OBCP考点总结一
338 0
|
SQL 缓存 调度
OBCP考点总结三
OBCP考点总结三
263 0
|
SQL Oracle 关系型数据库
OBCP部分考点总结
OBCP部分考点总结
306 0
|
存储 容灾 关系型数据库
OceanBase 高可用性架构解析
【8月更文第31天】在大数据和云计算蓬勃发展的今天,数据库作为数据存储的核心组件,其稳定性和可靠性直接影响到整个系统的性能。OceanBase 是由阿里巴巴集团自主研发的一款分布式关系型数据库系统,旨在为大规模在线交易处理(OLTP)场景提供高性能、高可用性的解决方案。本文将深入探讨 OceanBase 是如何通过其独特的架构设计来确保数据的高可用性和容灾能力。
681 0
如何调整 YOLOv3 的 NMS 参数以优化检测性能?
如何调整 YOLOv3 的 NMS 参数以优化检测性能?
|
SQL 存储 关系型数据库
深入OceanBase内部机制:系统架构与组件精讲
深入OceanBase内部机制:系统架构与组件精讲
深入OceanBase内部机制:系统架构与组件精讲
|
机器学习/深度学习 人工智能 算法
从零到一:技术创新与思维跃迁的旅程###
在技术探索的浩瀚星海里,每一次创新都是对未知领域的勇敢征服。本文通过个人实践经历,分享了从初涉技术领域的迷茫与挑战,到实现关键技术突破的心路历程。强调了持续学习、跨界融合及勇于试错的重要性,揭示了在技术革新背后,是思维方式的根本转变和不懈追求。 ###
|
弹性计算 资源调度 负载均衡
OBCP第一章:OB分布式架构高级技术
OBCP第一章:OB分布式架构高级技术
394 0

热门文章

最新文章