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
Web Scale with NoSQL
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sergejus
April 09, 2011
Technology
88
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web Scale with NoSQL
Sergejus
April 09, 2011
More Decks by Sergejus
See All by Sergejus
Bringing Developers to the Next Level
sergejusb
0
230
True story of re-architecting website for scale on Windows Azure
sergejusb
1
71
Continuous Happiness by Continuous Delivery
sergejusb
2
3.9k
Windows Azure from practical point of view
sergejusb
1
84
Windows Azure Web Sites: new cloud hosting offering
sergejusb
2
77
Intro to Big Data using Hadoop
sergejusb
2
140
Optimizing ASP.NET application performance: tough but necessary
sergejusb
2
68
Release Often, Release Safely
sergejusb
1
61
NoSQL – What’s that.pdf
sergejusb
1
75
Other Decks in Technology
See All in Technology
制約理論(ToC)入門 2026版
recruitengineers
PRO
6
2.1k
Digitization部 紹介資料
sansan33
PRO
2
7.7k
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
450
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
480
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
550
ラジオの科学
frievea
0
280
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
230
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
370
20分でわかるセキュアAPI
nwiizo
1
200
第3回しろおびセキュリティスポンサーセッション
log0417
0
160
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
200
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Featured
See All Featured
How to make the Groovebox
asonas
2
2.3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
440
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Ethics towards AI in product and experience design
skipperchong
2
340
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
310
The Curious Case for Waylosing
cassininazir
1
450
Technical Leadership for Architectural Decision Making
baasie
3
470
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
Web Scale with NoSQL Sergejus Barinovas (@sergejusb) http://sergejus.blogas.lt
None
Who Am I? Architect at Running NoSQL servers
in production Blogger (http://sergejus.blogas.lt, @sergejusb) Community member (http://dotnetgroup.lt) Contact me via
[email protected]
Powered by RDBMS Used everywhere… …even where it
shouldn’t Used for 30+ years!
Back to 1980’s…
Data boom
in numbers 600 000 000 users 30 000
servers 20+ TB raw data per day >20 PB stored data
You really think they use RDBMS?
RDBMS Scaling Example
Simple usage Customers Reads / Writes master
Scale reads Customers master slave slave
Scale writes Customers [A-M] master master Customers [N-Z]
Scale reads / writes Customers [A-M] master slave slave master
Customers [N-Z] slave slave
Pray your system won’t fail
None
Why NoSQL Limited SQL scalability Sharding and vertical
partitioning Limited SQL availability Master / slave configuration Limited SQL speed of read operations Multiple read replicas SQL limitations for huge amount of data Key / value / type columns
NoSQL history 2009, Eric Evans, no:sql(est) NoSQL –
open source distributed databases, not relational SQL databases NoSQL – not only SQL NoSQL → Big Data
NoSQL characteristics (1/2) Scalability The ability to horizontally
scale simple- operation throughput over many servers BASE A “weaker” concurrency model than the ACID transactions in most SQL systems
NoSQL characteristics (2/2) Distributed Efficient use of distributed
indexes and RAM for data storage Schema-less The ability to dynamically define new attributes or data schema
CAP theorem 2000, Eric Brewer It is impossible
for a distributed computer system to simultaneously provide all three of the following guarantees: Consistency Availability Partition tolerance
None
NoSQL Databases
NoSQL categories Key / value store Document database
Graph database Columnar database
Key / value store <key, value> or Tuple<key, v1,.
., vn> Simple operations Get Put Delete Byte[] Byte[] Key Value
Key / value store Key Value “current_date” 2013.02.01 “sergejusb” Binary
Object “sergejusb” JSON Object
Key / value stores Redis (+)messaging (-)no
shards Voldermort Membase (+)memcache interface Riak
Document database Document == complex object XML
YAML JSON / BSON Support for secondary indexes Schema can be defined at runtime Optional support for simple querying using Map / Reduce
Document databases MongoDB (+)shards CouchDB (+)master
/ master replication
Graph database Graph == network Basic constructs
Node Edge Properties sergejus sergejus.blogas.lt tdagys knows knows
Graph databases Neo4j (-)paid version required for scaling
FlockDB (+)fast (-)limited functionality
Columnar database For HUGE amount of data Columns
are added at a runtime Great scalability Horizontal Vertical
Columnar database Unusual data model Key Space →
Database Column Family → Table Columns and Super Columns Super Column → array of Columns Column → Tuple<Key, Value, Timestamp, TTL>
Columnar database Simple column
Columnar database Simple column
Columnar database Cassandra (+)easy scalable HBase
(+)consistent (+)part of Hadoop Hypertable
NoSQL is Cool! But…
None
NoSQL limitations ORDER BY ? Natural key order
GROUP BY ? Map / Reduce* JOIN ? Multiple Map / Reduce* SELECT * ? Multi-machine Map / Reduce* *if possible
NoSQL Limitations Maturity Tooling Specificity
SQL vs. NoSQL Choose the right tool for the
task You can use BOTH
Thank you! Sergejus Barinovas (@sergejusb)
[email protected]
http://sergejus.blogas.lt