File tree Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Expand file tree Collapse file tree 1 file changed +3
-3
lines changed Original file line number Diff line number Diff line change 60
60
class ReadView {
61
61
/* ... * /
62
62
private:
63
- trx_id_t m_low_limit_id; /* 大于这个 ID 的事务均不可见 * /
63
+ trx_id_t m_low_limit_id; /* 大于等于这个 ID 的事务均不可见 * /
64
64
65
65
trx_id_t m_up_limit_id; /* 小于这个 ID 的事务均可见 * /
66
66
@@ -78,7 +78,7 @@ private:
78
78
79
79
主要有以下字段:
80
80
81
- - ` m_low_limit_id ` :目前出现过的最大的事务 ID+1,即下一个将被分配的事务 ID。大于这个 ID 的数据版本均不可见
81
+ - ` m_low_limit_id ` :目前出现过的最大的事务 ID+1,即下一个将被分配的事务 ID。大于等于这个 ID 的数据版本均不可见
82
82
- ` m_up_limit_id ` :活跃事务列表 ` m_ids ` 中最小的事务 ID,如果 ` m_ids ` 为空,则 ` m_up_limit_id ` 为 ` m_low_limit_id ` 。小于这个 ID 的数据版本均可见
83
83
- ` m_ids ` :` Read View ` 创建时其他未提交的活跃事务 ID 列表。创建 ` Read View ` 时,将当前未提交事务 ID 记录下来,后续即使它们修改了记录行的值,对于当前事务也是不可见的。` m_ids ` 不包括当前事务自己和已提交的事务(正在内存中)
84
84
- ` m_creator_trx_id ` :创建该 ` Read View ` 的事务 ID
@@ -128,7 +128,7 @@ private:
128
128
129
129
3 . m_ids 为空,则表明在当前事务创建快照之前,修改该行的事务就已经提交了,所以该记录行的值对当前事务是可见的
130
130
131
- 4 . 如果 m_low_limit_id <= DB_TRX_ID < m_up_limit_id ,表明最新修改该行的事务(DB_TRX_ID)在当前事务创建快照的时候可能处于“活动状态”或者“已提交状态”;所以就要对活跃事务列表 m_ids 进行查找(源码中是用的二分查找,因为是有序的)
131
+ 4 . 如果 m_up_limit_id <= DB_TRX_ID < m_low_limit_id ,表明最新修改该行的事务(DB_TRX_ID)在当前事务创建快照的时候可能处于“活动状态”或者“已提交状态”;所以就要对活跃事务列表 m_ids 进行查找(源码中是用的二分查找,因为是有序的)
132
132
133
133
- 如果在活跃事务列表 m_ids 中能找到 DB_TRX_ID,表明:① 在当前事务创建快照前,该记录行的值被事务 ID 为 DB_TRX_ID 的事务修改了,但没有提交;或者 ② 在当前事务创建快照后,该记录行的值被事务 ID 为 DB_TRX_ID 的事务修改了。这些情况下,这个记录行的值对当前事务都是不可见的。跳到步骤 5
134
134
You can’t perform that action at this time.
0 commit comments