Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
New Intro to Riak
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Joel Jacobson
August 21, 2013
Technology
53
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
New Intro to Riak
Joel Jacobson
August 21, 2013
More Decks by Joel Jacobson
See All by Joel Jacobson
Microsoft Azure Meetup
joeljacobson
0
76
CRDTs and Eventual Consistency
joeljacobson
0
76
Killing Pigs and Saving Danish Bacon
joeljacobson
0
81
Conflict-Free Replicated Data Types in Eventually Consistent Systems
joeljacobson
0
130
Intro to Riak
joeljacobson
0
100
Other Decks in Technology
See All in Technology
Reactの設計論
uhyo
14
7.8k
20260912_スクフェス三河
kgnkhkr
0
280
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
470
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
150
ASTを使って影響範囲を特定する
nealle
0
150
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
510
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
600
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
160
10分で知る最近のOmarchy
komagata
0
250
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
150
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
My Coaching Mixtape
mlcsv
0
310
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Discover your Explorer Soul
emna__ayadi
2
1.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
Transcript
Introduction to Riak 2013
Who am I? Joel Jacobson Technical Evangelist @Basho @joeljacobson
Distributed computing is hard COncurrency scaLIng Latency consIstency avaILabILIty MuLtI
Tenancy faILover SLA’s
What is Riak? Key Value store + extras Distributed /
Horizontally Scalable Fault Tolerant Highly available built for the web
inspired by amazon dynamo white paper released to describe a
database system to be used for their shopping cart Masterless, peer coordinated replication Consistent Hashing Eventually Consistent
Riak Key-value store Simple operations; GET, PUT, DELETE Value is
Opaque, with metadata Extras; Secondary indexes MapReduce full text search
Horizontal Scalability Near linear Scalability Query load and data are
spread evenly Add more nodes and get more; Ops/second storage capacity compute power (mapreduce)
Fault tolerant no Single point of failure (SPOF) All Data
is replicated CLusters self heal; Handoff, Active Anti Entropy cluster transparently survives Node Failure Network partition
Highly Available Any Node Can Serve Client requests Fallbacks are
used when nodes are down Always available for read and write requests Per-request quorums
Quorums n = 3 r / w = 2 R
= 1 - faster response time, less likely consistent r = all - slower response, greater consistency
the ring
Replication replicated to 3 nodes by default (n_val , which
is configurable)
Node fails Request goes to fallback Handoff - data retuned
to recovered node X X X X X X X X hash(“user_id”) Disaster scenario
Automatically repair inconsistencies in data runs as a background process
or Can be configured as a manual process active anti-entropy
Network partitions or concurrent actors modifying the same data Riak
provides two solutions to manage this: Last Write Wins Vector Clocks Conflict resolution
Vector Clocks Every node has an ID Send last-seen vector
clock in every “put” request Can be viewed as ‘commit history’ e.g. Git Lets you decide conflicts
sibling creation 0 3 2 1 Object v1 Object v1
0 3 2 1 Object v1 Siblings can be created by: Simultaneous writes Anti-entropy [{a,3}] [{a,2},{b,1}] [{a,3}] Object v1 Object v1 [{a,2},{b,1}]
storage backends Bitcask Leveldb memory multi
bitcask A fast, append-only key-value store Key space must fit
in memory Suitable for bounded data, e.g. reference data
Leveldb Append-only for very large data sets multiple levels Allows
for more advanced querying (2i) includes compression (Snappy algorithm) Suitable for unbounded data
memory Data is never persisted to disk Definable memory limits
per vnode Configurable object expiry Useful for highly transient data supports secondary indexes
multi Configure multiple storage engines for different types of data
Choose storage engine on per bucket basis
clients apis Protocol Buffers REST based HTTP Interface
client libraries Client libraries supported by Basho: Community supported languages
and frameworks: C/C++, Clojure, Common Lisp, Dart, Django, Go, Grails, Griffon, Groovy, Haskell, .NET, Node.js, OCaml , Perl, PHP, Play, Racket, Scala, Smalltalk
Using Riak as datastore for all back-end systems supporting Angry
Birds Game-state storage, ID/Login, Payments, Push notifications, analytics, advertisements 9 clusters in use with over 100 nodes 263 million active monthly users
Spine2 - storing 80 million+ patient data 500 complex messages
per second 20,000 integrated end points 0% data loss 99.9% availability SLA
Push to talk application Billions of requests daily > 50
dedicated servers Everything stored in Riak
MDC Allows data to be replicated between clusters in different
data centers real-time and full sync uni-directional or bi-directional replication global load-balancing backups
riak-cs S3 compatible object store Supports Objects of Arbitrary Content
Type Up to 5TB multi-tenancy Per-tenant usage data and statistics on network I/O supports MDC
try it? http://docs.basho.com/riak/latest/references/appendices/ community/Sample-Applications/ https://github.com/basho/riak-dev-cluster
thanks
[email protected]