码迷,mamicode.com
首页 > 其他好文 > 详细

数据访问模式:数据并发控制(Data Concurrency Control)

时间:2014-07-29 13:59:48      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:使用   strong   数据   问题   代码   数据库   用户   对象   

  1.数据并发控制(Data Concurrency Control)简介

  数据并发控制(Data Concurrency Control)是用来处理在同一时刻对被持久化的业务对象进行多次修改的系统。当多个用户修改业务对象的状态并试图并发地将其持久化到数据库时,需要一种机制来确保一个用户不会对另一个并发用户的事务状态造成负面影响。
  有两种形式的并发控制:乐观和悲观。乐观并发控制假设当多个用户对业务对象的状态同时进行修改时不会造成任何问题,也称为最晚修改生效(last change wins)。对于一些系统,这是合理的行为。但如果业务对象的状态需要与从数据库中取出的状态保持一致,就需要悲观并发控制。
  悲观并发控制可以有多中风格,可以在检索出记录后锁定数据表,也可以保存业务对象原始内容的副本,然后再进行更新之前将该副本与数据存储中的版本进行比对。确保在这次事务期间没有对该记录进行修改。

  2.数据并发控制的实现示例

  常用的数据并发控制实现方式有两种:数据库实现及代码控制实现。悲观并发控制在数据库实现方面可以有加入数据库锁机制,代码控制实现方面可以增加一个保存版本号字段,用于版本之间的对比。使用版本号来检查在业务实体从数据库中检索出之后是否被修改。更新时,把业务实体的版本号与数据库中的版本号进行比对之后再提交修改。这样确保业务实体在被检索出后没有被修改。

  

数据访问模式:数据并发控制(Data Concurrency Control),布布扣,bubuko.com

数据访问模式:数据并发控制(Data Concurrency Control)

标签:使用   strong   数据   问题   代码   数据库   用户   对象   

原文地址:http://www.cnblogs.com/libingql/p/3875078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!