2. 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
5. 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
6. Memcached protocol
• Human readable protocol
• Set (key, val, expire)
• Get (key), mget(key)
• Delete (key)
• Same logical interface of a Map (hash)
7. Access patterns
• select * from table where p1 = property1
and p2 = property2 and p3 = property3
• key =
vs
8. Access patterns
• select * from table where p1 = property1
and p2 = property2 and p3 = property3
• key = property1 property2 property3
vs
9. Access patterns
• select * from table where p1 = property1
and p2 = property2 and p3 = property3
• key = property1 property2 property3:: ::
vs
10. Access patterns
• select * from table where p1 = property1
and p2 = property2 and p3 = property3
• key = MD5( )property1 property2 property3:: ::
vs
17. NoSQL + sharding
• Split data into multiple servers
• Use keys as shard entries
18. NoSQL + sharding
• Split data into multiple servers
• Use keys as shard entries
key: bae61f3f62f342b3c4d7f0d8dd128365
19. NoSQL + sharding
• Split data into multiple servers
• Use keys as shard entries
key: bae61f3f62f342b3c4d7f0d8dd128365key: bae61f3f62f342b3c4d7f0d8dd128365
shard index data key
20. 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