由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 对分布式软件的Jepsen测试
相关主题
C++虽然工作机会少一些,但没有新毕业生和你抢饭碗L家不再用scala了。。
哈哈 adp用芒果了。这下eventual consistency好玩了。求奖金多发一个0.关于web client连接server的问题
redis, kafka有人分享一下学习 使用卡夫卡的方法 心得么?
Is Redis scalable?kafka 压缩包里自带zookeeper对吧?
谁来推荐个好用的distributed memory cacheKafka consumer启动怎样不读之前的massage
最近在复习分布式系统,有前辈在工作中用到那些理论知识么job schduleing - one and only one
zookeeper 这种牛鼻软件都是apache自己的人写的?zookeeper还有公司在用吗
real time distributed framework一个Hadoop Cluster升级的问题
相关话题的讨论汇总
话题: jepsen话题: partition话题: 数据话题: kafka话题: 分布式
进入Programming版参与讨论
1 (共1页)
h*i
发帖数: 3446
1
nosql这种东西的好处就是多机,而多机主要的问题是网络的延迟和不可靠
,追求单机性能是本末倒置的。而分布式软件的设计难点就是对CAP定理的处理,
consistency, availability, partition tolerance,这三个不能兼得,只能保证两个
。很多分布式软件自称是CP的,也就是号称在网络partition (也就是网络的一部分不
能访问另一部分)的时候,能保持数据的一致性。这个Jepsen(https://aphyr.com/
tags/jepsen)就是用来测试这种广告是否属实的一个工具。
Jepsen测试目前测出来没问题的软件就只有Zookeeper。其他被测过的,C*, Mongo,
Redis,Kafka,ES, Riak, Areospike, 等等, 全都有设计问题,网路partition都会造
成数据不一致或者数据丢失。
常用的分布数据库里面,couchbase还没被测过,这个是用erlang写的网络部分,可能
没问题吧?还有就是被Apple买了的FoundationDB, 自己的内部测试就包括了Jepsen,
估计也没有问题。
其他的分布数据库,不是不知道自己的设计有问题,但为了追求性能,刷benchmark,
对CP啥的就不管不顾了,反正真正懂这玩意的人也不多,也不care,大多数人都是别人
用啥就用啥,市场营销做好了,用的人多了比啥都强。
h*i
发帖数: 3446
2
老邢这个破网站显然是AP, CP都不靠的,一个贴出来一遍还是两遍都是不确定的。

【在 h*i 的大作中提到】
: nosql这种东西的好处就是多机,而多机主要的问题是网络的延迟和不可靠
: ,追求单机性能是本末倒置的。而分布式软件的设计难点就是对CAP定理的处理,
: consistency, availability, partition tolerance,这三个不能兼得,只能保证两个
: 。很多分布式软件自称是CP的,也就是号称在网络partition (也就是网络的一部分不
: 能访问另一部分)的时候,能保持数据的一致性。这个Jepsen(https://aphyr.com/
: tags/jepsen)就是用来测试这种广告是否属实的一个工具。
: Jepsen测试目前测出来没问题的软件就只有Zookeeper。其他被测过的,C*, Mongo,
: Redis,Kafka,ES, Riak, Areospike, 等等, 全都有设计问题,网路partition都会造
: 成数据不一致或者数据丢失。
: 常用的分布数据库里面,couchbase还没被测过,这个是用erlang写的网络部分,可能

l*********s
发帖数: 5409
3
A也够呛,经常访问不能 :-)
h*i
发帖数: 3446
4
据说netflx95%的数据都在C*里面,而C*是已知会丢失数据的(也就是说,some C*
acknowledged writes are not in the DB!), 所以说有人说netflx的scaling
problem是个简单问题,其实是有道理的。还有人说facebook, google, twitter等等的
scaling problem也是简单的,也是有道理的,因为对上述公司来说,数据丢失不是什
么问题,跟她们的business model都没有直接的关系。

【在 h*i 的大作中提到】
: nosql这种东西的好处就是多机,而多机主要的问题是网络的延迟和不可靠
: ,追求单机性能是本末倒置的。而分布式软件的设计难点就是对CAP定理的处理,
: consistency, availability, partition tolerance,这三个不能兼得,只能保证两个
: 。很多分布式软件自称是CP的,也就是号称在网络partition (也就是网络的一部分不
: 能访问另一部分)的时候,能保持数据的一致性。这个Jepsen(https://aphyr.com/
: tags/jepsen)就是用来测试这种广告是否属实的一个工具。
: Jepsen测试目前测出来没问题的软件就只有Zookeeper。其他被测过的,C*, Mongo,
: Redis,Kafka,ES, Riak, Areospike, 等等, 全都有设计问题,网路partition都会造
: 成数据不一致或者数据丢失。
: 常用的分布数据库里面,couchbase还没被测过,这个是用erlang写的网络部分,可能

