分布式 DBA: Cursor Stability Isolation Level 的变化:第 2 部分(理解 Currently Committed 行为)
2010-06-16 00:00:00 来源:WEB开发网核心提示: 日志信息:表示该记录包含未提交数据;这种情况下,日志信息标识了当前保持记录锁的事务对记录的第一次修改的日志记录如果这个锁没有包含任何信息,分布式 DBA: Cursor Stability Isolation Level 的变化:第 2 部分(理解 Currently Committed 行为)
日志信息:表示该记录包含未提交数据;这种情况下,日志信息标识了当前保持记录锁的事务对记录的第一次修改的日志记录
如果这个锁没有包含任何信息,这个记录会以获得目标锁的方式处理。如果这个锁包含了一个 Uncommitted Insert 标识符,那么这个记录会被忽略,因为这个标识符表示这个记录还没有被提交。如果这个锁包含了日志信息,这个信息将被用于从存储在日志缓存或事务的日志文件中的日志记录查询到该记录的 CC 版本(即,修改前的记录)。然后,DB2 会使用 Log Sequence Number (LSN) 直接访问对应的日志记录(见侧边栏,“DB2 如何确定数据是否已经提交”)。
图 1 说明了使用 CC 语义的 CS 隔离级别的一个 SELECT 语句是如何查询记录的。一定要注意 CC 语义可以应用到 Read Stability (RS) 以及 CS 隔离级别的 SQL 语句上。然而,在 RS 隔离级别上执行时,CC 只支持 DB2_SKIPINSERTED 行为,这种功能不会再引起未提交插入记录的锁等待。
图 1. 在本例中,事务 1 执行了两个 DML 语句,它会导致一个日志信息及一个 Uncommitted Insert 标识符被写入 SALES_REP 表的锁列表。当事务 2 查询 SALES_REP 表时, CC 语义支持从前一个提交事务的日志记录中读取锁定记录的数据;Uncommitted Insert 的记录则不会返回。
查看原图(大图)
- ››分布式计算多机部署与配置
- ››分布式单词发音抓取机器人
- ››分布式网络爬虫关键技术分析与实现一网络爬虫相关...
- ››分布式 DBA: 创建和使用分区表
- ››分布式 Key-Value 存储系统:Cassandra 入门
- ››分布式 DBA: Cursor Stability Isolation Level 的...
- ››分布式 DBA:存储、I/O 和 DB2,第 1 部分(针对在...
- ››分布式管理:用 HADR 减少停机时间(详细解释如何...
- ››分布式 DBA:使用物化查询表
- ››DBA经验谈:更改数据文件的可用性
- ››分布式存储系统的实现
- ››DBase:DB2必须了解的常用命令及技巧
更多精彩
赞助商链接