nosql

18
An introduction to NoSQL Radu Potop

Upload: radu-potop

Post on 02-Dec-2014

2.818 views

Category:

Technology


1 download

DESCRIPTION

An introduction to NoSQL

TRANSCRIPT

Page 1: NoSQL

An introduction toNoSQL

Radu Potop

Page 2: NoSQL

NoSQL

● umbrella term● non-relational data storage● no fixed table schemas● a fresh take on the database technology

Page 3: NoSQL

Relational databases have issues in handling big volumes of data

Some companies and their databases:● Digg.com - 3 TB for green badges● Facebook - 50 TB for inbox search● eBay - 2 P(eta)B in total

Page 4: NoSQL

Issues

● horizontal scalability● server performance● rigid schemas● distribution across servers

Page 5: NoSQL

Characteristics of NoSQL

● no ACID guarantees (Atomicity, Consistency, Isolation, Durability)● highly distributed● scalable● better performance - they don't have to handle relations

Page 6: NoSQL

NoSQL databases examples:

● Google Bigtable (used intensively by almost everything made by Google)● Amazon Dynamo (used by Amazon S3)● Facebook Cassandra● Apache HBase● LinkedIn Voldemort

Page 7: NoSQL

Some types of databases:

● Document Oriented databases● JSON format, XML databases● examples: CouchDB, BaseX

● Key - Value pairs databases● values can be more than strings (set of strings)

● examples: Redis, Cassandra

Page 8: NoSQL

CouchDB

● created by the Apache Foundation● written in Erlang● open source● document oriented database● stores data as JSON documents collection

Page 9: NoSQL

● queried via REST API● JavaScript is the default language● also supported:

PHP, Ruby, Python and Erlang● built-in replication features● used by Ubuntu One

Page 10: NoSQL

JSON document{"_id" : "fc5e038d38a570","_rev" : "D546012",

"to" : "email@example","subject" : "helloWorld","body" : "some text"

}

Page 11: NoSQL

Operations with these documents

● HTTP requests:● GET (select), POST (create), PUT (update), DELETE (delete).

● HTTP AUTH● Aplications: curl, Futon● JavaScript● any application that knows HTTP requests

Page 12: NoSQL

Futon interface

Page 13: NoSQL

Redis

● key - value database● written in C● open source● networked● in-memory● persistent database● similar to memcached● data is non-volatile

Page 14: NoSQL

● atomic operations● very high performance

~100.000 operations/secondby 50 parallel clients

● all data is kept in memory - blazing fast● periodic synchronization to hard-drive● powerful replication

Page 15: NoSQL

● bindings for a lot of languages: PHP, Ruby, Python, C, Java, etc.

SET foo barGET foo => bar

SET - insertGET - select

Page 16: NoSQL

Key - value based databases became very popular lately

Other key-value databases:● Facebook's Cassandra (now also used by Digg)● GM.T● MemcacheDB (a persistence enabled variant of memcached)● LinkedIn Voldemort

Page 17: NoSQL

Conclusion

● relational databases are not the holy grail of data storage● scalability issues determined large corporations to look to other solutions● don't believe the FUD and give them a try

Page 18: NoSQL

Thank you