raft协议的读操作是强一致性的吗?

507 views
Skip to first unread message

guagua

unread,
Jan 5, 2016, 2:57:03 AM1/5/16
to Golang-China
我看了raft协议,觉得写操作是强一致性的,但是读操作应该不是强一致性

le liu

unread,
Jan 14, 2016, 4:44:44 AM1/14/16
to Golang-China
写的时候已经保证了强一致了,读自然也就强一直了吧

On Tuesday, January 5, 2016 at 3:57:03 PM UTC+8, guagua wrote:
我看了raft协议,觉得写操作是强一致性的,但是读操作应该不是强一致性

guagua

unread,
Jan 20, 2016, 9:32:47 AM1/20/16
to Golang-China
当然不是,当大部分机器写返回成功时,还有少部分机器还是旧的值,etcd就有三种读对应不用的一致性要求

在 2016年1月14日星期四 UTC+8下午5:44:44,le liu写道:

刘太华

unread,
Jan 20, 2016, 6:35:56 PM1/20/16
to golang...@googlegroups.com
etcd的github issue里有一个话题是关于这个的, 你可以去围观一下。https://github.com/coreos/etcd/issues/741
利用term,可以比较好处理这个问题,脏读的问题是一个强事务隔离的情况, mysql等传统关系数据库有。
个人觉得是所处场景不一样。

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/9d461364-15a4-4b48-8d32-38748d43a438%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout



--
刘太华

guagua

unread,
Jan 20, 2016, 10:04:59 PM1/20/16
to Golang-China
etcd 2.0版本以前有三种读:
1. 默认的,直接从节点上读(特别容易脏读,我想这也是放弃go-raft库的一大原因吧)
2. 加参数consistent=true,从leader读,但在网络分区的情况下有两个leader,依然不能保证一致性
3. 加参数quorum=true,跟写一样从大部分节点读,保证强一致性

从2.0版本以后,默认读的方式变成了相当于consistent=true

在 2016年1月21日星期四 UTC+8上午7:35:56,刘太华写道:
etcd的github issue里有一个话题是关于这个的, 你可以去围观一下。https://github.com/coreos/etcd/issues/741
利用term,可以比较好处理这个问题,脏读的问题是一个强事务隔离的情况, mysql等传统关系数据库有。
个人觉得是所处场景不一样。
在 2016年1月20日 下午10:32,guagua <bette...@gmail.com>写道:
当然不是,当大部分机器写返回成功时,还有少部分机器还是旧的值,etcd就有三种读对应不用的一致性要求

在 2016年1月14日星期四 UTC+8下午5:44:44,le liu写道:
写的时候已经保证了强一致了,读自然也就强一直了吧

On Tuesday, January 5, 2016 at 3:57:03 PM UTC+8, guagua wrote:
我看了raft协议,觉得写操作是强一致性的,但是读操作应该不是强一致性

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china+unsubscribe@googlegroups.com



--
刘太华

JefYuan

unread,
Mar 26, 2019, 4:42:17 AM3/26/19
to Golang-China
etcd除了serializable read和linearizable read 之外还有哪种?

在 2016年1月20日星期三 UTC+8下午10:32:47,guagua写道:
Reply all
Reply to author
Forward
0 new messages