Skip to main content

标 题: 说一下nosql和mongodb

发信人: zuihan (前按摩店忠实股东), 信区: Stock
标  题: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Sun Jan  6 14:22:58 2019, 美东)

之前研究数据库存储引擎的时候,大概了解过mongodb,现在生产环境中也有在用
mongodb,大概100多个instance吧

总的来说,是好产品
产品很solid,是c++写的,处理大数据有很完善的解决方案,集群功能可以直接上生产
环境(oracle,db2基本就是靠这个功能赚钱),但是mongodb不收你一分钱。从3.0开始基
本没有坑,只要用好了,基本不用老夫操心。上线初期老夫踩过一点索引的坑,还有就
是丢数据的坑,调好后基本没再遇过问题。

他们的看家存储引擎(wiredtiger)不是自己写的,是另外一个opensource项目
老夫对他们没有实现wiredtiger的lsm算法十分不爽

现在mongodb之所以亏损,是因为他们没有找到好的盈利点,这点比较类似初期的mysql

那么,nosql中,最好的解决方案是不是mongodb呢

看应用,就老夫来看,不是

小数据量应用上mysql , mysql 从8.0开始直接对json字段操作,老夫觉得小应用场景
下可以替代monogodb。为什么呢,因为mysql可以当nosql用,也可以不当nosql用,功
能更多啊

大数据量应用上hbase , 基于hadoop的kv数据库,是hadoop项目的其中一个小功能,
基本上地球上的互联网公司(除股沟外),都在大规模用hbase。btw,老夫看好
cloudera这家公司,也是上市公司,如果你仅仅因为数据库产品就看好mongodb的股票
,你应该买cloudera而不是mongodb

mongodb这家公司以后最好的命运应该是被巨硬或者sales force之类的公司收购

Disclosure:老夫401k重仓cloudera,打算持有5年以上

发信人: fuqiang (日能), 信区: Stock
标  题: Re: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Sun Jan  6 16:52:45 2019, 美东)

大神,你自己公司都有100个INSTANCE。数据库的用户是应用开发者,虽然有你说的那
些问题。但是MONGODB是多数开发者NONSQL的首选!产品好否,是技术和市场的结合。

我是个股票青蛙,但是推荐MDB, 原因如下:
1. 大神也承认产品很好,你只是希望它更好;
2. 开发使用人多,而且成上升趋势。对大多数开发者,解决方案来说,使用简单,达
到目的,是关键。WINDOWS,UNIX比较那个作为商品更成功?最近他们推出数据即服务
,更方便开发者。对现在商家,系统方案解决者来说。我要的是应用,数据如果有专门
的人打理多好。好比我是一家公司老板,我希望给用户提供更快的应用;作为产品经理
来说更快地上线,节省维护成本是关键。试想,我不用招什么服务器维护,数据库维护
人员,把这些交给厂家,多好。 TWLO, MONGDO,云等等背后都是这个概念,降低开发
难度!
3. MONGODB盈利模式:A, 买给大平台LICENSE,如微软云平台COSMODB数据支持三种API
,其中有MONGODB;B, 数据即使服务模式。数据库都放在它们那里,给中小商家大大降
低维护成本,方便开发;C, 最近很多银行解决方案都开始用MONGODB,这是断ORACL,
DB2 饭碗。

我从数据库产品使用角度,也就是解决方案开发者来看。领导让我做解决方案,既要估
算数据存储需求,也要考虑开发者知识储备。目前很多情况下,NONSQL选择MONGODB没
毛病。至于大数据,一般都用云本身提供的方案。Cloudera目前并没有列入开发者范围
,也许提前埋伏。

https://www.eversql.com/most-popular-databases-in-2018-according-to-
stackoverflow-survey/
https://db-engines.com/en/ranking

 

发信人: fuqiang (日能), 信区: Stock
标  题: Re: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Sun Jan  6 17:01:41 2019, 美东)

顺便说说IBM要注意。最近做SAMS CLUB项目,就是把DB2转到微软的AZURE SQL上去。
IBM, ORCL都是下坡路的公司。ORCL现在是法律公司。IBM是花钱浪费公司。一个同事说
他们之前IBM 先期投资一个项目,预算3M,半年,后面坐了4年,花了50M,最后报废。

IT界无数的MBA是饭桶,正如无数华尔街MBA饭桶分析师一样。如APPL价格降了,他们调
低估价. 所有选股要自己找根据。当然日交大神只看图就可以。

