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
Sergejus
April 09, 2011
Technology
87
1
Share
Web Scale with NoSQL
Sergejus
April 09, 2011
More Decks by Sergejus
See All by Sergejus
Bringing Developers to the Next Level
sergejusb
0
220
True story of re-architecting website for scale on Windows Azure
sergejusb
1
70
Continuous Happiness by Continuous Delivery
sergejusb
2
3.9k
Windows Azure from practical point of view
sergejusb
1
75
Windows Azure Web Sites: new cloud hosting offering
sergejusb
2
74
Intro to Big Data using Hadoop
sergejusb
2
140
Optimizing ASP.NET application performance: tough but necessary
sergejusb
2
64
Release Often, Release Safely
sergejusb
1
52
NoSQL – What’s that.pdf
sergejusb
1
73
Other Decks in Technology
See All in Technology
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
720
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
1
130
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
6
580
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
410
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
150
Sociotechnical Architecture Reviews: Understanding Teams, not just Artefacts
ewolff
1
170
Purview Endpoint DLP 動かしてみた
kozakigh
0
400
ECSのTerraformモジュールにコントリビュートした話
harukasakihara
0
110
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.6k
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
2
210
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
SLI/SLO、「完全に理解した」から「チョットデキル」へ
maruloop
5
480
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
130
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How STYLIGHT went responsive
nonsquared
100
6.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Six Lessons from altMBA
skipperchong
29
4.2k
The Pragmatic Product Professional
lauravandoore
37
7.3k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Scaling GitHub
holman
464
140k
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