【CMU 15-445】Lecture 15: Concurrency Control Theory 学习笔记

Concurrency Control Theory

  • Definitions
  • ACID: Atomicity
  • ACID: Consistency
  • ACID: Isolation
  • ACID: Durability

本节课主要介绍事务的概念和特性。

Definitions

事务是一组数据库操作(比如SQL语句)的集合,进一步可以抽象为对某些数据对象的读写操作序列。因为多个用户请求并发运行时,对数据对象的读写可能产生不一致的现象,所以需要事务及其机制辅助进行管制。
一个数据库中的所有事务需要满足以下几个性质:

  • 原子性:事务包含的操作要么全部执行要么全部不执行
  • 一致性:如果数据库在事务开始前是一致的,那么在该事务完成后也要确保数据库是一致的;数据库的一致性由用户指定, 比如银行转账时,数据库的一致性体现在两个账户的总额保持不变。
  • 隔离性:事务之间是相互隔离的,当有若干事务并发执行时,各事务间不影响,表现出与某种串行执行一样的结果。
  • 持久性:事务提交后,对数据库造成的影响应当是持久性的

ACID: Atomicity

通常可以采用两种方法实现事务的原子性:

  • Logging:DBMS为事务中已执行的操作记录上日志,并在事务异常终止时进行undo操作。
  • Shadow Paging:DBMS为每个事务单独分配pages进行修改,当事务正常提交后再更新进入数据库,如果事务异常终止,则只需要删除其对应的pages即可。这种做法不常用,因为它只在事务异常终止时的恢复阶段较方便,在正常情况下效率低于Logging。

ACID: Consistency

数据库一致性:数据库中的数据需要满足一些现实世界的约束(用户自定义的)以及一些整数约束(如年龄不应该为负数等等)
事务一致性:如果数据库在事务执行前是一致的,那么在事务提交后也应该一致,应用层应该使设计出来的事务满足这个特性

ACID: Isolation

DBMS确保事务间隔离,通过一些机制让正在执行的事务以为当前没有其他事务与自己并行执行。最简单的方式是串行执行事务,但是为了提高效率,当前的系统通常采用事务的并行执行。需要保证的是,并行执行的结果与串行执行的结果一致,从而实现并行隔离性。
并行调度器会产生许多并行执行方案,只有在并行执行方案的执行结果与某种串行执行方案的结果一致时,我们才认为这种执行方案是符合事务隔离性的,或者说这种并行执行方案是可串行化的。
可串行化的方案有两种:

  • 冲突可串行化
  • 视图可串行化

主要看冲突可串行化,如何判断一个执行方案是冲突可串行化的?
首先冲突是什么?冲突就是两个方案中的Read和Write操作前后冲突了,有以下三种情况:

  • Read-Write Conflicts (“Unrepeatable Reads”)
  • Write-Read Conflicts (“Dirty Reads”)
  • Write-Write Conflict (“Lost Updates”)

然后是,判断执行方案为冲突可串行化方案的方法,可以尝试构造这样一个有向图:顶点为所有事务、边为事务之间的冲突(冲突由两个事务的两个操作组成,边的方向由时间戳小的事务指向时间戳大的事务),如果为DAG,则该执行方案为冲突可串行化的方案。
如下图为冲突可串行化的执行方案:
在这里插入图片描述
如下图不是冲突可串行化的执行方案:
在这里插入图片描述

ACID: Durability

DBMS需要确保在系统断电时,已提交的事务所造成的影响可持久化,可采用Logging或Shadow Paging的方式,无论采用哪种方法,需要借助非易失性存储实现。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

10W 音频功率放大电路芯片TDA2003,可用于汽车收音机及收录机中作音频功率放大器,内部具有短路保护和过热保护等功能

TDA2003 用于汽车收音机及收录机中作音频功率放大器。 采用 TO220B5 封装形式。 主要特点: ⚫ 内部具有短路保护和过热保护。内部具有地线开路、电源极性接 反和负载泄放电压反冲等保护电路。 ⚫ 输出电流大。 ⚫ 负载电阻可低至 1.6 。 …

matlab批量替换txt文本文件的特定行的内容

1.下图所示,我想要替换第14行。 2.运行代码后,第14行已经更改为需要的内容。 clc,clear; %%----------------------需要更改的地方------------------------------------ % 设置要操作的文本文件路径,替换为你自己的文件路径 path D:\paper_…

基于面结构光的高反射物体重建方法(相位偏折术)

Elon Musk曾表示,“在实现全自动驾驶的过程中,三维重建技术是不可或缺的一环。” Facebook的创始人Mark Zuckerberg也指出,“元宇宙时代的来临将更加依赖于高度精细的三维空间表达。” 这些业界巨擘的言论无疑为三维重建的未来发展注入了强大…

java 数据结构栈和队列

目录 栈(Stack) 栈的使用 栈的模拟实现 栈的应用场景 队列(Queue) 队列的使用 队列模拟实现 循环队列 双端队列 用队列实现栈 用栈实现队列 栈(Stack) 什么是栈? 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操…

No matching version found for get-symbol-description@^1.0.2前端项目报错解决(亲测可用)

目录 一、问题详情 二、解决方案 一、问题详情 拉取一个新的项目的时候,前端进行install依赖的时候,报了如下的错误。 6120 verbose node v16.15.1 6121 verbose npm v8.11.0 6122 error code ETARGET 6123 error notarget No matching version foun…

