DBMaster可以有下面的行为吗? (DBMR: 1925; 版本: DBMaster 5.0)

~ 0 min
2016-02-25 08:10

insert

   Tran1                   Tran2

   ================  ==================

   ins c1 =1

                           ins c1=1 (lock)

   commit

                           Unique key violation (error)

 

 update

   Tran1                   Tran2

   ===============    ==================

                           select c1, get {1}

   upd c1 = 2 where c1 = 1

                           select c1, get {1}

   commit

                           select c1, get {2}

 

 delete

   Tran1                   Tran2

   ==============    ====================

   select c1, get {2}

                           delete where c1 = 2

   select c1, get {2}

                           commit

   select c1, get { }

对于 <insert>, Transaction 1 的插入动作在数据页结构( OID + data)中获得 X 锁,Transaction 2 的插入动作在不同的数据页结构( OID + data)中也获得 X 锁,DBMaster 的OID 通常是不同的,所在,在数据库引擎中他们是不同的锁定对象,所以不会返回锁超时信息。

对于 <update> 和 <delete>, DBMaster 锁不支持version 锁设计。这时数据库内核的架构,目前还不支持。

平均分: 0 (0 投票)

你不能对该内容发表评论

标签