NoSQL looks to become the database of the Internet

Download Report

Transcript NoSQL looks to become the database of the Internet

CSCI5708
NoSQL looks to become the
database of the Internet
By Lawrence Latif
Wed Dec 22 2010
Nhu Nguyen and Phai Hoang
CSCI 5708 – Architecture and Impl. Of DBMS
Prof. Shashi Shekhar
Changwon Nati Univ.
ISIE 2001
Traditional DBMS vs NoSQL
 Traditional DBMS
– Structured and organized data
– Data and its relationships are stored in separate tables.
 NoSQL
– Stands for Not Only SQL ( ≠ Don’t use SQL Language)
–
–
–
–
–
Flexible schema
Key-Value pair storage
Eventual consistency rather ACID property
Unstructured, messy and unpredictable data
Prioritizes high performance, high availability and scalability
1
History of NoSQL
 1998:
– Carlo Strozzi used the term NoSQL to name his lightweight,
open-source relational database.
 Early 2000s:
– NoSQL fell out of favour in the early 2000s.
– Hosting providers such as Dedipower promoted it as an
alternative to traditional db.
 Nowadays
– Web giants such as Amazon, Google, Twitter, Ebay and
Facebook already use NoSQL implementation.s to power
customer facing parts of their businesses.
2
What kind of NoSQL?
 Key/Value or ‘the big hash table’.
– Using Hash table
• Data model: (key, value) pairs
• Operations: Insert(key,value), Fetch(key), Update(key), Delete(key)
– Ex: Amazon Dynamo, LinkedIn Voldemort
 Column Family Store
– Still keys but point to multiple columns
– Ex: Cassandra, HBase
 Document database
– Ex: CouchDB, MongoDB
 Graph Database
– Ex: Neo4J, InfoGrid, Infinite Graph
3
What kind of NoSQL?
 Object Databases
– Ex: Versant
 RDF Databases
– BigTable, Apache Hbase
4
Limitations of NoSQL relative to
RDBMS
 ACID transactions (strong consistency)
 May not support join, range query
 Facebook and Twitter were built on mySQL
5
Example: Apache Cassandra





Free, open source, distributed storage
Exists within the Apache family
Originally developed at Facebook
Column-oriented data model
Uses Apache Thrift as it’s API
– keyspace.getSlice(key, “column_family”, "column")
– keyspace.getSlice(123, new ColumnParent(“rockets”), getSlice
Predicate());
6
Hashing in Cassandra



Partition using consistent hashing
– Keys hash to a point on a fixed circular
space
– Ring is partitioned into a set of ordered slots and
servers and keys hashed over these slots
Nodes take positions on the circle.
A
A, B, and D exists.
V
– B responsible for AB range.
– D responsible for BD range.
– A responsible for DA range.

S
D
C joins.
– B, D split ranges.
– C gets BC from D.
R
H
M
7
C
B
References
 NoSQL looks to become the database of the Internet ,
Inquirer, Dec. 2010
http://www.theinquirer.net/inquirer/feature/1933560/n
osql-looks-database-internet
 NoSql, Wikipedia
8
Thank you
9