【数据库】MVCC

news2025/1/24 4:57:01

Multi-version Concurrency Control

DBMS 维护一个对象的多版本在数据库中。所以事务可以访问历史版本信息。

只依赖MVCC做不到可串行化;

一个事务在改对象的时候,留下一个历史版本,其他的事务可以读这个历史版本的数据。

读者不锁写着;
写者不锁读者;

只读的事务可以一直读一个一致的快照,在无锁的情况下。
Read-only txns can read a consistent snapshot without acquiring locks.

利用时间戳来作为一个版本号。
在这里插入图片描述
MVCC并发控制
#1 Timestamp Ordering 结合
#2 Optimistic concurrency control 结合
#3 Two-phase locking 结合

MVCC存储方法
#1 Append-only storage
把新的版本放在末尾;
把旧的版本放在末尾;

#2 Time-travel storage
创建一个历史表,来记录历史的版本。
在这里插入图片描述
#3 Delta Storage
历史表只存储变化的值。是一种时间换空间的方法。
在这里插入图片描述

MVCC垃圾回收
DBMS needs to remove reclaimable physical versions from the database over time:
No active txn in the DBMS can see that version;
The version was created by an aborted txn;

#1 以行记录为基础的回收
Background Vacuuuming:
后台的线程按时间线扫描所有记录
在这里插入图片描述
合作的垃圾清理:不需要一个专门的后台线程来进行垃圾回收,而是每个线程在访问的时候,顺手进行垃圾清理。
在这里插入图片描述
#2 以事务为基础的回收
事务记录自己的更改的版本。
在这里插入图片描述

MVCC下的索引管理

辅助索引:
#1 logical pointer
需要二次访问;

#2 Physical pointer
在这里插入图片描述
如果插入的话,那么所有辅助索引的指向地址值都要更改。

MVCC 的索引就可能指向多个版本信息;
在这里插入图片描述
从一个索引可以找到多个的历史版本,然后找到自己所需要的那一个版本信息。同时,为了保证索引的唯一性,需要额外的逻辑来辅助。

MVCC删除的时候,也要保证所有的版本都没有用了。才可以删除。
MVCC删除
在每一个版本后面增加一个标志,标志其是删除的;
插入一个墓碑,墓碑前面的版本都是删除的。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/105205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ch3_2多进程中寄存器的切换

运行中的程序在进行切换时, 可以分为以下两类: 线程: 只涉及指令的切换, 硬件资源没有切换;进程: 包含指令的切换,以及硬件资源的切换, 其中映射表便是一种内存资源。 1. 进程间的…

用3Dmax优化模型的方法,让你的效果图又快又好

3DMax是一个特别强大的建模软件,它具有无数需要小伙伴付出时间和练习才能掌握的特性和功能。 如果你已经能足够直观的掌握基础知识,并且已经能创造出很优秀的作品。这必然是一件值得高兴的事。 但是,在设计过程的妙处就在于,总是…

Prometheus集成Grafana(手动创建/通过模板创建Dashboard)

目录1. Grafana的基本介绍2. Centos7上安装Grafana2.1 下载解压2.2 修改conf/default.ini2.3 启动grafana3. Grafana各层级关系4. 添加Prometheus数据源5. 添加Dashborad和手动添加Row和Panel(方式一)6. 通过社区提供的模板创建Dashboard(方式二)1. Grafana的基本介绍 grafana…

自然语言基础之分词提取关键词基本操作

概述 从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类语言之间的沟通桥梁. 关键词 关键词 (keywords), 即关键词语. 关键词能描述文章的本质, 在文献检索, 自动文摘, 文本聚类 / 分类等方面有着…

我发现,被裁的一般都是情商低的人!网友:老板只看你有没有利用价值!

什么样的人容易被裁员?一位网友分享了自己的发现:被裁的一般都是情商比较低的。有人认同楼主,情商高能在一定程度上降低被裁的概率,大多数被裁的员工是因为情商不够,导致人际关系不好,才被辞退。有人说&…

JS如何读取对象内的一个属性两种方法

目录一:读取对象内的一个属性--可以用数组二:读取对象内的一个属性--可以用 .1、点的方式2、中括号的方式一:读取对象内的一个属性–可以用数组 二:读取对象内的一个属性–可以用 . let obj {name:张三,age:18,address:中国}1、…

