主页 > 云主机 > > 正文

网站建设_七牛云存储价格_促销

来源:胜利云 发布时间:2022-05-26 15:30 标签:存储促销价格网站建设七牛
浏览:

网站建设_七牛云存储价格_促销

事务之间的相互影响可能导致数据库状态的不一致,即使各个事务能保持状态的正确性,而且也没有任何故障发生。如下图所示,当多个事务同事存取共享的数据库时,如何保证数据库的一致性?

由并发带来的不一致性包括:

(1)丢失数据修改

当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。

(2)读"脏"数据(脏读)

读"脏"数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被除撤消,而此时T1把已修改过的数据又恢复原值,T2读到的数据与数据库的数据不一致,则T2读到的数据就为"脏"数据,即不正确的数据。

( 3)不可重复读

指事务T1读取数据后,事务T2执行更新操作,使T1无法读取前一次结果。

(4)产生幽灵数据

按一定条件从数据库中读取了某些记录后,公司自助建站,T2删除或插入了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失或增加。

要解决这些问题,必须看一看保证并发执行的一组事务能保持数据库状态一致性的条件。如果每个事务都是首先一个事务的所有动作,然后是另一个事务的所有动作,以此类推,没有动作的混合,那么这一个调度就是串行调度。这样的调度是一致的,大数据好不好,然而在实践中,这种调度无法达到多个事务的并发执行,SAP HANA如果按串行执行,也无法达到多核并行执行事务的目的。

事务的正确性告诉我们,每个串行调度都能保持数据库的一致性。但是还有其他能保证一致性的调度吗?有,怎么成为淘客,通常,不管数据库如果一个调度的结果与某一串行调度执行的结果等价,则称该调度是可串化调度,否则是不可串调度。实现可串行化调度,主要有封锁,时间戳,有效性确认等方法。

我们给每个事务分配一个"时间戳",记录最后读和写每个数据库元素的事务的时间戳,并比较这些值以保证按照事务的时间戳排序的串行调度,等价于事务的实际调度。为了使用时间戳来作为并发控制方式,调度器需要赋给每个事务T一个唯一的数值,即时间戳TS(T)。时间戳必须在事务首次通知调度器自己将开始时升序发出。在SAP HANA中,调度器根据事务的commit时间戳进行计数。

多版本的时间戳并发控制的一个重要方面是除了维护数据库当前的、存储在自身中的版本外,还维护数据库元素的旧版本。目的是允许其他情况下导致事务T中止(由于T的当前版本应在T以后写入)的读操作继续进行,这是通过让具有T时间戳的事务读适合它的X版本来达到的。如果数据库元素是块,或页,这种方法特别有用,因为这时所需要做的只是让缓冲区管理器在主存中容纳对当前摸个事务来说可能由于的某些块。由于SAP HANA是内存数据库,因此非常适合此种方法。此种方法也可以解决丢失数据修改、读"脏"数据(脏读)、不可重复读、产生幽灵数据这些一致性问题。

这种方式中数据的更新不是通过覆盖(Overwrite)已存在的记录,而是插入一个新版本的记录,这样在更新之前的事务可以用老版本的数据,不必担心之后的事务会修改它所用的数据。

如下图所示,五个事务先后执行,T1插入记录D,此时生成D的第一个版本V1。T1 commit之后,D的V1版本为当前版本。T3对D进行更新,产生D的第二个版本V2。T2为read事务,在开始时的时间戳在T1后T3 commit前,因此T2只能看到D的V1版本,并且在T2的整个生命周期中,云商城,不能看到D的其他版本。T4为read事务发生在T3commit只前,因此只能读取D的V1版本。T5发生在T3 commit之后,因此读取D的V2版本。在T3 commit之后,V2为D的当前版本,因此在T4结束之后,D的V1版本可以被移除掉了。

