Why MongoDB Never Worked Out at Etsy
In 2010ish, we tried to roll out a feature (Treasury) using MongoDB. It was an interesting experience. I learned quite a bit in the process. I wrote about what I was thinking at the time here. But for the most part it was an abject failure and Ryan Young wound up porting the entire thing to the MySQL shards which had come to maturity in the meantime.
Before you get too excited, the reason for the failure is probably not any of the ones you're imagining. Mainly it's this: adding another kind of production database was a huge waste of time.
If you want to make Mongo your only database, it might work out well for you. I can't personally say it will definitely work out. I know that there's plenty of talk on the internet about Mongo's running-with-scissors-as-default and lack of single-server durability and rumors about data loss or what have you, but, none of that ever affected us. Those concerns may or may not have merit, but I personally have no experience with them.
But what I can say is that if you are considering Mongo plus another database like MySQL, then in all likelihood you shouldn't do it. The benefits of being schemaless are negated by the pain you will feel sorting out:
Logging.
Monitoring.
Slow query optimization.
init scripts.
Graphing.
Replication.
Sharding strategy.
Rebalancing strategy.
Backups.
Restoration.
Before you get too excited, the reason for the failure is probably not any of the ones you're imagining. Mainly it's this: adding another kind of production database was a huge waste of time.
If you want to make Mongo your only database, it might work out well for you. I can't personally say it will definitely work out. I know that there's plenty of talk on the internet about Mongo's running-with-scissors-as-default and lack of single-server durability and rumors about data loss or what have you, but, none of that ever affected us. Those concerns may or may not have merit, but I personally have no experience with them.
But what I can say is that if you are considering Mongo plus another database like MySQL, then in all likelihood you shouldn't do it. The benefits of being schemaless are negated by the pain you will feel sorting out:
Logging.
Monitoring.
Slow query optimization.
init scripts.
Graphing.
Replication.
Sharding strategy.
Rebalancing strategy.
Backups.
Restoration.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/301743/viewspace-751817/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Why MongoDB? It's the developers, stupidMongoDBDeveloper
- TypeScript Never型別TypeScript型別
- WhyASMLIBandwhynot?ASM
- getResource()和getSystemResource()分析
- Never permit african superman oneself to smokeMIT
- Adaptive Cursor Sharing: Worked Example (Doc ID 836256.1)APT
- typescript:never與keyof的妙用TypeScript
- 理解 Context.getSystemService 原理Context
- Why TypeScript?TypeScript
- Why NoSQL?SQL
- ClassLoader中的getResource和getSystemResource
- ToolProvider.getSystemJavaCompiler() Return NULL!IDEJavaCompileNull
- What is the difference between Mysql InnoDB B+ tree index and hash index? Why does MongoDB use B-tree?MySqlIndexMongoDB
- Why React HooksReactHook
- WHY review code?View
- Why Redis 4.0?Redis
- [譯] WebAssembly: How and whyWeb
- WhyRedis4.0?Redis
- why use dynamic SQL?SQL
- whystea2
- whystea1
- 從 Etsy 團隊看敏捷架構的設計敏捷架構
- 第1章 Why RustRust
- why app_start startAPP
- why does angular js rockAngularJS
- Why MVC is Better?(翻譯)MVC
- 2 Why Firms Work Together
- Why would a reverse index be useful ?Index
- Why Java is better than .NETJava
- What are Windows ACLs and why are they important?WindowsImport
- erlang學習: why OTP
- [Javascript] Why need arrow function?JavaScriptFunction
- I never laid an egg 我從來不會下蛋AI
- OOM(Out Of Memory)OOM
- Out With the Old and in With the New
- java out of memoryJava
- out of springSpring
- 設計模式 what? why? how?設計模式