【PAT甲级 - C++题解】1067 Sort with Swap(0, i)

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:PAT题解集合 📝原题地址:题目详情 - 1067 Sort with Swap(0, i) (pintia.cn) 🔑中文翻译:用 Swap(0, i) 操作…

【关于时间序列的ML】项目 3 :基于机器学习的地震预测模型

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

Datawhale powerful-numpy《从小白到入门》学习笔记

Datawhale powerful-numpy《从小白到入门》学习笔记 持续更新中 文章目录Datawhale powerful-numpy《从小白到入门》学习笔记摘自官方文档的一些话What is NumPy?Why is NumPy Fast?Who Else Uses NumPy?一.创建和生成1.从python列表或元组创建从列表创建从元组创建2.使用ar…

基于ISO13209(OTX)实现引导诊断

在上篇文章《基于ISO13209(OTX)实现EOL下线序列》中,讲到了OTX的由来以及OTX在EOL中的实现案例,而本文将讲述OTX的另一个广阔应用场景——定义引导诊断序列。 一 何为引导诊断? 引导诊断,通常也称为“引导…

市面上有哪些自动生成报表的工具?

每到月末、季度、年底,就是企业里各营销、财务、运营、企管等各部门“摆数据、晒业绩”的时候,除了财务因为有规范的制度约束,在规则和工具上更有保障(最常见的就是在财务软件/ERP 里面自动生成三大周报)之外&#xff…

GoPass系列免杀基础(一)

Goby社区第 23 篇插件分享文章 全文共:7730 字 预计阅读时间:20 分钟 小板凳提示:过数字全家桶(开启晶核)、某绒、卡巴、WD、某管家、魔法保姆、机器人、橘子,全程新手简单版,欢迎师傅们来交流…

一个被迫毕业面试 30 家公司,终于上岸了的Java老前辈的经验分享!

今天分享一个朋友的经历,被“毕业”后的求职经历: 在老东家干了 6 年,发展一般,很想出去,但是一直没有合适的机会,只好一边准备面试一边学习。让我没有想到的是,突然收到了“毕业”通知&#x…

大数据Kudu(十):Flink操作Kudu

文章目录 Flink操作Kudu Flink操作Kudu Flink主要应用场景是流式数据处理上,有些公司针对流式数据使用Flink实时分析后将结果存入Kudu,例如快手公司。这里将实时计算的结果存入Kudu需要自定义Flink Kudu Sink。 场景:Flink实时读取Socket数据,将结果存入Kudu表t_flink_re…

详解OpenCV的椭圆绘制函数ellipse()

函数ellipse()用于在图像上绘制椭圆。 有两种原型,这里只列出常用的那种。 C原型如下: void cv::ellipse(InputOutputArray img,Point center,Size axes,double angle,double startAngle,double endAngle,const Scalar & color,int thickness 1,…

地统计插值学习心得(三)ArcGIS Pro与ArcMap软件中地统计分析的区别

前言 ArcMap中地统计分析由来已久,很多GIS专业的同学学习地统计内容都是在ArcMap软件中实现的,随着IT技术的发展,ArcGIS系列软件架构也发生了重大变化,传统的ArcMap软件已不太能够满足当前的应用需求,在此背景下,ESRI推出了64位的ArcGIS Pro桌面软件,来实现二三维一体化…

【关于时间序列的ML】项目 4 :使用机器学习预测迁移

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

【关于2022年卡塔尔世界杯】

2022卡塔尔世界杯最全面的看点和分析,相信一定有你感兴趣的一点,相信一定会有你感兴趣的,推荐点赞收藏~~ 2022年世界杯比以往任何时候都晚,因为卡塔尔太热了…… 然而,四年一度的世界杯终于……来了 今年的世界杯&am…

非零基础自学Golang 第14章 反射 14.1 反射定义

非零基础自学Golang 文章目录非零基础自学Golang第14章 反射14.1 反射定义14.1.1 反射的定义14.1.2 与其他语言的区别第14章 反射 我们常用的一个打印函数fmt.Println()可以打印任何类型的数据,但是它本身是怎么实现的呢? 解读源码可以看到&#xff0c…

人员定位系统如何实现对人、车、物的安全管控?

人员定位系统是采用物联网设计理念,通过结合定位基站、视频监控、人脸抓拍、巡更、门禁、道闸、梯控等系统,对管控区域工作人员、访客、巡检人员进行精细化、规范化、智能化理。 智慧安全的概念随着物联网技术的发展逐渐成为发展趋势,人员定位…