网上大神如花脸猫,YANB等操作MDB上上下下赚了多波钱。 青蛙只是从解决方案,数据
库使用角度来看。赚钱要去求助花脸猫,YANB大神。


发信人: freeskater (N0.237), 信区: Stock
标  题: Re: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Mon Jan  7 16:38:31 2019, 美东)

随便喷两句MDB。 以前管理过400+nodes的cluster 横跨4个data center (1primary+
3secondary+1backup)replicaset。QPS大概100k/s。 index的坑很多,而且数据碎片
管理问题很多,自带sharding非常难用。它自带的工具几乎没法用。数据out of sync
也是很常见的。最恶心的问题是如果数据库被overload,基本整个系统不响应。所以在
application端一定要做好throttle保持数据库不会被overload。升级补丁坑也很多尤
其是2to3这种majority upgrade。wiredtiger是他们收购的项目。总体来说也就应付一
下中小business。它家季报只要有一个Q miss growth就会是很好的short入点。

如果自己做data sharding还勉强可以用用。不过数据量大了没有什么solution是完美
的。
--


发信人: zuihan (前按摩店忠实股东), 信区: Stock
标  题: Re: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Mon Jan  7 18:09:56 2019, 美东)

看来是遇到同行了,老夫多说两句

1.自己写中间件,用一致性哈希算法解决负载均衡,sharding和replica的问题。
  老夫倒没有研究过mongodb的sharding tool是不是有问题,看过dba操作过,没听他
有什么抱怨,但是老夫不喜欢被人控制,追求极致性能,所以自己写中间件没有用到
mongodb的sharding 和replica

2.Index的坑
  老夫之前压力测试,一天100B个transaction , 70%写,30%随机删,3天之内index就
完蛋,没办法,b+tree做的index就是这样的了,这正是为什么老夫对他没有实现lsm算
法十分不满。但是有独特办法可以解决。

3.为什么用mongodb
  当时是因为业务量飙升,需要紧急替代另外一套系统。老夫用nodejs写这个中间件做
service,居然2天写完可以开始测。一开始试过用mysql,发现性能还是mongodb好些。
设计负载量10k qps ,只需要10个instance就顶住了,性能让老夫喜出望外。nodejs的
mongodb驱动做得很可以,mysql的驱动做得比较渣。除了前期的坑,老夫一直没再管过
,快一年了一直跑得好好的。

4.后期计划迁移到hbase
  因为发现hbase性能更强,还不用自己写中间件。

另外看这位兄弟可能用的是老版本的mongodb,因为3.0之前是基本不可用的。


发信人: freeskater (N0.237), 信区: Stock
标  题: Re: 说一下nosql和mongodb
发信站: BBS 未名空间站 (Wed Jan  9 12:37:33 2019, 美东)


【 在 jobhuntinger (jobhuntinger) 的大作中提到: 】
: 真大数据量还是Cassandra靠谱。当然对一个开源数据库而言,写得好跟能赚钱是两码
: 事。没有比MySQL应用更广泛的数据库,还真没赚到什么钱。
: :随便喷两句MDB。 以前管理过400+nodes的cluster 横跨4个data center (
1primary+
: :3secondary+1backup)replicaset。QPS大概100k/s。 index的坑很多,而且数据
碎片

cassandra 确实算是比较稳定的,但是因为用JVM经常会被人喷,虽然我没遇过什么坑
。现在还有一个copycat scylladb。之前有机会见过他们的高层,感觉兴致勃勃的要彻
底beat casssandra成为下一个mongodb。我现在infra搞的少了,现在帮一个startup 
bootstrap他们的产品。基本RDS的postgres (w/ read replica)就搞定。简单易用。

多说两句mongodb。v3以后确实要好很多,但是这是相对v2而言,不是和peer比。
Postgres有很多extension也很好用,虽然sql vs nosql各有利弊,关键还是要看
application的需求。MDB的股票建议大家还是小心点,我看最近daily volume都很弱。
而且它家不赚钱还是有些问题。互联网和软件行业的大部分profit都是做广告,应用(
包括个人和business)以及API的。做infra的monetization都比较困难。比如docker很
方便好用,但是最为公司运营我不看好它家能赚很多钱。同样的hashicorp产品不要太
棒。用terraform管理云服务超级方便,以前我自己写过一整套AWS的tool后来全扔了。
同样作为公司,我觉得它家也很难赚钱。因为免费的工具已经很好了。考虑投资这些基
于opensource 产品起家的同学一定要做好功课。不要因为太喜欢他们的产品而做出盲
目的投资决策。这跟日常消费品公司不一样。
 
 
 

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...