dbms

Management of concurrent transaction execution is known as “Concurrency Control”. Transaction management in DBMS handles all transaction, to ensure serializability and isolation of transaction. DBMS implement concurrency control technique so that the consistency and integrity of the database can be hold.

并发事务执行的管理称为“并发控制” 。 DBMS中的事务管理处理所有事务,以确保事务的可串行性和隔离性。 DBMS实施并发控制技术,以便可以保持数据库的一致性和完整性。

The processes of managing simultaneously operation such that update, create, insert, delete on the database without having an interface with one another, known as concurrency control. It can be performed by various methods such as locking technique, time stamp technique, validation based technique.

同时管理操作的过程,例如在数据库上相互更新,创建,插入,删除而无需相互接口,这称为并发控制。 它可以通过各种方法执行,例如锁定技术,时间戳技术,基于验证的技术。

并发控制的锁定技术 (Locking Technique for Concurrency Control)

Locking is a procedure which controls concurrent access of the data. If one transaction is accessing the database, a lock may be denied access to other transaction to prevent the incorrect result. Locking technique is one of the most widely used mechanisms to ensure serializability. The principle of locking technique is that a transaction must obtain read or write lock in the database before it can perform a read or write operation.

锁定是控制并发访问数据的过程。 如果一个事务正在访问数据库,则可以拒绝锁访问其他事务,以防止产生错误的结果。 锁定技术是确保可序列化性的最广泛使用的机制之一。 锁定技术的原理是,事务必须先获得数据库中的读取或写入锁定,然后它才能执行读取或写入操作。

There are some basic rules for locking technique are as following:

锁定技术有一些基本规则,如下所示:

  • If a transaction has read lock on the data item, it can read the item but can’t update it.

    如果事务对数据项具有读取锁定,则它可以读取该项目但不能更新它。

  • If a transaction has read lock on the data item, other transaction can read on data item but can’t write on the data item.

    如果事务对数据项具有读取锁定,则其他事务可以在数据项上读取,但不能在数据项上写入。

  • If a transaction has to write lock on the data item, it can both read and update data item.

    如果事务必须在数据项上写锁,则它可以读取和更新数据项。

  • If a transaction has to write lock on data item then the other transaction neither read nor write on the data item.

    如果一个事务必须在数据项上写锁,则另一个事务既不在该数据项上读写。

锁定方式 (Mode of Locking)

There are basically two types of modes in which a data item may be locked:

基本上有两种模式可以锁定数据项:

  1. Shared Lock

    共享锁

  2. Exclusive Lock

    排他锁

1)共享锁 (1) Shared Lock)

If a transaction T has a shared lock on the data item q, then T can read but can’t write on q data item. It is denoted by (S).

如果事务T在数据项q上具有共享锁,则T可以在q数据项上读取但不能写入。 用( S )表示。

2)排他锁 (2) Exclusive Lock)

If transaction T has an exclusive lock on data item q, then T can read and write both on the data item. It is denoted by (X).

如果事务T对数据项q具有排他锁,则T可以在数据项上进行读写操作。 用( X )表示。

In order to access the data item, these conditions should be followed:

为了访问数据项,应遵循以下条件:

  • Transaction T must first lock it. If the data item is already locked by another transaction which is not comparable then T must wait until have been released & unlock.

    事务T必须首先将其锁定。 如果数据项已经被另一个不可比较的事务锁定,则T必须等待直到被释放并解锁。

  • The transaction must hold a lock on data item when it is accessed.

    事务在访问时必须对数据项保持锁定。

  • After that unlock it.

    之后,将其解锁。

A matrix given below shows the comparability between two lock modes:

下面给出的矩阵显示了两种锁定模式之间的可比性:

Shared (S) Exclusive(X)
S T T
X F F
共享的(S) 独家(X)
小号 Ť Ť
X F F

Example:

例:

Consider the following 2 transaction T(read(a), read(b)).

考虑以下2个事务T(read(a),read(b))

T1 T2
read(a)
read(b)
if a=0
then b=b+1
write(b)

T1 T2
read(a)
read(b)
if a=0
then b=b+1
write(b)

Find lock and unlock instruction of the transaction T1 & T2. Then observe the locking protocol? The execution of transaction is deadlock?

查找交易T1和T2的锁定和解锁指令。 然后遵守锁定协议? 交易的执行是否陷入僵局?

Solution:

解:

Lock and unlock instruction:

锁定和解锁说明:

T1 T2
lock S(a)
read(a)
lock X(b)
read(b)
if a=0
then b=b+1
write(b)
unlock(b)
unlock(a)
lock S(b)
read(b)
lock (a)
read(a)
if b=0
then a=a+1
write(a)
unlock(a)
unlock(b)

T1 T2
T1 T2
lock S(a)
lock S(b)
lock X(b)
lock X(a)
T1 T2
锁S(a)
锁S(b)
锁X(b)
锁X(a)

