首页 > 数据库 >openGauss学习笔记-76 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT简介

openGauss学习笔记-76 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT简介

时间:2023-09-21 21:35:31浏览次数:34  
标签:存储 数据库 事务 MOT 内存 openGauss

openGauss学习笔记-76 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT简介

本节介绍了openGauss内存优化表(Memory-Optimized Table,MOT)的简介。

76 MOT简介

openGauss引入了MOT存储引擎,它是一种事务性行存储,针对多核和大内存服务器进行了优化。MOT是openGauss数据库最先进的生产级特性,它为事务性工作负载提供更高的性能。MOT完全支持ACID特性,并包括严格的持久性和高可用性支持。企业可以在关键任务、性能敏感的在线事务处理(OLTP)中使用MOT,以实现高性能、高吞吐、可预测低延迟以及多核服务器的高利用率。MOT尤其适合在多路和多核处理器的现代服务器上运行,例如基于Arm/鲲鹏处理器的华为TaiShan服务器,以及基于x86的戴尔或类似服务器。

图 1 openGauss内存优化存储引擎

image-20230615213958391

图1所示,openGauss数据库内存优化存储引擎组件(绿色部分)负责管理MOT和事务。

MOT与基于磁盘的普通(堆)表并排创建。MOT的有效设计实现了几乎完全的SQL覆盖,并且支持完整的数据库功能集,如存储过程和自定义函数(限制参见MOT SQL覆盖和限制)。自openGauss 3.1.1版本以来,在单查询(如JOIN)的MOT表和堆表(基于磁盘的普通表)以及多步骤和多表事务中,MOT还支持MVCC和跨引擎事务(Cross-TX)。

通过完全存储在内存中的数据和索引、非统一内存访问感知(NUMA-aware)设计、消除锁和锁存争用的算法以及查询原生编译,MOT可提供更快的数据访问和更高效的事务执行。

MOT有效的几乎无锁的设计和高度调优的实现,使其在多核服务器上实现了卓越的近线性吞吐量扩展,这可能是业界最好的。

MOT完全支持ACID特性:

  • 原子性(Atomicity):原子事务是一系列不可分割的数据库操作。在事务完成(分别提交或中止)之后,这些操作要么全部发生,要么全部不发生。
  • 一致性(Consistency):事务结束后,数据库处于一致状态,保留数据完整性。
  • 隔离性(Isolation):事务之间不能相互干扰。MOT支持可重复读、读已提交和快照隔离级别。更多信息,请参见MOT隔离级别
  • 持久性(Durability):即使发生崩溃和失败,成功完成(提交)的事务效果持久保存。MOT完全集成了openGauss的基于WAL的日志记录。同时支持同步和异步日志记录选项。MOT还支持同步+面向NUMA优化的组提交。更多信息,请参见MOT持久性概念

标签:存储,数据库,事务,MOT,内存,openGauss
From: https://blog.51cto.com/shuchaoyang/7557114

相关文章

  • C++-内存管理
    今天,和大家分享一些与内存管理相关的知识,本次的内容主要是new和delete的使用。内存这一块的知识,我们在学习C语言的时候,就有作相对细致的了解。我们现在来写几道题。做一个简单的回顾复习。内存的分布我们先来看看,下面一段代码:intglobalVar=1;staticintstaticGlobalVar=1;v......
  • Tomcat的增加/查看jvm虚拟内存&设置JRE
    Win 操作系统 第一种方法:修改 tomcat/bin/catalina.bat 文件增加一行 setJAVA_OPTS=-Xms128M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=128M  第二种方法:在环境变量中设置变量名:JAVA_OPTS变量值:-Xms512m-Xmx512m 第三种方法:前两种方法针对的是bin目录下有catalina.bat......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资源似乎在新版......
  • 【HarmonyOS】一文教你如何通过内存图片方式使用image组件加载网络图片资源
    ​【关键字】内存图片方式、image组件、网络图片资源、api6、服务卡片 1、写在前面之前写过一篇元服务卡片的开发指导,有需求的可以参考以下文章:【HarmonyOS】低代码开发之FA卡片开发流程在2.6初始化卡片部分,我们实现了加载网络资源的图片,但是直接使用image组件加载网络资......
  • 记一次 .NET 某餐饮小程序 内存暴涨分析
    一:背景1.讲故事前些天有位朋友找到我,说他的程序内存异常高,用vs诊断工具加载时间又太久,让我帮忙看一下到底咋回事,截图如下:确实,如果dump文件超过10G之后,市面上那些可视化工具分析起来会让你崩溃的,除了时间久之外这些工具大多也不是用懒加载的方式,比如dotmemory会把数据全......
  • 6.3 应用动态内存补丁
    动态内存补丁可以理解为在程序运行时动态地修改程序的内存,在某些时候某些应用程序会带壳运行,而此类程序的机器码只有在内存中被展开时才可以被修改,而想要修改此类应用程序动态补丁将是一个不错的选择,动态补丁的原理是通过CreateProcess函数传递CREATE_SUSPENDED将程序运行起来并暂......
  • 6.2 Sunday搜索内存特征
    Sunday算法是一种字符串搜索算法,由DanielM.Sunday于1990年开发,该算法用于在较长的字符串中查找子字符串的位置。算法通过将要搜索的模式的字符与要搜索的字符串的字符进行比较,从模式的最左侧位置开始。如果发现不匹配,则算法将模式向右滑动一定数量的位置。这个数字是由当前文本......
  • mmap:Python内存映射文件操作
    前言内存映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用户都能很方便的直接访问内存。本篇,将详细介绍Python内存映射库:mmap。mmap(读文件)使用mmap()函数可以创建一个内存映射文件。该函数的第1个......
  • openGauss学习笔记-75 openGauss 数据库管理-创建和管理序列
    openGauss学习笔记-75openGauss数据库管理-创建和管理序列75.1背景信息序列Sequence是用来产生唯一整数的数据库对象。序列的值是按照一定规则自增的整数。因为自增所以不重复,因此说Sequence具有唯一标识性。这也是Sequence常被用作主键的原因。通过序列使某字段成为唯一标识......
  • 非连续式内存分配
    本文中的图片均来自B站清华大学的操作系统课程为什么提出了非连续式内存分配:1.连续式内存分配的缺点(1)分配给一个程序的物理内存是连续的(2)内存利用率低(3)有外碎片/内碎片的问题2.非连续内存分配的优点(1)能够分配一个程序的物理内存是不连续的(2)能够更好进行内存的利用和管理(3......