I Can’t Wait for NoSQL to Die【转】
They don’t teach you this in college, but the fundamental theorem of the software industry is the idea that everything needs to be rewritten all the time. As a corollary, web startup engineers believe that there is no problem but scalability, and architecture is its solution. And thus, the NoSQL movement was born.
The idea is that object relational databases like MySQL and PostgreSQL have lapsed their useful lifetimes, and that document-based or schemaless databases are the wave of the future. Never mind of course that MySQL was the perfect solution to everything a few years ago when Ruby on Rails was flashing in the pan. Never mind that real businesses track all of their data in SQL databases that scale just fine. (For Silicon Valley readers, Walmart is a real business, Twitter is not.)
Invariably, all web projects start off with something like Rails or Django, most likely backed by MySQL. The data relationships are easy to model, and the application works well. If you are lucky enough that people actually use your application, eventually you will start to see some performance issues. At this point, a developer who values technological purity over gettin’ shit done will advocate “rewriting the whole thing in a weekend using Cassandra”. And if he’s smart enough, he might just pull it off. (Of course, said developer has only migrated the app to use a different data store – all of the ancillary support code was conveniently ignored)
So you’ve magically changed your backend from MySQL to Cassandra. Stuff will just work now, right? Well, no. Did you know that Cassandra requires a restart when you change the column family definition? Yeah, the MySQL developers actually had to think out how ALTER TABLE works, but according to Cassandra, that’s a hard problem that has very little business value. Right.
I’m not just singling out Cassandra – by replacing MySQL or Postgres with a different, new data store, you have traded a well-enumerated list of limitations and warts for a newer, poorly understood list of limitations and warts, and that is a huge business risk.
You Are Not Google
The sooner your company admits this, the sooner you can get down to some real work. Developing the app for Google-sized scale is a waste of your time, plus, there is no way you will get it right. Absolutely none. It’s not that you’re not smart enough, it’s that you do not have the experience to know what problems you will see at scale.
Besides, did you know that Google Adwords is implemented on top of MySQL? What, that business critical code that operates at massive scale doesn’t use BigTable? No, in fact there is such enormous value in sticking with what works that Google identifies problems with InnoDB at scale and submits patches, instead of saying “MySQL doesn’t scale, let’s dump it for something else”.
NoSQL will never die, but it will eventually get marginalized, like how Rails was marginalized by NoSQL. In the meantime, DBAs should not be worried, because any company that has the resources to hire a DBA likely has decision makers who understand business reality.
- 下一篇: 既然是七夕,发发照片,本人虽是技术宅男,却早已经不单身
- 上一篇: 百度K掉了我的个人博客
相关推荐
- BASE64编码的图片在网页中的显示【转】
- Posted on 06月27日
- 什么是REST?以及RESTful的实现(转载)
- Posted on 01月06日
- 2013年9月1日孤独骑行密云水库
- Posted on 09月22日
- 《使用HTML、CSS和JavaScript开发Android程序》初读
- Posted on 09月05日
高跟玉足ᅯ红色丝袜ᅯ空姐丝袜ᅯ我的丝袜故事ᅯ偷丝袜故事ᅯ黑丝袜网ᅯ陈思璇丝袜ᅯwww.meitui1.com
ﮮ挤胸照 布娃娃人体艺术回家的诱惑全集高清万千诱惑12岁哥哥与9岁妹妹www.meimei666.com
︕︕︕︕︕︕︕︕︕美女穿丝袜︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕丝袜女︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕丝袜footjob︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕芬妮美足︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕丝袜高跟网站︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕美女 丝袜︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕︕丝袜动漫︕︕︕︕︕︕︕︕︕TT.meitui1.com
ﻴ工厂直批Kani(卡妮)meituo(美托)Armani(阿玛尼)asics(亞瑟士)hv.yuandan.ml