前几天读了一篇文章[一致性模型](https://www.jianshu.com/p/3673e612cce2),发现自己也有也有一些知识点遗漏了,遂写下此文作为总结。
并发情况下一般会遇上的问题:
1. Dirty Write
并发情况下的事务A覆写了B未提交的修改的数据,导致数据出现不一致。
2. Dirty Read
并发情况下的事务A读到了B未提交的数据
3. Non-Repeatable Read
同一次事务里A第一次读到了B未提交的数据,但是第二次读到了B已经提交的数据
4. Phantom
一个事务首先进行了一次按照某个条件的 read 操作,确定满足条件后进行后续操作,然后另一个事务修改read读的那个数据,导致read条件失效。
5. Lost Update和Cursor Lost Update
A和B对同一个数据进行修改,A先修改成功了,但是B还在事务中,B结束时把A修改的值变成B的值,导致A值丢失。
6. Read Skew
A和B同时修改两个或者多个有完整性约束的数据,导致约束失效
7. Write Skew
T1 和 T2 在执行的时候都发现满足约束,然后 T1 更新了 y,而 T2 更新了 x,然后最终结果打破了约束
后续把这篇文章补充完,原本是要点评Spanner那篇论文的,今晚英雄联盟的比赛打得精彩了,就先不写了。