Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
About the problem of DBMS choice & what to do i...
Search
Minsk MongoDB User Group
June 07, 2012
Programming
3
120
About the problem of DBMS choice & what to do if you have gone the wrong way | Roman Bugaev
Roman Bugaev
Meetup #4
Minsk MongoDB User Group
June 07, 2012
Tweet
Share
More Decks by Minsk MongoDB User Group
See All by Minsk MongoDB User Group
MongoDB by Chef | Yauhen Artsiukhou
bymongo
0
120
MongoDB at IronMQ | Alexander Kolesen
bymongo
0
840
Scaling MongoDB | Sergey Gavruk
bymongo
2
170
Event sourcing + CQRS + MongoDB | Alex Shkor
bymongo
1
640
How it works. Indexes | Kirill Duborenko
bymongo
5
270
Aggregation Framework | Mikhail Burtylev
bymongo
1
92
MongoDB 2.2: Release update + Roadmap | Alvin Richards
bymongo
1
91
Meetup#6 Intro | Alex Litvinok
bymongo
1
44
Deploying MongoDB on Amazon WS | Michael Karpitsky
bymongo
2
110
Other Decks in Programming
See All in Programming
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
310
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
900
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
Security_for_introducing_eBPF
kentatada
0
110
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
7
1.4k
testcontainers のススメ
sgash708
1
120
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
950
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
2
120
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
280
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Building Your Own Lightsaber
phodgson
103
6.1k
The Invisible Side of Design
smashingmag
298
50k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Done Done
chrislema
182
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Scaling GitHub
holman
459
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Transcript
Bugaev Roman About the problem of DBMS choice & what
to do if you have gone the wrong way
.NET web-‐‑developer
SQL or NoSQL, that is the question!
Ñ Learning management system Ñ SCORM Ñ 1 million active users CyberU
Ñ No transactions Ñ No relations Ñ No datatypes (some) SimpleDB
Key → ALribute → Value select count(*) from cyberu_users where
RecordType = 'user'
Prons & Cons
Ñ Everything is indexed Ñ Distributed Ñ Replicated Ñ Completely hosted on Amazon system
BUT Ñ Latency specially if you’re not on ec2 (even between nodes) Ñ Only strings, lexicographical string only Ñ Huge amount of code
Ñ If you love writing code-‐‑-‐‑ really, truly love to
write code-‐‑-‐‑ you'ʹll love it enough to write as liLle of it as possible. And SQL can help you.
SQL is awesome! -‐‑ Structured Query Language -‐‑ ACID Atomicity,
Consistency, Isolation, Durability -‐‑ Predictable -‐‑ Schema -‐‑ Based on rational algebra -‐‑ Standardized
No, really, it'ʹs awesome! -‐‑ Hardened -‐‑ Free and commercial
choices -‐‑ MySQL, PostgreSQL, Oracle, DB2, MS SQL... -‐‑ Commercial support -‐‑ Tooling -‐‑ Everyone knows it -‐‑ It'ʹs mature!
None
Sellerhit
So... -‐‑ Some preLy big and important problems -‐‑
And brightest engineers in the world -‐‑ Who loooove to build stuff
Yesterday'ʹs problem of biggest guys Is today'ʹs
problem of startup in garage
Ñ What schema can be fine for a lot of
product’s types? E-‐‑commerce
Books
Music
Jeans
Ñ Flexible (and sane) Ñ Searchable Ñ Easy to use Ñ Fast MongoDB
Ñ Atomic single document writes Ó If you need atomic writes across
multi-‐‑document – don’t use MongoDB And what about $$?
Ñ Orders, Inventory (id, count) and Payment Transaction you
can store in SQL Ñ UI – MongoDB, ecomerce -‐‑ SQL Most boring SQL Scheme ever
Ñ Double check you choice of DBMS and tools
Ñ Do it fast Ñ Check your logic Ñ Enterprise design Ñ Id<User> != Id<Product> Ñ Unit tests Ñ Delete code Ñ Optimize your tools Ñ Be brave! Data migrations
Use case – first, DB – last © Anonymous
Neo4J – Graph database
{ Thx! Q? Bugaev Roman, @rbugaev