Yes, transaction has deadlock.

是的,交易陷入僵局。

翻译自: https://www.includehelp.com/dbms/concurrency-control.aspx

dbms

dbms_DBMS | 并发控制相关推荐

  1. python乐观锁代码实现_Elasticsearch系列—并发控制及乐观锁实现原理

    概要 本篇主要介绍一下Elasticsearch的并发控制和乐观锁的实现原理,列举常见的电商场景,关系型数据库的并发控制.ES的并发控制实践. 并发场景 不论是关系型数据库的应用,还是使用Elasti ...

  2. 事物的级别_浅谈MySQL并发控制:隔离级别、锁与MVCC

    推荐阅读: 恕我直言!收藏这个MySQL文档,你其余的MySQL学习资料都可以扔了 前言 如果数据库中的事务都是串行执行的,这种方式可以保障事务的执行不会出现异常和错误,但带来的问题是串行执行会带来性 ...

  3. 并发执行变成串行_一篇讲透如何理解数据库并发控制(纯干货)

    1.数据库并发控制的作用 1.1 事务的概念 在介绍并发控制前,首先需要了解事务.数据库提供了增删改查等几种基础操作,用户可以灵活地组合这几种操作,实现复杂的语义.在很多场景下,用户希望一组操作可以做 ...

  4. 第五篇:并发控制-隔离

    目录 回忆 隔离概念--I in ACID 可能的依赖关系 我们如何找到依赖关系? 依赖模型 依赖的正式定义 依赖关系 依赖关系 - 等价 隔离的历史 授予锁或不授予 隔离概念.. 隔离程度 回忆 • ...

  5. 数据库期末复习之并发控制

    一.问题的产生 1.数据库产生数据不一致的原因 一般导致数据库中数据不一致的原因有三种情况.产生数据不一致的原因主要有以下三种:一是由于数据冗余造成的:二是由于并发控制不当造成的:三是由于各种故障.错 ...

  6. 实现 Java 多线程并发控制框架

    2006 年 8 月 14 日 Java 提供了语言级别的线程支持,所以在 Java 中使用多线程相对于 C,C++ 来说更简单便捷,但本文并不是介绍如何在 Java 中使用多线程来来解决诸如 Web ...

  7. 多版本号并发控制(MVCC)在分布式系统中的应用

    QQ群:289150599 问题 近期项目中遇到了一个分布式系统的并发控制问题.该问题能够抽象为:某分布式系统由一个数据中心D和若干业务处理中心L1,L2 ... Ln组成:D本质上是一个key-va ...

  8. MySQL · B+树并发控制机制的前世今生

    前言 1970年,Rudolf Bayer教授在<Organization and Maintenance of Large Ordered Indices>一文中提出了B树[1],从它基 ...

  9. MySQL的并发控制与加锁分析

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制 ...

最新文章

  1. 一、javaSE (二十三)多线程
  2. 【问题收录】INSTALL_FAILED_NO_MATCHING_ABIS
  3. 面向对象的多态性(1)
  4. Java 面试知识点解析(一)——基础知识篇
  5. 王者荣耀进不去服务器维护中,王者荣耀苹果版更新后进不去 王者荣耀iOS版服务器维护怎么办...
  6. VSCODE 一键编译运行
  7. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...
  8. 海康威视查询序列号 紫盘
  9. Latex表格制作记录
  10. win10用不了计算机一级,教你一招解决Win10计算器打不开的问题
  11. 摆脱 AI 生产“小作坊”:如何基于 Kubernetes 构建云原生 AI 平台
  12. html中怎么让div撑开,html中子div用了浮动怎样让父div的大小自动撑开(清除浮动)...
  13. 餐饮连锁门店重塑增长背后的数字化转型
  14. 重温数据结构(C语言版)(第二版)
  15. c语言埃拉托色尼筛选法数组,埃拉托色尼筛选法 算法
  16. 二阶边值问题的数值解matlab,二阶线性微分方程边值问题的MATLAB求解
  17. 自己动手iPad贴膜小记
  18. Cesium 车辆跟踪事件气泡弹窗追随
  19. Thinking In Design Pattern——工厂模式演绎
  20. Docker-- 什么是Docker和Docker的基本知识

热门文章

  1. oracle ora 12011,执行oracle中的job报错:ORA-12011:无法执行作业1
  2. torch.view(), squeeze, unsqueeze
  3. 用户权限sudo、suid、sgid以及facl等
  4. 创造型模式——单例模式
  5. 视频AI,助力体育赛事转播走进智能时代
  6. DjangoAdmin站点调整列表页展示
  7. powerdns与nginx结合实现以域名和IP方式访问web服务器80端口时分别跳转到不同页面...
  8. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。
  9. 快速傅里叶变换应用之二 hdu 4609 3-idiots
  10. Hitv8 文件批量重命名工具