Webtech Conference: NoSQL and Web scalability

Post on 15-Jan-2015

1.417 views 1 download

Tags:

description

 

Transcript of Webtech Conference: NoSQL and Web scalability

NoSQL and Web scalability

Luca Bonmassar

NoSQL - introduction

• A database that does not expose an SQL interface (negative definition)

• Not a news in the computer science• Many subcategories:

– BigData– Column stores– Document databases– Key-value stores– Graph Databases

SQL

Why NoSQL?

performance, scalability

Does it fit in my project?

Memcached

• A key - value storage, data is serialized• No persistent storage, data expires• A new layer between application and

database• Application must manage cache

explicitely• Performance boost

Memcached protocol

• Human readable protocol• Set (key, val, expire)• Get (key), mget(key)• Delete (key)• Same logical interface of a Map (hash)

Access patterns

• select * from table where p1 = property1 and p2 = property2 and p3 = property3

• key =

vs

Access patterns

• select * from table where p1 = property1 and p2 = property2 and p3 = property3

• key = property1 property2 property3

vs

Access patterns

• select * from table where p1 = property1 and p2 = property2 and p3 = property3

• key = property1 property2 property3:: ::

vs

Access patterns

• select * from table where p1 = property1 and p2 = property2 and p3 = property3

• key = MD5( )property1 property2 property3:: ::

vs

Memcached - workflow

Memcached - workflow

Memcached - workflow

SQL DB

Memcached - workflow

SQL DB

Memcached

Sharding

Routing requests

• A-F

• G-N

• O-S

• T-Z

user Foo

user Pufuser Uwe

NoSQL + sharding

• Split data into multiple servers• Use keys as shard entries

NoSQL + sharding

• Split data into multiple servers• Use keys as shard entries

key: bae61f3f62f342b3c4d7f0d8dd128365

NoSQL + sharding

• Split data into multiple servers• Use keys as shard entries

key: bae61f3f62f342b3c4d7f0d8dd128365key: bae61f3f62f342b3c4d7f0d8dd128365shard index data key

MemcacheDB

• A Memcached server with BerkleyDB storage

• Same interface as Memcached, can be used where Memcached is already being used

• Performance are comparable to Memcached

Memcached

MemcacheDB - workflow

SQL DB

Memcached

MemcacheDB - workflow

MemcachedMemcacheDB

MemcacheDB - workflow

MemcacheDB - performance

0

22500.0

45000.0

67500.0

90000.0

read/s

write/s

MySQL MemcacheDB Memcached

key: 16 value: 100B

Cons ?

NoSQL references

• memcachedb.org• memcached.org• nosql.mypopescu.com• technoroy.blogspot.com/2008/07/shard-

database-design.html

Thank you!

Any questions?

luca@coderloop.comlinkedin.com/in/lucabonmassarwww.coderloop.com