事务槽分配机制

[复制链接]
查看11 | 回复0 | 2016-9-6 15:58:00 | 显示全部楼层 |阅读模式
事务槽分配机制:
下面通过一个例子,阐述事务槽分配机制
1.事务槽初始状态:
TRN CTL:: seq: 0x0795 chd: 0x0009 ctl: 0x0029 inc: 0x00000000 nfb: 0x0003

mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)

uba: 0x00805d87.0795.1d scn: 0x004f.94f8c12e
indexstate cflagswrap#uel scn
dba
parent-xidnub stmt_numcmt
------------------------------------------------------------------------------------------------
0x0990x000x0d690x001a0x004f.94f8c13a0x00805d6b0x0000.000.000000000x00000001 0x000000001473139243
0x2990x000x0d6f0xffff0x004f.94f8d7920x00805d870x0000.000.000000000x00000001 0x000000001473145252

2.执行一个事务,该事务使用了该事务槽
TRN CTL:: seq: 0x0795 chd: 0x001a ctl: 0x0029 inc: 0x00000000 nfb: 0x0002

mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)

uba: 0x00805d87.0795.1f scn: 0x004f.94f8c13a
indexstate cflagswrap#uel scn
dba
parent-xidnub stmt_numcmt
------------------------------------------------------------------------------------------------
0x09 100x800x0d6b0x00120x004f.94f8d8470x00805d870x0000.000.000000000x00000001 0x000000000
3.提交事务
TRN CTL:: seq: 0x0795 chd: 0x001a ctl: 0x0009 inc: 0x00000000 nfb: 0x0003

mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)

uba: 0x00805d87.0795.1f scn: 0x004f.94f8c13a
indexstate cflagswrap#uel scn
dba
parent-xidnub stmt_numcmt
------------------------------------------------------------------------------------------------
0x0990x000x0d6b0xffff0x004f.94f8d8810x00805d870x0000.000.000000000x00000001 0x000000001473145529
分析:
初始状态:

chd: 0x0009 ctl: 0x0029
slot:0x09uel: 0x001a
0x29uel: 0xffff
事务槽活动状态:
chd: 0x001a ctl: 0x0029
slot:0x09uel:0x0012
0x29uel: 0xffff
回收事务槽:
chd: 0x001a ctl: 0x0009
slot:0x09 uel:0xffff
0x29uel:0x0009
1.ctl对应上一个事务槽号
2.初始状态chd等于下一个待分配的事务槽
3.已分配事务槽的chd等于该事务槽分配之前的uel值
4.已回收事务槽的uel为0xffff,ctl指向自己,并切之前ctl指向的slot的uel指向该slot

根据chd即可定位下一个待分配的事务槽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行