h*i
发帖数: 3446
5
对于别的business model,如果数据丢失是个问题的话,比如银行,现有的方案里面,
除了传统的SQL数据库,还有一种,就是“写”只用一个节点,“读”用分布式,并且
数据都是immutable的方式。
Datomic (datomic.com)就是这样的一个数据库,是Clojure的作者写的。有银行在用。
Datomic只管transaction和query, 用别的数据库做存储,包括一般的SQL数据库, C*,
riak, dynamodb, couchbase. Query语言是用Datalog.
我的公司除了用postgres以外, nosql试了很多种,最后都不理想,现在开始在用
Datomic,下面的存储用的是couchbase,这样horizontal scaling和ACID transaction
兼得,感觉很爽。唯一可惜的是Datomic不是开源的,免费可以用,但有限制。

【在 h*i 的大作中提到】
: 据说netflx95%的数据都在C*里面,而C*是已知会丢失数据的(也就是说,some C*
: acknowledged writes are not in the DB!), 所以说有人说netflx的scaling
: problem是个简单问题,其实是有道理的。还有人说facebook, google, twitter等等的
: scaling problem也是简单的,也是有道理的,因为对上述公司来说,数据丢失不是什
: 么问题,跟她们的business model都没有直接的关系。

h*i
发帖数: 3446
6
哈哈,老邢只管数钱,哪管啥CAP,帽子?只要不是绿帽子就行。

【在 l*********s 的大作中提到】
: A也够呛,经常访问不能 :-)
D*******a
发帖数: 3688
7
Kafka is CA though, so when network partition happens it loses data. This is
expected.

【在 h*i 的大作中提到】
: nosql这种东西的好处就是多机,而多机主要的问题是网络的延迟和不可靠
: ,追求单机性能是本末倒置的。而分布式软件的设计难点就是对CAP定理的处理,
: consistency, availability, partition tolerance,这三个不能兼得,只能保证两个
: 。很多分布式软件自称是CP的,也就是号称在网络partition (也就是网络的一部分不
: 能访问另一部分)的时候,能保持数据的一致性。这个Jepsen(https://aphyr.com/
: tags/jepsen)就是用来测试这种广告是否属实的一个工具。
: Jepsen测试目前测出来没问题的软件就只有Zookeeper。其他被测过的,C*, Mongo,
: Redis,Kafka,ES, Riak, Areospike, 等等, 全都有设计问题,网路partition都会造
: 成数据不一致或者数据丢失。
: 常用的分布数据库里面,couchbase还没被测过,这个是用erlang写的网络部分,可能

h*i
发帖数: 3446
8
丢数据不能说就是"consistent", 因为, 100% data loss = 100% guaranteed
consistency. 一般人理解的”consistency“不认为丢数据是可以接受的。
“Kafka’s replication claimed to be CA, but in the presence of a partition,
threw away an arbitrarily large volume of committed writes.”
在常人看来,这就是不consistent的,我写了,你也回我说写好了,结果数据没写进去
,这叫什么consistency? 按人的标准,这不是撒谎么?

is

【在 D*******a 的大作中提到】
: Kafka is CA though, so when network partition happens it loses data. This is
: expected.

D*******a
发帖数: 3688
9
是不consistent,因为违背no network partition的assumption

partition,

【在 h*i 的大作中提到】
: 丢数据不能说就是"consistent", 因为, 100% data loss = 100% guaranteed
: consistency. 一般人理解的”consistency“不认为丢数据是可以接受的。
: “Kafka’s replication claimed to be CA, but in the presence of a partition,
: threw away an arbitrarily large volume of committed writes.”
: 在常人看来,这就是不consistent的,我写了,你也回我说写好了,结果数据没写进去
: ,这叫什么consistency? 按人的标准,这不是撒谎么?
:
: is

h*i
发帖数: 3446
10
没有network partition, 要CAP何用?
network必然是会partition的。

【在 D*******a 的大作中提到】
: 是不consistent,因为违背no network partition的assumption
:
: partition,

