保证多点cache一致性的协议,cache中每个数据项,需要一个2bit的状态位,表示4种不同缓存状态。
这个协议能够实现的前提是:cache直接有监听机制,一个cache发生任何事件,其它cache能够同一时间获知,并修改自己cache中对应item的状态。
状态 |
描述 |
M(Modified) |
这行数据有效,数据被修改了,和内存中的数据不一致,数据只存在于本Cache中。 |
E(Exclusive) |
这行数据有效,数据和内存中的数据一致,数据只存在于本Cache中。 |
S(Shared) |
这行数据有效,数据和内存中的数据一致,数据存在于很多Cache中。 |
I(Invalid) |
这行数据无效。 |
状态转移图: