内存优化表(Memory-Optimized Table,简称MOT)使用乐观策略(optimistic approach)实现事务的并发控制,在读取MOT时,使用多行版本化(Multi-Row versioning)创建数据快照,读操作不会对数据加锁,因此,读写操作不会相互阻塞。写操作会申请行级锁,如果两个事务尝试更新同一数据行,SQL Server检测到写-写冲突,产生错误(Error 41302),将后后创建的事务作为失败者,回滚事务的操作。虽然MOT事务使用无锁结构(Lock-Free),不会产生阻塞,但是,访问MOT仍然会产生Wait,通常情况下,等待时间是非常短暂的。

一,MOT使用乐观并发事务控制

1,并发控制策略

事务的并发控制策略分为乐观策略和悲观策略,SQL Server支持两种并发策略。

1.1,悲观策略(Pessimistic Approach)

悲观策略认为每一个数据更新都潜在地存在冲突,为了避免数据争用,事务在读取数据时申请共享锁,在更新数据时对数据加互斥锁(Locking)。在冲突发生时,通过加锁阻塞其他事务;其他事务检测到冲突后,等待拥有资源的事务释放互斥锁,其他事务只有获取到资源上的加锁,才能执行读写操作。

悲观策略主要用于数据争用激烈,并且发生发冲突时用锁保护数据的成本低于回滚事务的成本的环境中。

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式