相关主题
最近在复习分布式系统,有前辈在工作中用到那些理论知识么L家不再用scala了。。
zookeeper 这种牛鼻软件都是apache自己的人写的?关于web client连接server的问题
real time distributed framework有人分享一下学习 使用卡夫卡的方法 心得么?
进入Programming版参与讨论
D*******a
发帖数: 3688
11
you can argue with jay kreps
http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafk

【在 h*i 的大作中提到】
: 没有network partition, 要CAP何用?
: network必然是会partition的。

g*****g
发帖数: 34805
12
任何一个公司,数据都不是简单的非黑即白。integrity要求高的通常数据量小,反之
亦然。所以RDBMS和NoSQL有很好的互补。没人要求你一个数据库把什么都做了。

,
transaction

【在 h*i 的大作中提到】
: 对于别的business model,如果数据丢失是个问题的话,比如银行,现有的方案里面,
: 除了传统的SQL数据库,还有一种,就是“写”只用一个节点,“读”用分布式,并且
: 数据都是immutable的方式。
: Datomic (datomic.com)就是这样的一个数据库,是Clojure的作者写的。有银行在用。
: Datomic只管transaction和query, 用别的数据库做存储,包括一般的SQL数据库, C*,
: riak, dynamodb, couchbase. Query语言是用Datalog.
: 我的公司除了用postgres以外, nosql试了很多种,最后都不理想,现在开始在用
: Datomic,下面的存储用的是couchbase,这样horizontal scaling和ACID transaction
: 兼得,感觉很爽。唯一可惜的是Datomic不是开源的,免费可以用,但有限制。

N*****m
发帖数: 42603
13
所以只能用CP系统?
你得考虑Partition的概率和损失数据造成的经济损失;和SLA满足不了造成的经济损失

【在 h*i 的大作中提到】
: 没有network partition, 要CAP何用?
: network必然是会partition的。

h*i
发帖数: 3446
14
No need for argument. Just saying what it is.
CA啥的都是市场营销,他要这么说没问题,他是做这个生意的,说啥都可以,信不信是
你我的问题。
我的公司整个infra都是以kafka为中心的,但我必须要知道what I am getting,不会
被他们的marketing所左右。That's my point.

【在 D*******a 的大作中提到】
: you can argue with jay kreps
: http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafk

g*****g
发帖数: 34805
15
你这有single point of failure,写好了,复制到其他节点之前当了,数据就丢了
。没有银弹,只有各种不同妥协而已。

,
transaction

【在 h*i 的大作中提到】
: 对于别的business model,如果数据丢失是个问题的话,比如银行,现有的方案里面,
: 除了传统的SQL数据库,还有一种,就是“写”只用一个节点,“读”用分布式,并且
: 数据都是immutable的方式。
: Datomic (datomic.com)就是这样的一个数据库,是Clojure的作者写的。有银行在用。
: Datomic只管transaction和query, 用别的数据库做存储,包括一般的SQL数据库, C*,
: riak, dynamodb, couchbase. Query语言是用Datalog.
: 我的公司除了用postgres以外, nosql试了很多种,最后都不理想,现在开始在用
: Datomic,下面的存储用的是couchbase,这样horizontal scaling和ACID transaction
: 兼得,感觉很爽。唯一可惜的是Datomic不是开源的,免费可以用,但有限制。

D*******a
发帖数: 3688
16
可以scale out throughput

【在 h*i 的大作中提到】
: 没有network partition, 要CAP何用?
: network必然是会partition的。

h*i
发帖数: 3446
17
Exactly.
We should know the limitations of our tools. That's my point.

【在 g*****g 的大作中提到】
: 任何一个公司,数据都不是简单的非黑即白。integrity要求高的通常数据量小,反之
: 亦然。所以RDBMS和NoSQL有很好的互补。没人要求你一个数据库把什么都做了。
:
: ,
: transaction

D*******a
发帖数: 3688
18
可以scale out throughput

【在 h*i 的大作中提到】
: 没有network partition, 要CAP何用?
: network必然是会partition的。

h*i
发帖数: 3446
19
Exactly, 我说的是要看你的business model是什么,不能看高大上的公司用了啥,自
己也要用啥。这些高达上公司的model可能完全和你不一样。他们不关心的东东也许你
要关心。

【在 N*****m 的大作中提到】
: 所以只能用CP系统?
: 你得考虑Partition的概率和损失数据造成的经济损失;和SLA满足不了造成的经济损失