SAP HANA的基于时间戳的多版本并行调度可以确保并行读操作的一致性,但是他不能防止并行写操作导致的不一致(例如脏写,丢失更新)。为了防止在同一数据上进行并行写操作,SAP HANA使用独占式写锁。如果并行的事务想要进行写操作,必须首先获得该数据的锁。

此种方式可能发生死锁。如果两个事务T1和T2都需要更新两个记录R1和R2,然而R1的锁给了T1,R2的所给了T2那么T1无法更新R2,而且T2无法更新R1。此时,SAP HANA则会检查出死锁情况然后丢弃掉其中一个事务。利用实验进行验证,如下图,本人建立两个存储过程P1和P2,P1和P2都要更新一个表中的所有记录(10000条),P1更新方式为从最后一条记录往前更新,而P2更新方式为从第一条记录往后更新。两个存储过程基本同时运行,其中一个事务会被abort。

发表评论
验证码: 点击我更换图片

注:网友评论仅供其表达个人看法,并不代表本站立场。

热门文章

  • 域名备案_阿里云销售顾问_最新活动
    <strong>域名备案_阿里云销售顾问_最新活动</strong>

    域名备案_阿里云销售顾问_最新活动

    高速互联网和功能强大的应用程序使得几乎所有有办公桌工作的人都可以在家工作。然而今天,大多数公司仍然坚持要求员工忍受有时令人心碎的上下班路...

  • 数据库_分布式消息中间件实践pdf_免费领
    <strong>数据库_分布式消息中间件实践pdf_免费领</strong>

    数据库_分布式消息中间件实践pdf_免费领

    作者:马库斯·瓦纳关于2017年趋势的讨论正在迅速而激烈地展开,职场也不例外。随着新的一年即将到来,职场趋势专家们正在为2017年列出自己的预测清单...

  • 域名注册_自考数据库_免费6个月
    <strong>域名注册_自考数据库_免费6个月</strong>

    域名注册_自考数据库_免费6个月

    正如Facebook和Twitter首席运营官(COO)上周在美国国会作证时所说,出现的一个突出主题是,这些公司在保护其平台免受网络攻击方面所扮演的角色。这些公...

  • 域名解析_阿里云是什么意思_怎么买
    <strong>域名解析_阿里云是什么意思_怎么买</strong>

    域名解析_阿里云是什么意思_怎么买

    类别工作日新闻与文化财务人力资源规划技术创新分析与见解客户和社区行业金融服务政府保健高等教育款待媒体和娱乐专业和商业服务零售技术更多播客...

  • 网站服务器_王者荣耀服务器未响应_限时
    网站服务器_王者荣耀服务器未响应_限时

    网站服务器_王者荣耀服务器未响应_限时

    日本甲骨文公司今天宣布,ISOU项目采用甲骨文区块链平台管理一种本币的发行和消费。日本甲骨文公司是ISOU项目的支持公司,该项目旨在解决人口稀少地...

云储存

更多 >
  • <strong>免备案CDN_服务器类型有哪些_三重好礼</strong>
    免备案CDN_服务器类型有哪些_三重好礼

    SAP HANA云平台工具计划于2014年6月底结束对Eclipse Juno的支持 如您所知,目前SAP HANA云平台的Eclipse工具支持Eclipse平台的Juno和Kepler发行系列。Juno是2012年6月发布...

  • <strong>分布式数据库_珠海高端网站建设_试用</strong>
    分布式数据库_珠海高端网站建设_试用

    在过去的几年里,SUV在欧洲非常流行。SUV代表"运动型多用途车"。它是一种汽车。通常他们都很大,有一个强大的发动机,看起来他们可以开越野车。你会...

云储存金山云_我不直播百度云_是什么
云储存MySQL数据库_申请企业邮箱要钱吗_速度快
云储存域名注册_php连接数据库的代码_促销
云储存天翼云_小程序云数据库_测评
云储存美国服务器_服务器密码忘了怎么办_9元