分布式数据库系统中的并发控制

Concurrency Control in Distributed Database System
分布式数据库系统中的并发控制_第1张图片
2016 年计算机通信与信息学国际会议 (ICCCI -2016),2016 年 1 月 7 日至 9 日
摘要:并发操纵并发事务执行的控制。分布式数据库管理系统强制执行并发操作以确保事务的可序列化和隔离。在这个领域已经进行了大量的研究,并且已经使用了许多算法。在本文中,我们将比较几种用于在 DDBMS 中保留事务的 ACID 属性(原子性、一致性、隔离性和持久性)的算法。

关键字:分布式数据库、事务、锁定、可序列化、ACID

1 介绍

数据库是处理组织活动的一组数据。 DDB 是一种允许通过相同或通用语言对数据进行分散管理的方案。并发控制处理以多用户方式协调对数据库的并发访问的问题。锁定是一种用于控制对数据的并发访问的方法。锁定是一个具有与之关联的数据项的变量。它是项目的状态,它说明可能适用于它的所有操作。对于数据库中的每个项目,一个锁可用。锁被用作同步并发事务对数据库项的访问的一种手段。一些提供并发操作的算法是锁相、时间戳、多模型时间戳和许多其他算法。

2 分布式数据库

分布式数据库 (DDB) 是一组分布在计算机网络上的共享数据。通过它可以高速访问数据。系统使用介质相互通信,例如电话线和高速网络。 DDB 由松散耦合的站点组成,它们在物理上不共享部分。

2.1 分布式数据库的类型

2.1.1 同构分布式数据库

  • 数据分布在其中,但所有数据中心使用相同的DBMS 软件。
  • 根据用户的要求,都同意统一处理。
  • 向用户提供单一系统外观。

2.1.2 异构分布式数据库

  • 数据分布在其中,但所有数据中心使用不同的DBMS 软件。
  • 不同的DDBMS 控制其下的不同节点。

3 并发控制

DB 中的并发控制管理与操作相关的实际并发执行。它以保持数据一致性的方式完成。如果为每类事务提供相同程度的支持并且服务定义随应用程序而变化,则可以说并发控制中的算法是诚实的。并发控制中的问题是防止一个特定用户执行的数据库更新干扰数据库检索以及另一个用户执行的更新。如果事务被处理,可能会导致与数据的一致性问题。同时更新数据。

为了更深入地理解它,让我们考虑一个预订系统的例子,其中两个人 A 和 B 尝试一次预订同一个座位。图 1 显示 18 号座位可供预订。 A 和 B 都试图保留那个座位。预订时会出现问题。这是由于该预订系统的数据库中缺乏并发控制。因此,有必要采取措施。
分布式数据库系统中的并发控制_第2张图片

4 算法

4.1 锁

……

4.2 基本时间戳排序 (BTO)

时间戳排序 (TO) 是一个使用 DBMS 创建的唯一时间戳来标识事务的过程。这是交易在系统中执行的顺序;我们可以说它是事务的开始时间。

BTO 保证时间戳顺序的有效性。当事务不遵循此顺序时,它将以新的时间戳重新启动。在此时间戳算法中,如果请求的事务的时间戳大于对象的写入时间戳,则允许读取请求,否则拒绝读取请求.对于写入请求,如果请求事务的时间戳大于对象的读取时间戳或大于对象的写入时间戳。否则,它拒绝写请求。

4.3 算法之间的比较

  • 与分布式环境相比,2PL 在集中式环境中表现良好,而时间戳排序在两种环境中都表现良好。
  • 在 Strict-2PL 的情况下,它的工作方式与 2PL 相同,但其优势是其他事务甚至不会读取您写入的任何内容,直到你承诺。例如,事务将只读取已提交的数据。它还有一个缺点是交易可能会在等待中结束。例如,insert 可能会因为 phantom 问题锁定整个表。
  • 缠绕等待的缺点是等待图的构建在数据库分布式时更加极端,等待图必须从不同站点的锁表的集合。即使没有死锁,它也会回滚事务。
  • Wait-Die 的等待时间,其中旧事务等待年轻事务完成,可能会减慢。• 根据 Wait-Die,请求的较年轻事务可能会终止或重新启动。但是,如果它以相同的时间戳重新启动,它可能与相同的旧事务发生冲突。
  • 在 Wait-Die 中,旧事务永远不会重新启动。 [4] 在 Wound-Wait 的情况下,旧事务可能会重新启动几次。
  • 在 BTO 中,时间排序 (TO) 调度程序的问题是维护时间戳的内存成本很高。
  • BTO 的另一个缺点是,每当一个事务被中止并使用新的时间戳重新开始导致循环重启,其中它们在没有完成的情况下中止。

5 结论与未来工作

在本文中,我们讨论了分布式数据库系统中的并发控制。我们还描述并比较了一些关于并发控制的算法,如 2PL、Strict 2PL、Wound-Wait、Wait-Die 和基本时间戳排序。ACID 属性对于数据库中的事务非常重要。未来,我们将研究和比较 2PLocking 算法,并尝试改进分布式数据库中的 2PLocking 技术。

你可能感兴趣的:(数据库,报告,数据库,分布式,java)