← 返回首页

read map和dirty map之间有什么关联?

它们之间是"只读缓存"和"最新全集"的关联。

read map是dirty map的一个不完全、且可能是过期的只读快照。dirty map则包含了所有的最新数据。

具体来说,read map中的所有数据,在dirty map里一定存在。

一个key如果在read map里,那它的value要么就是最终值,要么就是一个特殊指针,指向dirty map里对应的条目。

而dirty map里有,read map里却可能没有,因为dirty是最新、最全的。

当dirty map积累了足够多的新数据后,它会"晋升"为新的read map,旧的read map则被废弃。这个过程,就完成了"缓存"的更新。