5.08 concurrent control Based time stamp 基于时间标记并发控制技术
1 5.08 concurrent control Based time stamp 基于时间标记并发控制技术
time stamp:是系统生成的 随时间增长的整数.可以用 系统的时间戳,一般是专设 一个计数器,每启动一个事 务就加一。 每一事务T启动时,赋予当时的时间标记,记为 ts(T).称事务T的时间标记。 同一DBMS,同一时刻只允许启动一个事务,即 系统控制一个时间标记号只赋给一个事务,故 事务的时间标记在系统中唯一。 时间标记协议:要求事务执行等效于按事务 的时间标记,从小到大串行执行,因而它是可 串行化的
2 ⚫ time stamp:是系统生成的 随时间增长的整数.可以用 系统的时间戳,一般是专设 一个计数器,每启动一个事 务就加一。 ⚫ 每一事务T启动时,赋予当时的时间标记,记为 ts(T).称事务T的时间标记。 ⚫ 同一DBMS,同一时刻只允许启动一个事务,即 系统控制一个时间标记号只赋给一个事务,故 事务的时间标记在系统中唯一。 ⚫ 时间标记协议:要求事务执行等效于按事务 的时间标记,从小到大串行执行,因而它是可 串行化的
除给事务加时间标记外,还需 给数据加时间标记: 读时间标记tr: 在读过该数据的所有事务的时 间标记中,取最大的做为tr值。 写时间标记tw: 在写过该数据的所有事务的时间标记中,取最 大的做为tw值。 ● tr,tw随数据库运行不断变化。 ●1 下面分述时间标记协议的实现
3 ⚫ 除给事务加时间标记外,还需 给数据加时间标记: ⚫ 读时间标记tr: 在读过该数据的所有事务的时 间标记中,取最大的做为tr值。 ⚫ 写时间标记tw: 在写过该数据的所有事务的时间标记中,取最 大的做为tw值。 ⚫ tr,tw随数据库运行不断变化。 ⚫ 下面分述时间标记协议的实现
下面分述时间标记协议的实现: 事务T读数据D: Read (D); IFts(T)>=tw(D》 THEN /*符合时间标记协议*/ tr (D):=max{ts(T),tr (D) ELSE rol lback T and restart it with a new ts(T);
4 下面分述时间标记协议的实现: 事务T读数据D: Read(D); IF ts(T)>=tw(D) THEN /*符合时间标记协议*/ tr(D):= max{ts(T),tr(D)} ELSE rollback T and restart it with a new ts(T);
。读只与其他事务的写冲突,在读时,只 须检查tw是否满足时间标记协议。 ● 若不满足就卷回T,并以重新赋予新的时 间标记ts(T)重新启动
5 ⚫ 读只与其他事务的写冲突,在读时,只 须检查tw是否满足时间标记协议。 ⚫ 若不满足就卷回T,并以重新赋予新的时 间标记ts(T)重新启动