作者DarkKiller (System hacked)
看板Soft_Job
标题Re: [请益] 选择mongoDB或是relational database ??
时间Mon May 18 02:09:31 2020
※ 引述《DarkKiller (System hacked)》之铭言:
: 我建议是,能用 RDBMS 就用 RDBMS,没必要去用 NoSQL。正规化理论与 ACID 带
: 出来的好处反而会让整个团队不用专住在这些杂事上面。
: 熟悉 PostgreSQL 就用 PostgreSQL,熟悉 MySQL 的就用 MySQL,先设计资料库架
: 构 (& 正规化) 反而会对後来带来很多好处。
当时在这边写的比较保守一点,最近刚好有题材可以描述一下另外一个不少人都不
太喜欢 MongoDB 的原因,就是这家公司不怎麽老实...
这次 MongoDB 惹毛了业界老大,我写了一篇:
*
https://bit.ly/369CvMs (MongoDB 的欺骗性广告)
这边列一下重点:
*
https://jepsen.io/
先介绍一下 Jepsen。
Jepsen 是业界测试 database 各种稳定度很有名的团队 (自称第二就没有正常
人敢称第一的等级)。
在
https://jepsen.io/analyses 这边可以看到测过很多资料库,而且有不少是
厂商开发完找他们测,由第三方的角度来找看看有什麽问题,像是 CockroachDB
找过,而且也测出不少问题让 CockroachDB 带回去修:
https://jepsen.io/analyses/cockroachdb-beta-20160829
接下来就是故事的开始了...
*
https://www.mongodb.com/jepsen
起因是这边,MongoDB 的人在提到 Jepsen 的页面上宣称自己好棒棒,在业界强
到爆炸。
*
https://twitter.com/jepsen_io/status/1255867265997844484
然後 Jepsen 就一脸傻眼说我这边测出来的结果明明就超靠背,你是怎麽觉得你
很强的,过两个礼拜後 Jepsen 就丢出来一篇最新的测试报告。
*
https://jepsen.io/analyses/mongodb-4.2.6
这篇测试报告直接拿最新版的 4.2.6 再测一次,然後就开始干剿:
1) MongoDB 宣称 snapshot isolation 可以达到 "full ACID transaction"
这个词完全跟业界的理解是不同的。
2) 就算是把 snapshot isolation 当作 ACID 好了,MongoDB 也做不到
snapshot isolation 的要求。
3) 而且在系统设定了 "snapshot" 後,写入还是做不到 snapshot isolation,
必须在资料写入的时候指定 write concern 的 majority 才能试着达到。
4) 然後你说 snapshot isolation 好棒棒,但官方文件里面没提到 snapshot
isolation 要怎麽设,需要到第三方网站上才找的到。
最後 Kyle Kingsbury 还放话说他还没测完 (Future Work 那段),预期还有很
多坑可以炸,看起来真是很怒啊 XDDD
--
Resistance is futile.
https://blog.gslin.org/ & <
[email protected]>
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.104.21 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1589738994.A.811.html
1F:推 cuteSquirrel: XD 05/18 02:32
2F:推 CoNsTaR: 不管其他 DB 怎麽样,RDBMS 就是恶心 听到就想吐 05/18 03:31
3F:→ CoNsTaR: 只要可以不用 &@#$*吸扩 什麽其他东西我都用 05/18 03:31
4F:推 cory8249: 大神好像都不喜欢 Mongo XDD 05/18 03:58
5F:→ jobintan: NoSQL我现在都用Cassandra或ScyllaDB。(挺) 05/18 07:54
6F:推 sa074463: 用过真的是不怎麽爱 mongo 05/18 09:23
7F:推 BignoZe: 推 05/18 12:17
8F:推 lion741205: 个人认知MongoDB不是ACID(Atomicity、Consistency、 05/18 12:26
9F:→ lion741205: Isolation、Durability),而是BASE(Basically 05/18 12:26
10F:→ lion741205: Available、Soft state、Eventual consistency); 05/18 12:26
11F:→ lion741205: CAP理论也告诉我们分散式系统不可能同时满足 05/18 12:26
12F:→ lion741205: Consistency、Availability、Partition consistency, 05/18 12:26
13F:→ lion741205: 因此MongoDB不可能做到Strong consistency, 05/18 12:26
14F:→ lion741205: 只有Eventual consistency。印象中MongoDB官方文件 05/18 12:27
15F:→ lion741205: 也有写只有The level of a single document是atomic, 05/18 12:27
16F:→ lion741205: 宣称Full ACID就是广告不实的。 05/18 12:27
17F:推 m9j002: 推 原PO自己不断更新多年前的疑问 05/18 13:40
18F:推 frank910138: 推 分享 05/18 14:15
19F:推 kor525: 太强了~~ 05/18 16:17
20F:推 bibo9901: MongoDB就算不用分散式也满足不了CAP好吗 05/18 16:52
21F:→ bibo9901: 打太快.. MongoDB就算不用分散式也满足不了CA 05/18 16:53
22F:推 vvind: 推XD 05/18 19:24
23F:推 justben: 我两个一起用耶 @@ 这样要怎麽算 05/18 19:29
24F:推 new122851: Redis 05/20 00:46
25F:→ jobintan: Cassandra目前只是玩票而已,要用在工作上还是SQL为主, 05/20 08:41
26F:→ jobintan: SQL的话首推PostgreSQL。 05/20 08:42
27F:推 postpone: Hive默默晃过 05/24 01:20