Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

分布式系统中的弱一致性 #60

Open
levy5307 opened this issue Nov 18, 2021 · 0 comments
Open

分布式系统中的弱一致性 #60

levy5307 opened this issue Nov 18, 2021 · 0 comments

Comments

@levy5307
Copy link
Owner

https://levy5307.github.io/blog/weak-consistency/

之前专门花时间调研过各种强一致性的分布式协议,却并未对弱一致性进行过深入研究,然而前段时间学习论文时候发现,其实很多存储系统还是采用的弱一致性,以获取较高的性能或者可用性。所以这里决定研究一下弱一致性。

Dynamo

Dynamo是由Amazon开发的一款分布式KV存储,其设计目标是:

高可用性

因此其采用的一致性模型是最终一致性,当然最终一致会带来冲突的问题

永远可写

因为Amazon有很多购物场景,对于像“加入购物车”这种行为,Amazon肯定希望永远成功的,因此其需要底层存储系统永远可写。

另外前面讲到,最终一致模型会带来冲突问题,所以何时解决冲突是需要考虑的一个问题。这里有两个选择:

写时解决

这是大部分系统所采取的方案,在这种方案中,读流程是比较简单。不过在这种系统中,如果写入不能到达全部或者大部分副本,写入将会被拒绝(只有到达大部分副本,两次不同写入才会到达至少一个节点,确保冲突可以解决)

读时解决

由于Dynamo需要保证永远可写,因此冲突解决是由读来完成的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant