培训视频中,readindex 中提到,其他会话的读取是利用readindex机制是在没有考虑mvcc机制下,那如果在正常环境下,readindex是不是就用不到了?
考试过去久了,看你说的内容没有回忆起上下文,能不能说一下,是哪个视频的哪个时间上说的?
下面几个文章能不能帮到你:
https://pingcap.com/zh/blog/lease-read
https://pingcap.com/zh/blog/linearizability-and-raft
https://pingcap.com/zh/blog/tikv-source-code-reading-19
3 个赞
mvcc决定读取哪些时间点数据,readindex是读取这个时间点数据的方式,如果由于apply慢导致到这个时间点数据还未apply那就需要等apply完
3 个赞
mvcc和readindex不是一回事
2 个赞
想到了一个点,如果读取的时候利用mvcc确定某个读取时间点,这个情况下数据肯定的apply到rocksdb kv内,这样如果再利用readindex是不是读取效率就降低了,要等当前的index apply之后才读取到
1 个赞
所以tidb有lease read解决readindex问题,前面有人发链接了
1 个赞
mvcc 是多版本并发控制,在tidv里是多个版本数据并存的情况(每次都是读取最大版本的)
readindex 的作用是读取当前时间点的时间,需要验证是否线性一致。
类似的有 Lease Read, Follower Read,都是为了保证数据的线性一致。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。