Download - Riak at Wooga_Riak Meetup Sept 2013

Transcript
Page 1: Riak at Wooga_Riak Meetup Sept 2013

Riak & Wooga

by Guillermo Álvarez @guillermooo

Page 2: Riak at Wooga_Riak Meetup Sept 2013

Wooga

Page 3: Riak at Wooga_Riak Meetup Sept 2013
Page 4: Riak at Wooga_Riak Meetup Sept 2013
Page 5: Riak at Wooga_Riak Meetup Sept 2013
Page 6: Riak at Wooga_Riak Meetup Sept 2013
Page 7: Riak at Wooga_Riak Meetup Sept 2013

API Key Value Store + extras

Page 8: Riak at Wooga_Riak Meetup Sept 2013

Security Auth

Page 9: Riak at Wooga_Riak Meetup Sept 2013
Page 10: Riak at Wooga_Riak Meetup Sept 2013
Page 11: Riak at Wooga_Riak Meetup Sept 2013
Page 12: Riak at Wooga_Riak Meetup Sept 2013

Sinatra

Page 13: Riak at Wooga_Riak Meetup Sept 2013

Chef + Amazon

Page 14: Riak at Wooga_Riak Meetup Sept 2013

Riak

Page 15: Riak at Wooga_Riak Meetup Sept 2013
Page 16: Riak at Wooga_Riak Meetup Sept 2013

eLevelDB

5 nodes x m1.xlarge 15 GB, 2 cores, 2 units

Page 17: Riak at Wooga_Riak Meetup Sept 2013

Ring Size 1024

Page 18: Riak at Wooga_Riak Meetup Sept 2013

Benchmark

5 MDAU = 225K rpm

Page 19: Riak at Wooga_Riak Meetup Sept 2013
Page 20: Riak at Wooga_Riak Meetup Sept 2013
Page 21: Riak at Wooga_Riak Meetup Sept 2013

( CPU )

Page 22: Riak at Wooga_Riak Meetup Sept 2013
Page 23: Riak at Wooga_Riak Meetup Sept 2013

HA/PROXY APP SERVERS

RIAK + MEMCACHED

Page 24: Riak at Wooga_Riak Meetup Sept 2013

MEMCACHED

95% PUTS 5% GETS

99% HITS

Page 25: Riak at Wooga_Riak Meetup Sept 2013

Benchmark Again

Page 26: Riak at Wooga_Riak Meetup Sept 2013
Page 27: Riak at Wooga_Riak Meetup Sept 2013

Launch week

Now

Page 28: Riak at Wooga_Riak Meetup Sept 2013
Page 29: Riak at Wooga_Riak Meetup Sept 2013
Page 30: Riak at Wooga_Riak Meetup Sept 2013
Page 31: Riak at Wooga_Riak Meetup Sept 2013

Monitoring

Page 32: Riak at Wooga_Riak Meetup Sept 2013
Page 33: Riak at Wooga_Riak Meetup Sept 2013
Page 34: Riak at Wooga_Riak Meetup Sept 2013

Alerting

Page 35: Riak at Wooga_Riak Meetup Sept 2013
Page 36: Riak at Wooga_Riak Meetup Sept 2013

Problems we have

Page 37: Riak at Wooga_Riak Meetup Sept 2013

Riak Ring Size

Page 38: Riak at Wooga_Riak Meetup Sept 2013

OOM cluster death

Page 39: Riak at Wooga_Riak Meetup Sept 2013

1 Node dies 0 people realize

Page 40: Riak at Wooga_Riak Meetup Sept 2013

Summary

●  You should take care with your ring size

●  You must do monitoring

●  Reliable

Page 41: Riak at Wooga_Riak Meetup Sept 2013

Riak for Pearl’s Peril

Daniel Doubleday http://de.linkedin.com/pub/daniel-doubleday/1/115/195/

Page 42: Riak at Wooga_Riak Meetup Sept 2013

Pearl Who?

Page 43: Riak at Wooga_Riak Meetup Sept 2013

Architecture

Riak 1

Riak n

App Server 1

HA

Pro

xy

App Server n

HA

Pro

xy

Load Balancer

1

Load Balancer

n

Page 44: Riak at Wooga_Riak Meetup Sept 2013

Data Model

User stored as one JSON-CLOB ✘  Every client request needs to read / write

average 4k data ✘  Needs concurrency control

✔ Ensures data consistency ✔ Reduces round trips ✔ Reduces number of keys

Page 45: Riak at Wooga_Riak Meetup Sept 2013

Data Set Total : ~ 15M

Keys New : ~ 50k /

Day Updates : ~ 100M / Day

Requests : 100 - 200k rpm Per Server : ~ 75k rpm RW-Ratio : 50% / 50%

Data Size : ~ 20GB / Node

Page 46: Riak at Wooga_Riak Meetup Sept 2013

Cluster Info

Hardware Bare Metal, 32GB 6 x 8-core AMD Opteron 2.6GHz 2 x 12-core Intel Xeon 2.0GHz

Riak Version : 1.3.2 Storage : Bitcask

Page 47: Riak at Wooga_Riak Meetup Sept 2013

Storage Backend

Bitcask

●  Higher Throughput ●  Predictable Read

and Write Performance

LevelDB

●  Compression ●  Supports large

number of keys

Page 48: Riak at Wooga_Riak Meetup Sept 2013

The Good

Page 49: Riak at Wooga_Riak Meetup Sept 2013

A Typical Day

Page 50: Riak at Wooga_Riak Meetup Sept 2013

Adding a Node

Page 51: Riak at Wooga_Riak Meetup Sept 2013

The Bad

Page 52: Riak at Wooga_Riak Meetup Sept 2013

Performance Degradation

Page 53: Riak at Wooga_Riak Meetup Sept 2013

Nodes doing … things

Page 54: Riak at Wooga_Riak Meetup Sept 2013

The Ugly

Page 55: Riak at Wooga_Riak Meetup Sept 2013

Cluster Failures

Page 56: Riak at Wooga_Riak Meetup Sept 2013

Conclusions

●  It works ...

●  … most of the time

●  NoSQL is becoming commodity

●  There’s no shame in using mysql