推荐!2024年最热门的EDM邮件营销工具

独立站的潮流中,各个平台都在追求不同的流量策略。在这其中,EDM成为一个不可忽视的渠道。毕竟,以近乎零成本获取的流量,再加上高转化率和老客户的回购,简直让人心动。 在各类建站平台的应用库中,EDM工具种…

高通 AI Hub 上手指南

文章介绍 2月26日,高通在2024年世界移动通信大会(MWC2024)上发布高通AI Hub, AI Hub 简化了AI 模型部署到边缘设备的过程。可以利用AI-hub云端托管 Qualcomm 设备上,在几分钟内完成模型的优化、验证和部署。本文以Pyto…

前端sql条件拼接js工具

因为项目原因&#xff0c;需要前端写sql&#xff0c;所以弄了一套sql条件拼接的js工具 ​ /*常量 LT : " < ", LE : " < ", GT : " > ", GE : " > ", NE : " ! ", EQ : " ", LIKE : " like &qu…

浅谈集群的分类

本文主要介绍集群部署相关的知识&#xff0c;介绍集群部署的基础&#xff0c;集群的分类、集群的负载均衡技术&#xff0c;集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、网卡、内存、磁盘、处…

Linux-Uboot命令

help命令 进入 uboot 的命令行模式后输入“help”或者“&#xff1f;”&#xff0c;然后按下回车即可查看当前 uboot 所支持的命令。 查看某一个命令的帮助信息&#xff1a;&#xff1f;命令名称 或 help命令名称 信息查询命令 常用的和信息查询有关的命令有 3 个…

R语言混合效应(多水平/层次/嵌套)模型及贝叶斯实现技术应用

回归分析是科学研究中十分重要的数据分析工具。随着现代统计技术发展&#xff0c;回归分析方法得到了极大改进。混合效应模型&#xff08;Mixed effect model&#xff09;&#xff0c;即多水平模&#xff08;Multilevel model&#xff09;/分层模型(Hierarchical Model)/嵌套模…

即时设计和Axure对比,哪一个好用?

无论是国外页面设计工具&#xff0c;页面设计工具的发展从来没有停滞过&#xff0c; Axure&#xff0c;无论是国产设计工具即时设计&#xff0c;其功能都在不断更新迭代&#xff0c;为设计带来更高效的设计体验。今天对比两个设计工具&#xff0c;帮你找到最适合自己的&#xf…

SQL注入漏洞解析--less-46

我们先看一下46关 他说让我们先输入一个数字作为sort,那我们就先输入数字看一下 当我们分别输入1&#xff0c;2&#xff0c;3可以看到按照字母顺序进行了排序&#xff0c;所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式 当输入时出现报错提示&#xff0c;说…

编曲学习:和声小调 终止式 离调和弦 转调应用

和声小调 音阶 大调音程关系排列:全 全 半 全 全 全 半 小调音程关系排列:全 半 全 全 半 全 全 C大调音阶: 1 2 3 4 5 6 7 1 C小调音阶: 1 2 b3 4 5 b6 b7 1 C大调基本音级构成的和弦: Cmaj7 Dmin7 Emin7 Fmaj7 G7 Amin7 Bm7-5 C小调基本音级构成的和弦: Cmin7 D…

LeetCode 刷题 [C++] 第141题.环形链表

题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…

Qt介绍以及qt_creater的安装和C++项目工程创建

最近天气严寒&#xff0c;同学们要注意保暖哦&#xff01;学习的同时别忘了照顾好自己呀&#xff01;o(*&#xffe3;▽&#xffe3;*)ブ 目录 一、Qt 1、Qt概念 2、常见的GUI 二、安装qt_creater 方法一&#xff1a; 方法二&#xff1a; 三、Qt_creater 中C项目的创建 …

学会玩游戏,智能究竟从何而来?

最近在读梅拉妮米歇尔《AI 3.0》第三部分第九章&#xff0c;谈到学会玩游戏&#xff0c;智能究竟从何而来&#xff1f; 作者: [美] 梅拉妮米歇尔 出版社: 四川科学技术出版社湛庐 原作名: Artificial Intelligence: A Guide for Thinking Humans 译者: 王飞跃 / 李玉珂 / 王晓…

Langchain-Chatchat:离线运行的大模型知识库 | 开源日报 No.182

chatchat-space/Langchain-Chatchat Stars: 22k License: Apache-2.0 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现的开源、可离线部署的检索增强生成 (RAG) 大模型知识库项目。该项目是一个可以实现完全本地化推理的知识库增强方案&#xff0c;重点解决数据安全保护…

智慧公厕让社区生活更美好

随着科技的迅猛发展&#xff0c;城市管理、城市服务均使用科技化的手段进行升级改造&#xff0c;社区生活更美好赋予全新的智慧效能&#xff0c;其中智慧公厕也成为了城市环卫设施的新宠。智慧公厕以物联网、互联网、大数据、云计算、5G通信、自动化控制等技术为核心&#xff0…

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

目录 前言1 安装依赖2 安装MySQL3 安装redis4 编译ZLMediaKit代码及依赖下载编译运行&#xff08;如果要运行wvp整个项目&#xff0c;这步可以先不执行&#xff09; 5 编译wvp-pro下载源码&#xff08;建议从github上下载&#xff0c;gitee上维护有时候不是很同步&#xff09;编…