D*******a
发帖数: 3688
20
那就是您对cap的理解的问题了。kafka在一些情况下就是会丢东西的。人家也没有over
claim什么。
btw,所有用kafka的公司,都多多少少有不少complain,包括netflix。这玩意里面陷
阱不少。

【在 h*i 的大作中提到】
: No need for argument. Just saying what it is.
: CA啥的都是市场营销,他要这么说没问题,他是做这个生意的,说啥都可以,信不信是
: 你我的问题。
: 我的公司整个infra都是以kafka为中心的,但我必须要知道what I am getting,不会
: 被他们的marketing所左右。That's my point.

相关主题
kafka 压缩包里自带zookeeper对吧?zookeeper还有公司在用吗
Kafka consumer启动怎样不读之前的massage一个Hadoop Cluster升级的问题
job schduleing - one and only one二爷等牛人能给个学spark的建议不?
进入Programming版参与讨论
g*****g
发帖数: 34805
21
Kafka 是准备在单数据中心里用的,所以它放弃P是可以理解的。对我们来说比较麻烦
的是auto-scaling和cross-region replication。

over

【在 D*******a 的大作中提到】
: 那就是您对cap的理解的问题了。kafka在一些情况下就是会丢东西的。人家也没有over
: claim什么。
: btw,所有用kafka的公司,都多多少少有不少complain,包括netflix。这玩意里面陷
: 阱不少。

N*****m
发帖数: 42603
22
horizontal scaling和acid兼得,这100%是广告语,想都不用想

,
transaction

【在 h*i 的大作中提到】
: 对于别的business model,如果数据丢失是个问题的话,比如银行,现有的方案里面,
: 除了传统的SQL数据库,还有一种,就是“写”只用一个节点,“读”用分布式,并且
: 数据都是immutable的方式。
: Datomic (datomic.com)就是这样的一个数据库,是Clojure的作者写的。有银行在用。
: Datomic只管transaction和query, 用别的数据库做存储,包括一般的SQL数据库, C*,
: riak, dynamodb, couchbase. Query语言是用Datalog.
: 我的公司除了用postgres以外, nosql试了很多种,最后都不理想,现在开始在用
: Datomic,下面的存储用的是couchbase,这样horizontal scaling和ACID transaction
: 兼得,感觉很爽。唯一可惜的是Datomic不是开源的,免费可以用,但有限制。

h*i
发帖数: 3446
23
不对,这个写的节点的single point of failure正是ACID的保证,数据在没复制到其
他节点之前,这个transactor节点是不会ack的,所以数据是要么写好了,要么没写好
,不存在“说是写好了,其实没写好”的问题。
这儿的妥协是牺牲availablity guarantee,而不是ACID。实际使用中,Datomic
transactor不停的写heartbeat到存储,有一个standby transanctor来读heartbeat,
发现heartbeat停了就自动升级补上,这中间有一段时间系统”写“是不available的。
但由于读是distributed,所以对读多写少的应用还好。

【在 g*****g 的大作中提到】
: 你这有single point of failure,写好了,复制到其他节点之前当了,数据就丢了
: 。没有银弹,只有各种不同妥协而已。
:
: ,
: transaction

h*i
发帖数: 3446
24
当然是广告语。horizontal scaling只是读,写是单机的,能scale多少?

【在 N*****m 的大作中提到】
: horizontal scaling和acid兼得,这100%是广告语,想都不用想
:
: ,
: transaction

1 (共1页)
进入Programming版参与讨论
相关主题
一个Hadoop Cluster升级的问题谁来推荐个好用的distributed memory cache
二爷等牛人能给个学spark的建议不?最近在复习分布式系统,有前辈在工作中用到那些理论知识么
关于Kafka,一个log数据处理的问题zookeeper 这种牛鼻软件都是apache自己的人写的?
看来以后要把春运买票网设计当做面试考题了real time distributed framework
C++虽然工作机会少一些,但没有新毕业生和你抢饭碗L家不再用scala了。。
哈哈 adp用芒果了。这下eventual consistency好玩了。求奖金多发一个0.关于web client连接server的问题
redis, kafka有人分享一下学习 使用卡夫卡的方法 心得么?
Is Redis scalable?kafka 压缩包里自带zookeeper对吧?
相关话题的讨论汇总
话题: jepsen话题: partition话题: 数据话题: kafka话题: 分布式