Upload
luca-bonmassar
View
1.416
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
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