一个关于 expunged 标记的疑问
来源:4-8 怎么解决map的并发问题?(二)

慕仔9573397
2022-07-27
为什么在 dirty 复制 read 值的时候,遇到 entry 指向 nil 的时候要标记为 entry,而不是直接忽略就是了呢?这样下一次 read 继承 dirty 的时候,这个 entry 对应的 key 不是自然就不在了吗。
个人思考:
近期删除的 key 再次被存入可能性比较高(时间局部性?),让它暂时保存在 read 中有利于提高 read 的命中率从而提高读写效率。
想知道我的想法是否是正确的?
写回答
1回答
-
我觉得主要就是标记一下,下面的dirty没有这个key,如果遇到重新插入的情况,要在下面的dirty也插入这个key,否则dirty提升之后会丢失key。
032022-07-29
相似问题