作者回复: 谢谢,这个评价好高呀,写起来更有动力了,哈哈。
作者回复: 这问题的角度很好,我很愿意回答。个人体会,论文来源有三个。首先是顶会,就是数据库领域的三大顶会SIGMOD、VLDB、ICD;其次,优秀的论文会引用优秀的论文,所以参考文献千万不要放过;最后,就是关注工业界成果,很多领域是工业界开坑,学术界跟上,比如Google就做了很多开坑的工作,这些经典论文值得多读,而且工业界论文阅读难度也小些。
作者回复: 希望能帮大家高效得学习课程的内容:)
作者回复: 说的很好,我再补充一下,在正常写入过程中WAL和内存中的数据也要保证一致,因为第一时间数据库通常是不会将数据表落盘的,内存中有数据即可对外服务。
作者回复: 你好,WAL的意义在于它的写入时机,一定是同步写入的,WAL如果不能写成功,SQL提交一定是失败的。同时,与WAL相关的,数据库也要处理内存中的数据与WAL协同的问题,因为多数的数据库都是第一时间写入内存结构的,而后再根据不同策略落盘。关于分布式事务的实现机制,后面还有好几讲,你也可以关注下。
作者回复: 是的,传统方案是使用锁(S2PL)来解决,但性能较差。还有其他的悲观协议,比如串行化图检测(SGT),我在14讲会做介绍。
作者回复: 是的,同时有数据一致性和事务一致性上的要求
作者回复: 另一个问题中也讲了,MVCC是底层技术。Gap Lock只是MySQL的实现技术,也不是SI的唯一实现方式。
作者回复: 你好,不是说MVCC可以解决幻读。MVCC是的底层技术,在这个基础上更容易实现快照隔离,而快照隔离是要解决幻读现象的,否则就不是标准的快照隔离级别。